选择正确的代码签名方法
如果你刚刚开始一个新项目,那么考虑如何处理代码签名非常重要。
如果你不熟悉代码签名,请查看描述 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 计算机。这种方法是安全的, 并使用你已经使用的技术。
匹配入门要求你撤销现有证书。