选择正确的代码签名方法

如果你刚刚开始一个新项目,那么考虑如何处理代码签名非常重要。

如果你不熟悉代码签名,请查看描述 Xcode 代码签名基础知识的 WWDC 会话

要对你的应用进行正确的代码签名,你必须在本地计算机上拥有以下资源:

  • 私钥(.p12 文件)
  • 证书(.cer 文件),与私钥匹配
  • 配置文件(.mobileprovision 文件),与本地安装的证书和私钥相匹配

在 Apple Developer Portal 上,还需要具有与你的配置文件关联的有效 App ID。

使用 Xcode 的代码签名功能

有时,作为配置文件的 Automatic 设置无法可靠地工作,因为它只会选择最近更新的配置文件,无论是否安装了证书。

这就是为什么建议以某种方式指定特定的配置文件:

Xcode 7 及更低版本

你应该避免点击 Fix Issue 按钮(有一个禁用按钮的 Xcode 插件 ),因为它有时会撤销现有的证书,并随之撤销配置文件。

遗憾的是,你无法在 Xcode 7 中指定配置文件的名称。你可以指定配置文件的 UUID,每次重新生成配置文件时都会更改(例如,当你添加新设备时)。

要解决此问题,请查看 XcodeProject.md ,了解在构建应用程序时如何将配置文件传递给 Xcode。

Xcode 8 及以上

随着 Xcode 8 的发布,Apple 改进了代码签名,以下内容发生了变化:

  • 不再使用 Fix Issue 按钮,而是所有代码签名进程在后台运行并在 Xcode 中显示正确的日志
  • 你现在可以按名称而不是 UUID 指定配置文件( 有关更多信息,请查看 XcodeProject.md
  • 出现问题时改进错误消息。如果你遇到代码签名错误,你应该尝试使用 Xcode 构建和签名以获取更详细的错误信息。 (查看 Troubleshooting.md 以获取更多信息)

手动

你始终可以使用 Apple Developer Portal 手动创建和管理证书和配置文件。确保将证书的私钥(.p12)存放在安全的地方,因为如果丢失证书,则无法恢复。

你始终可以从 Apple Developer Portal 下载证书(.cer)和配置文件(.mobileprovision)。

如果你撤销证书或证书过期,则所有关联的配置文件都将无效。

使用 fastlane 匹配

匹配的概念在代码签名指南中描述,如果你使用 fastlane ,则建议使用代码签名方法

通过匹配, 你可以将私钥和证书存储在 git 仓库中,以便跨机器同步它们。这样可以轻松加入新的团队成员并设置新的 Mac 计算机。这种方法是安全的, 并使用你已经使用的技术。

匹配入门要求你撤销现有证书。