Xcode - 代码签名身份自动?

Posted

技术标签:

【中文标题】Xcode - 代码签名身份自动?【英文标题】:Xcode - code signing identity automatic? 【发布时间】:2014-06-16 00:11:08 【问题描述】:

Xcode 5 中构建设置选项卡下的Automatic 代码签名标识是什么意思?当我选择ios Developer 时,Debug 和 Release 都使用它。我应该使用什么?我能否以 iPhone 开发者身份发布应用程序以供发布?

我的配置文件(下面的设置)设置正确(Debug 使用 Team provisioning profileRelease 使用我的临时配置文件),代码签名身份设置和配置文件一有什么不同?

这是我正在谈论的一些屏幕截图:

另外,当我将Automatic 放入DebugRelease 时,它会将其标记为Don't code sign,为什么?

编辑:

iPhone Developer 是否也适用于发布?我应该选择自动/iPhone 分发吗?

如您所见,我对 Xcode 建议的所有设置与代码签名身份感到非常困惑,因此欢迎对每个设置进行任何澄清,谢谢!

【问题讨论】:

【参考方案1】:

自动设置应根据代码签名部分底部选项中设置的配置文件自动使用正确的证书为您的应用签名。您可以显式设置代码签名身份和配置文件,或将代码签名身份设置为自动。如果选择自动,Xcode 将自动使用与配置文件关联的证书。

例如,如果 Debug 配置文件是开发配置文件,并且 Release 配置文件设置为临时配置文件,那么当您构建并运行(通常使用调试配置)时,Xcode 将使用与开发配置文件关联的开发证书。如果您归档您的应用程序(通常使用 Release 配置),Xcode 将使用与 Ad Hoc 配置文件关联的分发证书对您的应用程序进行签名。

基本上,这只是让 Xcode 根据 Provisioning Profile 决定应该使用哪个证书的一种方式。

“设置代码签名身份构建设置”部分的最后一行 here 暗示了这一点,但并不过分明确。

将 Provisioning Profile 构建设置设置为您的开发配置文件 和代码签名身份构建设置到您的开发 证书。

【讨论】:

【参考方案2】:

代码签名背后的主要思想是证明应用是由您创建的,并轻松检测应用中的任何更改。因此,在您选择一个 Provisioning Profile 后,Xcode 会自动将 iOS 应用程序的 Code Signing Identity 构建设置设置为“iPhone Developer”。它运行良好,您的应用在下次构建时已进行代码签名。

这个thread 用屏幕截图回答了您的具体问题。

Apple documentation 还建议 -

如有必要,从代码签名身份弹出菜单中,选择您的 开发证书。

对于 iOS 应用,在配置文件菜单中选择证书 以文本“iPhone Developer:”开头的项目,后跟您的 名字。

关于自动配置文件选择器,这是Apple documentation 所说的 -

您的配置文件或签名身份不会出现在 Xcode 中 菜单 有时,您的配置文件或签名身份 未出现在配置文件或签名身份弹出窗口中 使用设备管理器分发应用程序时或 在项目编辑器中设置代码签名身份构建设置。 发生这种情况时,请刷新 Xcode 中的配置文件,如所述 在“刷新 Xcode 中的配置文件”中。

如果您的配置文件仍未出现在代码签名中 身份构建设置菜单,选择不要代码签名或证书 在 Code Signing Identity 菜单中的 Automatic Profile Selector 下。 下次您选择 Code Signing Identity 菜单时,您的 配置文件应该出现在菜单中。

【讨论】:

“iPhone 开发者”签名是否也适用于发布/分发?请参阅我的截图编辑。 @allaire 这是一个很好的问题。您应该使用您的分发配置文件进行发布。详细答案被投票赞成here。这很有意义。希望,这很有帮助。

以上是关于Xcode - 代码签名身份自动?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 10:代码签名身份中的不代码签名选项在哪里

XCode 存档:“未找到代码签名身份:未找到有效的签名身份(即证书和私钥对)。”

XCode 4.5 中的代码签名身份

xcode 5:代码签名身份列表不完整

如何删除 Xcode 中的代码签名?

制作 .ipa 时未使用 Xcode Server Bot 找到代码签名身份