本篇目标
理解 iOS 签名机制,掌握证书与描述文件的类型和用途,能完成开发者账号配置、证书申请、描述文件生成,为打包上架做好准备。
一、iOS 签名机制
iOS 要求所有 App 必须经过签名才能运行。签名机制用于:
验证 App 来源可信。
确保 App 未被篡改。
控制哪些设备可以安装。
管理开发者权限。
核心要素:
要素 | 作用 |
|---|---|
证书(Certificate) | 证明开发者身份 |
描述文件(Provisioning Profile) | 绑定证书、App ID、设备 |
App ID | 唯一标识应用 |
设备 UDID | 允许安装的设备 |
签名流程:
开发者 → 申请证书 → 创建 App ID → 注册设备 → 生成描述文件 → 签名打包二、开发者账号类型
类型 | 年费 | 用途 |
|---|---|---|
免费 Apple ID | 免费 | 本地调试,7 天有效期 |
个人开发者 | $99 | 上架 App Store |
公司开发者 | $99 | 上架,支持团队协作 |
企业开发者 | $299 | 内部分发,不上架 |
教育开发者 | 免费 | 教学用途 |
个人 vs 公司:
个人:显示个人名称,无需邓白氏编码。
公司:显示公司名称,需要邓白氏编码。
两者上架流程一致,公司账号支持多角色协作。
建议:
个人独立开发:个人开发者账号即可。
需要团队协作:公司开发者账号。
只做内部测试:企业账号(但审核严格)。
三、证书类型

开发证书(Development):
用途:真机调试。
有效期:1 年。
数量限制:每个账号最多 2 个。
对应描述文件:Development Provisioning Profile。
分发证书(Distribution):
用途:上架 App Store 或 Ad Hoc 分发。
有效期:3 年。
数量限制:每个账号最多 3 个。
对应描述文件:Distribution Provisioning Profile。
证书类型对比:
类型 | 用途 | 有效期 | 数量限制 |
|---|---|---|---|
Development | 真机调试 | 1 年 | 2 个 |
Distribution | 上架/分发 | 3 年 | 3 个 |
Push | 推送通知 | 1 年 | 按需 |
Pass Type ID | 钱包卡券 | 1 年 | 按需 |
注意:
证书过期需要重新生成。
证书丢失可以重新下载或吊销重签。
一个证书可以用于多个 App。
四、App ID

App ID 是应用的唯一标识,与 Bundle Identifier 对应。
类型:
类型 | 说明 | 用途 |
|---|---|---|
显式 App ID | 唯一匹配一个 Bundle ID | 大多数应用 |
通配 App ID | 匹配多个 Bundle ID | 简单测试 |
Bundle Identifier 命名规范:
com.公司名.应用名
com.example.myapp创建 App ID:
登录 developer.apple.com
进入 Certificates, Identifiers & Profiles
选择 Identifiers
点击 + 创建
选择 App IDs
填写 Description 和 Bundle ID
选择需要的 Capabilities(推送、内购等)
点击 Continue 完成
Capabilities 说明:
能力 | 用途 |
|---|---|
Push Notifications | 推送通知 |
In-App Purchase | 内购 |
Sign in with Apple | Apple 登录 |
iCloud | 云存储 |
HealthKit | 健康数据 |
Wallet | 钱包卡券 |
注意:
创建后 Bundle ID 不可修改。
通配 App ID 不支持部分高级能力。
建议使用显式 App ID。
五、设备注册

真机调试需要注册设备 UDID。
获取 UDID:
用数据线连接 iPhone 到 Mac。
打开 Finder,选择设备。
点击设备信息区域,显示 UDID。
右键复制 UDID。
或通过 Xcode:
打开 Device Hub(Xcode 菜单栏 → Open Developer Tool → Device Hub,或快捷键 ⇧⌘2;Xcode 26 及更早为 Window → Devices and Simulators)。
选择设备,复制 Identifier。
注册设备:
进入 Devices 页面。
点击 + 添加。
填写设备名称和 UDID。
保存。
设备限制:
账号类型 | 设备数量 |
|---|---|
个人/公司 | 每年 100 台 |
企业 | 不限 |
注意:
设备数量每年重置一次。
删除设备不释放名额,需等年度重置。
Ad Hoc 分发需要提前注册设备。
六、描述文件

描述文件把证书、App ID、设备绑定在一起。
类型:
类型 | 用途 | 是否需注册设备 |
|---|---|---|
Development | 真机调试 | 是 |
Ad Hoc | 限定设备分发 | 是 |
App Store | 上架 App Store | 否 |
Enterprise | 企业内部分发 | 否 |
描述文件内容:
证书
App ID
设备列表(Development / Ad Hoc)
权限(Entitlements)
有效期
创建描述文件:
进入 Profiles 页面。
点击 + 创建。
选择类型(如 App Store)。
选择 App ID。
选择证书。
选择设备(如需要)。
命名并生成。
下载 .mobileprovision 文件。
Xcode 自动管理:
勾选 Automatically manage signing 后,Xcode 会自动创建和管理描述文件。
优点:
无需手动操作。
自动更新证书。
适合个人开发。
缺点:
团队协作时可能冲突。
复杂配置需要手动管理。
七、手动配置签名

在 Xcode 中配置:
打开项目。
选择 Target → Signing & Capabilities。
取消勾选 Automatically manage signing。
选择 Team。
选择 Provisioning Profile。
选择 Signing Certificate。
Provisioning Profile 选择:
开发调试:Development Profile。
上架:App Store Profile。
Ad Hoc:Ad Hoc Profile。
签名证书选择:
开发调试:Apple Development。
上架:Apple Distribution。
检查配置:
Bundle Identifier 与 App ID 一致。
Team 选择正确。
证书未过期。
描述文件包含当前设备(调试时)。
八、证书管理
下载证书:
进入 Certificates 页面。
找到对应证书。
点击 Download。
双击安装到钥匙串。
查看已安装证书:
打开钥匙串访问。
选择登录 → 我的证书。
查看证书列表。
证书过期处理:
重新生成证书。
更新描述文件。
重新签名打包。
证书吊销:
私钥泄露时吊销。
不再使用时吊销。
吊销后相关 App 无法运行。
注意:
证书私钥要备份。
不要在多台电脑随意生成证书。
团队协作统一管理证书。
九、描述文件管理
查看描述文件:
进入 Profiles 页面。
查看所有描述文件。
显示类型、App ID、状态、有效期。
下载描述文件:
找到对应描述文件。
点击 Download。
双击安装。
更新描述文件:
证书变化后需要重新生成。
设备变化后需要重新生成。
权限变化后需要重新生成。
描述文件位置:
~/Library/MobileDevice/Provisioning Profiles/注意:
描述文件包含设备列表。
App Store 描述文件不含设备。
描述文件过期需要重新生成。
十、常见问题排查
问题 | 原因 | 解决 |
|---|---|---|
签名失败 | 证书过期 | 重新生成证书 |
无法安装 | 设备未注册 | 添加设备到描述文件 |
描述文件无效 | 证书不匹配 | 更新描述文件 |
编译报错 | Bundle ID 不一致 | 检查 App ID |
无法上传 | 描述文件类型错误 | 使用 App Store 描述文件 |
证书丢失 | 未备份私钥 | 重新生成证书 |
排查步骤:
检查 Bundle Identifier。
检查 Team 选择。
检查证书有效期。
检查描述文件状态。
检查设备是否注册。
清理项目重新编译。
📌 进阶内容:团队协作签名(多角色权限、.p12 证书共享)属团队场景,已放到第 10 章《团队协作与签名》,个人开发者可先跳过。
十一、避坑指南
Bundle ID 一旦创建不可修改:上架后更不能改。
证书私钥要备份:丢失后只能重新生成。
设备数量有限:每年 100 台,谨慎添加。
描述文件要匹配证书:不匹配会签名失败。
App Store 描述文件不含设备:不需要注册设备。
自动签名适合个人:团队建议手动管理。
证书过期提前处理:避免影响上架。
不要多台电脑随意生成证书:容易冲突。
十二、检查清单
[ ] 理解 iOS 签名机制
[ ] 了解开发者账号类型
[ ] 掌握证书类型与用途
[ ] 会创建 App ID
[ ] 会注册设备
[ ] 会创建描述文件
[ ] 能配置 Xcode 签名
[ ] 会管理证书与描述文件
[ ] 了解常见问题排查
[ ] 了解团队协作签名