iOS配置配置文件和签名身份

时间:2014-03-18 08:22:10

标签: ios xcode provisioning-profile ios-provisioning

我在所有证书/配置文件中都有点迷失。

当我通过首先进行“归档”然后在XCode中“分发”然后选择我的ad-hoc分发配置文件来进行临时分发时,我在项目中设置的内容是否重要 - >目标 - >构建设置 - >代码签名?

一方面,我在不同的地方读到,当您归档构建时,您可以(并且确实应该)使用相同的存档来进行ad-hoc的beta测试,然后在准备就绪时使用以下方式签署/分发相同的存档appstore个人资料并上传到应用商店。那是有道理的。它还告诉我,我确实可以在项目设置中留空配置文件,实际使用“分发”操作期间选择的配置文件,签名标识实际上是与该配置中列出的分发证书关联的私钥轮廓。正确?

另一方面,testflight说明(http://help.testflightapp.com/customer/portal/articles/1333914)明确指出项目设置也应设置为使用Ad-hoc配置文件,并且必须在项目设置和“分发”中使用相同的配置文件。这意味着我无法将相同的存档用于ad-hoc和app-store发行,是吗?每次我想为此分发版本发布时,是否需要更改项目设置?

此外,如果项目设置在存档/分发方案中存在任何差异,则不清楚应在何处使用代码签名标识。 Testflight截图显示iOS Developer既可用于调试,也可用于发布,但ad-hoc和app store分发都没有与之关联的个人iOS开发人员证书,分发配置文件通常只与一个和一个分发证书相关联。

有人可以解释一下,并解释它究竟应该如何运作?

由于

1 个答案:

答案 0 :(得分:1)

是的,您的构建设置很重要。 Xcode从您的初始代码签名/配置配置文件配置中获取各种权利,它只在Distribute ...阶段对它们进行最小的更改。

因此,如果Xcode在存档步骤中选择了错误的配置文件,您最终可能会遇到错误的捆绑种子ID,钥匙串组,APN环境和iCloud权利。

Distribute ...按钮调用PackageApplication脚本,确保get-task-allow为假(调试器无法连接),嵌入配置文件,然后重新签名和拉链你的应用程序(虽然我的订单可能有错)。

PackageApplication值得一读。人们可能会因为不聪明而错误,但我认为它应该更加严格并且拒绝打包一个应用程序,该应用程序的权利与它正在使用的配置文件不同。

您可以在Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication

找到它

我认为分发Ad Hoc构建的稳定工作流程是

  1. 从系统中删除所有通配符配置文件
  2. 在发布配置中选择您的App Store配置文件(在存档阶段使用)
  3. 分发中的
  4. 选择您的Ad Hoc个人资料
  5. 1.的原因是通配符配置文件(匹配多个BundleID的配置文件,由您手动创建或由Xcode自动创建)不值得。是的,它们可以让您更快地在设备上运行代码,但如果您想使用推送通知或任何其他有趣的服务,您很快就会放弃它们,然后它们会在您的系统上闲逛,迟早Xcode会默默选择其中一个并破坏你的App Store提交。

    对于第2点(选择App Store配置文件),我对在项目中指定配置文件犹豫不决,但App Store只需要在证书过期后每年更改一次(除非您在“证书,标识符和配置文件”门户中编辑应用程序标识符,然后您需要重新生成配置文件并在项目设置中重新选择它。 由于Ad Hoc和App Store配置文件基于相同的应用程序标识符,因此它们的权利将始终保持同步。

    第2点应该使第1点不必要,但是通配符配置文件也会很高兴搞乱你的开发版,所以为什么让他们有机会在后面刺伤你?

    第3点 - 您可以根据需要更改您的Ad Hoc配置文件 - 只需记住在Distribute中选择正确的配置文件;权利取自App Store配置文件,该配置文件应该很少更改。没有什么可以阻止你从这里分发到App Store。这很自然。

    P.S。我不知道为什么TestFlight建议在发行版中选择Ad Hoc而不是App Store。