【问题标题】:XCode doesn't honor the "iOS Distribution" Code Signing Entity settingXCode 不支持“iOS Distribution”代码签名实体设置
【发布时间】:2014-03-02 12:24:45
【问题描述】:

我想正确理解代码签名身份设置:我想在 Xcode 中使用自动设置,而不是指定特定身份。自动设置有 2 个选择:iOS Developer 和 iOS Distribution。根据您使用的身份,它应该切换到从您的钥匙串中选择开发人员或分发签名身份。

我的构建设置配置如下,以便在构建时使用“iOS 分发”身份:

当我存档我的应用程序(存档方案被正确设置为使用 Release 构建配置)时,我看到 Xcode 没有使用正确的代码签名身份:

有人知道为什么会这样吗?我正在寻找解释而不是解决方法(我知道我可以通过直接将代码签名身份设置为我的 iPhone 分发:公司名称钥匙串中的身份来解决这个问题)

谢谢!

【问题讨论】:

标签: ios xcode code-signing provisioning-profile codesign


【解决方案1】:

有趣的是,这在最新的 Xcode 中实际上并不重要,只要您最终要签名的配置文件与现在签名的配置文件具有相同的包标识符...

只要设置了团队设置,Xcode 就能够自动生成您需要的配置文件。不要试图与之抗争。

这是 Target 的常规设置屏幕中的团队设置:

然后,当您归档 Xcode 时,会将归档文件放入管理器中。当您在管理器窗口中单击存档时,它会提示您选择新的签名身份并实际重新签署应用程序。

它实际上可以使用 Xcode 生成的团队配置文件来签署应用程序。您也不需要制作特别的特定配置文件,因为您的测试人员现在可以毫无问题地安装使用开发配置文件签名的应用程序。您唯一需要制作自己的配置文件的情况是,如果您使用任何具体的捆绑 ID 功能,例如推送通知、游戏中心、数据保护、iCloud、应用间音频、存折、钥匙串访问组或应用内购买。

如果您为特定的 bundle id 创建自己的配置文件,那么 Xcode 将在管理器窗口中选择身份时自动选择或可供选择相关的配置文件。

您可以从 Xcode 设置的“帐户”窗格刷新 Xcode 的配置文件缓存。点击你的团队,点击“查看详情”,然后点击左下角的小刷新按钮

【讨论】:

  • 谢谢。这是有道理的,但您知道为什么我会在 TestFlight 中收到以下错误:“embedded.mobileprovision 中的钥匙串访问组与您的二进制文件不匹配。”据此,我认为我必须使用分发实体进行签名以确保前缀匹配(开发人员实体具有通配符前缀,可能与 Adhoc 配置文件中的前缀不匹配)help.testflightapp.com/customer/portal/articles/…
  • 这通常发生在您从组织者窗口重新签名时选择的配置文件实际上与您的 Target 的团队设置不同的团队中。
  • 我只有一个团队,我不认为会是这样。我注意到,对于我的其他应用程序,XCode 创建了与应用程序 ID 完全匹配的开发配置文件,而对于这个应用程序,它使用带有通配符的配置文件。
  • 哈。我刷新了 Xcode 的缓存,它似乎正在供应门户上创建一个与 App ID 完全匹配的开发供应配置文件。
  • 我会花钱修复它。
猜你喜欢
  • 2022-08-24
  • 2021-01-23
  • 2012-06-15
  • 2021-09-28
  • 1970-01-01
  • 2019-11-21
  • 2022-08-20
  • 2018-04-28
  • 2021-11-17
相关资源
最近更新 更多