证书与签名
签名是 iOS 开发者最容易困惑、也最容易踩坑的环节。本章把 证书(Certificate)→ App ID(Identifier)→ 设备(Device)→ 描述文件(Provisioning Profile) 四者的关系彻底讲透。理解了这层关系,绝大多数签名报错你都能自己定位。
本章要解决的问题
- 开发证书和发布证书有什么区别,分别什么时候用?
- App ID / Bundle ID 是什么关系,为什么创建后不能改?
- 描述文件到底是什么?它和证书、App ID、设备有什么关系?
- 测试真机一定要注册 UDID 吗?TestFlight 也要吗?
学习目标
完成本章学习后,你应该能够:
- 画出「证书 + App ID + 设备 → 描述文件」的关系图,并解释为什么变更任一要素都要重新生成描述文件。
- 独立创建开发/发布证书,并安全备份
.p12。 - 正确创建显式 App ID 并开启所需 Capabilities。
- 区分开发、Ad Hoc、App Store 三种描述文件的用途。
- 遇到「No valid signing certificate」「Profile doesn’t include the device」等常见报错时知道从何排查。
章节内容
| 子章节 | 内容 | 建议用时 |
|---|---|---|
| Certificates(证书) | 证书类型、生成步骤、备份与吊销 | 30 分钟 |
| Identifiers(标识符) | App ID / Bundle ID、通配与显式、Capabilities | 25 分钟 |
| Provisioning Profiles(描述文件) | 类型、创建步骤、维护更新 | 25 分钟 |
| Devices(设备管理) | UDID 添加、设备上限、Ad Hoc 安装 | 15 分钟 |
阅读建议
- 使用 Xcode 自动签名的开发者:理解原理后,大部分情况交给 Xcode「Automatically manage signing」即可,但一定要知道自动签名背后在做什么。
- 使用 CI 打包的团队:本章的证书/描述文件维护知识是 CI 签名配置的前提,建议精读并配合 fastlane 文档实践。
- 遇到具体报错时:把报错信息对应到本章「常见问题」部分,通常能快速定位。
一句话记忆:描述文件 = 证书 + App ID +(可选)设备。证书证明「你是谁」,App ID 界定「你要签哪个 App」,设备限定「装到哪些真机」,描述文件把它们打包在一起,让系统信任你的构建。
