Xcode - 代码签名标识自动化?

9
在Xcode 5的构建设置选项卡下,“自动”代码签名身份是什么意思?当我选择“iOS开发者”时,调试和发布都使用它。我应该使用什么?我能用iPhone Developer身份来发布应用吗?
我的配置文件(设置下方)已正确设置(调试使用团队配置文件,发布使用我的特定配置文件),那么代码签名身份设置和配置文件有什么不同?
以下是我所说的一些截图:
此外,当我将“自动”设置为“调试”和“发布”时,它标记为“不要签名”,为什么?
编辑:
iPhone Developer身份是否也适用于发布?我应该选择Automatic/iPhone Distribution吗?
正如您所看到的,我对Xcode提供的所有代码签名身份设置都感到非常困惑,因此,欢迎任何关于每个设置的澄清,谢谢!
2个回答

10
自动设置应该会根据在“代码签名”部分底部选项中设置的配置文件自动使用正确的证书对您的应用进行签名。您可以显式设置代码签名标识和配置文件,或将代码签名标识设置为自动。如果选择自动,则Xcode将自动使用与配置文件关联的证书。
例如,如果“调试”配置文件是开发配置文件,并且“发布”配置文件设置为Ad Hoc配置文件,则当您构建并运行(通常使用“调试”配置)时,Xcode将使用与开发配置文件相关联的开发证书对您的应用进行签名。如果您归档您的应用程序(通常使用“发布”配置),Xcode将使用与Ad Hoc配置文件关联的发布证书来签署您的应用程序。
基本上,这只是一种让Xcode根据配置文件决定使用哪个证书的方法。
“设置代码签名标识构建设置”部分的最后一行here暗示了这一点,但没有过多明确说明。

1
Code Signing的主要目的是证明应用程序是由您创建的,并轻松检测应用程序中的任何更改。因此,在选择Provisioning Profile之后,Xcode会自动将Code Signing Identity构建设置设置为“iPhone Developer”(适用于iOS应用程序)。这很好用,下次构建应用程序时,您的应用程序将被签名。
这个thread通过截图回答了您的具体问题。 Apple documentation也建议 -
如果需要,在Code Signing Identity弹出菜单中选择您的开发证书。 对于iOS应用程序,请在以“iPhone Developer:”开头并带有您姓名的provisioning profile菜单项中选择证书。
关于自动配置文件选择器,这是Apple文档中的说法 -

您的配置文件或签名标识在使用设备组织器分发应用程序或在项目编辑器中设置代码签名标识时,偶尔不会出现在配置文件或签名标识弹出菜单中。当出现这种情况时,请按照“在Xcode中刷新配置文件”中所述刷新Xcode中的配置文件。

如果您的配置文件仍未出现在代码签名标识构建设置菜单中,请从代码签名标识菜单中选择“不要代码签名”或“自动配置文件选择器”下的证书。下一次选择代码签名标识菜单时,您的配置文件应该出现在菜单中。


1
“iPhone开发者”签名是否也适用于发布/分发?请参见我的编辑的截图。 - allaire
@allaire 那是一个很好的问题。你应该在发布时使用你的分发配置文件。详细的答案在这里得到了赞同。这很有道理。希望这对你有所帮助。 - raurora

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接