为什么我可以直接在我的设备上安装应用商店分发版本?

时间:2014-01-09 12:05:07

标签: ios xcode app-store provisioning-profile ad-hoc-distribution

我的印象是,无法直接在测试设备上安装应用商店分发版本(无需通过实际的App Store)。我发现Apple对以下注释有多处引用(虽然我在当前版本的iOS App Distribution Guide中找不到该注释):

“App Store配置文件不允许在Apple设备上安装分发构建的应用程序。要在设备上安装分发准备应用程序,您必须创建Ad Hoc配置文件。”

现在考虑以下内容:我有一个Ad Hoc Distribution配置文件和App Store Distribution配置文件。 ad hoc配置文件包含已配置设备的列表,而应用商店配置文件则不包含。我的(无jailbrake)设备包含在ad hoc配置文件中的配置设备中。我的构建是使用应用商店配置文件签署的。生成的.ipa文件已提交到App Store (并已获批准 - 但尚未公开发布)。当我查看.ipa文件的包内容时,我看到embedded.mobileprovision确实是应用商店配置文件(没有配置的设备列表)。当我将此配置文件拖到我的Xcode Organizer时,由于设备未包含在配置文件中(因为预期),因此出现无法安装配置文件的错误。但是,当我将.ipa文件拖到我的Xcode Organizer时,应用程序将安装在设备上(之后可以在设备上打开)。在确保设备上没有安装相同应用程序的其他副本后,我尝试了这一点。当我使用未包含在ad hoc配置文件的配置设备中的其他设备时,同样的事情不起作用(即使.ipa包含没有配置设备列表的应用商店配置文件)。

有没有人对此有可能的解释?似乎以某种方式,使用应用商店配置文件签名的构建仍然可以安装在相应的(相同的应用程序标识符?相同的团队标识符?)ad hoc配置文件中包含的设备上。但如果情况确实如此,那么制作单独的临时构建有什么意义呢?

1 个答案:

答案 0 :(得分:7)

我也注意到了这一点,并且总是想找出原因。 它使用是真的,你无法安装App Store构建,但似乎已经改变了,我猜测在iOS6或5中。

我发现只有在安装了兼容的Ad Hoc配置文件后才能安装App Store配置文件版本。开发人员配置文件不起作用我没有尝试使用通配符配置文件。所以看起来Ad Hoc规则发生了变化。

我找不到安装Ad Hoc构建的规则,但是关于启动主题Apple’s App Distribution Guide中的“Ad Hoc Provisioning Profiles in Depth”部分说明

  

如果应用的捆绑ID与应用ID匹配,签名与分发证书匹配,则该应用成功启动,并且该设备位于 ad hoc的设备列表中供应资料。

所以我认为从技术上讲,AppStore版本符合这些Ad Hoc要求,因为它也使用相同的分发证书签名。使用“the”在这里有误导性,因为它听起来像iOS咨询你的embedded.mobileprovision,这是不真实的。它应该是“an”ad hoc配置文件。

NB :安装仅在设备上已安装Ad Hoc配置文件时才有效,因此这是制作单独ad hoc版本的一个原因。

NB :这是猜想,另一种解释可能是Xcode处理embedded.mobileprovision的安装,现在在AppStore配置文件安装失败时继续。

这给我提出了另一个问题:为什么App Store构建的iOS DWIM在安装完全有效的替代品时拒绝使用过期的配置文件启动Ad Hoc版本?