本篇目标

理解 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 公司:

  • 个人:显示个人名称,无需邓白氏编码。

  • 公司:显示公司名称,需要邓白氏编码。

  • 两者上架流程一致,公司账号支持多角色协作。

建议:

  • 个人独立开发:个人开发者账号即可。

  • 需要团队协作:公司开发者账号。

  • 只做内部测试:企业账号(但审核严格)。

三、证书类型

开发者后台 Certificates 列表

开发证书(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 配置页

App ID 是应用的唯一标识,与 Bundle Identifier 对应。

类型:

类型

说明

用途

显式 App ID

唯一匹配一个 Bundle ID

大多数应用

通配 App ID

匹配多个 Bundle ID

简单测试

Bundle Identifier 命名规范:

com.公司名.应用名
com.example.myapp

创建 App ID:

  1. 登录 developer.apple.com

  2. 进入 Certificates, Identifiers & Profiles

  3. 选择 Identifiers

  4. 点击 + 创建

  5. 选择 App IDs

  6. 填写 Description 和 Bundle ID

  7. 选择需要的 Capabilities(推送、内购等)

  8. 点击 Continue 完成

Capabilities 说明:

能力

用途

Push Notifications

推送通知

In-App Purchase

内购

Sign in with Apple

Apple 登录

iCloud

云存储

HealthKit

健康数据

Wallet

钱包卡券

注意:

  • 创建后 Bundle ID 不可修改。

  • 通配 App ID 不支持部分高级能力。

  • 建议使用显式 App ID。

五、设备注册

Devices 列表页与添加 UDID

真机调试需要注册设备 UDID。

获取 UDID:

  1. 用数据线连接 iPhone 到 Mac。

  2. 打开 Finder,选择设备。

  3. 点击设备信息区域,显示 UDID。

  4. 右键复制 UDID。

或通过 Xcode:

  1. 打开 Device Hub(Xcode 菜单栏 → Open Developer Tool → Device Hub,或快捷键 ⇧⌘2;Xcode 26 及更早为 Window → Devices and Simulators)。

  2. 选择设备,复制 Identifier。

注册设备:

  1. 进入 Devices 页面。

  2. 点击 + 添加。

  3. 填写设备名称和 UDID。

  4. 保存。

设备限制:

账号类型

设备数量

个人/公司

每年 100 台

企业

不限

注意:

  • 设备数量每年重置一次。

  • 删除设备不释放名额,需等年度重置。

  • Ad Hoc 分发需要提前注册设备。

六、描述文件

Profiles 列表页

描述文件把证书、App ID、设备绑定在一起。

类型:

类型

用途

是否需注册设备

Development

真机调试

是

Ad Hoc

限定设备分发

是

App Store

上架 App Store

否

Enterprise

企业内部分发

否

描述文件内容:

  • 证书

  • App ID

  • 设备列表(Development / Ad Hoc)

  • 权限(Entitlements)

  • 有效期

创建描述文件:

  1. 进入 Profiles 页面。

  2. 点击 + 创建。

  3. 选择类型(如 App Store)。

  4. 选择 App ID。

  5. 选择证书。

  6. 选择设备(如需要)。

  7. 命名并生成。

  8. 下载 .mobileprovision 文件。

Xcode 自动管理:

勾选 Automatically manage signing 后,Xcode 会自动创建和管理描述文件。

优点:

  • 无需手动操作。

  • 自动更新证书。

  • 适合个人开发。

缺点:

  • 团队协作时可能冲突。

  • 复杂配置需要手动管理。

七、手动配置签名

Xcode Signing & Capabilities

在 Xcode 中配置:

  1. 打开项目。

  2. 选择 Target → Signing & Capabilities。

  3. 取消勾选 Automatically manage signing。

  4. 选择 Team。

  5. 选择 Provisioning Profile。

  6. 选择 Signing Certificate。

Provisioning Profile 选择:

  • 开发调试:Development Profile。

  • 上架:App Store Profile。

  • Ad Hoc:Ad Hoc Profile。

签名证书选择:

  • 开发调试:Apple Development。

  • 上架:Apple Distribution。

检查配置:

  • Bundle Identifier 与 App ID 一致。

  • Team 选择正确。

  • 证书未过期。

  • 描述文件包含当前设备(调试时)。

八、证书管理

下载证书:

  1. 进入 Certificates 页面。

  2. 找到对应证书。

  3. 点击 Download。

  4. 双击安装到钥匙串。

查看已安装证书:

  1. 打开钥匙串访问。

  2. 选择登录 → 我的证书。

  3. 查看证书列表。

证书过期处理:

  • 重新生成证书。

  • 更新描述文件。

  • 重新签名打包。

证书吊销:

  • 私钥泄露时吊销。

  • 不再使用时吊销。

  • 吊销后相关 App 无法运行。

注意:

  • 证书私钥要备份。

  • 不要在多台电脑随意生成证书。

  • 团队协作统一管理证书。

九、描述文件管理

查看描述文件:

  1. 进入 Profiles 页面。

  2. 查看所有描述文件。

  3. 显示类型、App ID、状态、有效期。

下载描述文件:

  1. 找到对应描述文件。

  2. 点击 Download。

  3. 双击安装。

更新描述文件:

  • 证书变化后需要重新生成。

  • 设备变化后需要重新生成。

  • 权限变化后需要重新生成。

描述文件位置:

~/Library/MobileDevice/Provisioning Profiles/

注意:

  • 描述文件包含设备列表。

  • App Store 描述文件不含设备。

  • 描述文件过期需要重新生成。

十、常见问题排查

问题

原因

解决

签名失败

证书过期

重新生成证书

无法安装

设备未注册

添加设备到描述文件

描述文件无效

证书不匹配

更新描述文件

编译报错

Bundle ID 不一致

检查 App ID

无法上传

描述文件类型错误

使用 App Store 描述文件

证书丢失

未备份私钥

重新生成证书

排查步骤:

  1. 检查 Bundle Identifier。

  2. 检查 Team 选择。

  3. 检查证书有效期。

  4. 检查描述文件状态。

  5. 检查设备是否注册。

  6. 清理项目重新编译。

📌 进阶内容:团队协作签名(多角色权限、.p12 证书共享)属团队场景,已放到第 10 章《团队协作与签名》,个人开发者可先跳过。

十一、避坑指南

  • Bundle ID 一旦创建不可修改:上架后更不能改。

  • 证书私钥要备份:丢失后只能重新生成。

  • 设备数量有限:每年 100 台,谨慎添加。

  • 描述文件要匹配证书:不匹配会签名失败。

  • App Store 描述文件不含设备:不需要注册设备。

  • 自动签名适合个人:团队建议手动管理。

  • 证书过期提前处理:避免影响上架。

  • 不要多台电脑随意生成证书:容易冲突。

十二、检查清单

  • [ ] 理解 iOS 签名机制

  • [ ] 了解开发者账号类型

  • [ ] 掌握证书类型与用途

  • [ ] 会创建 App ID

  • [ ] 会注册设备

  • [ ] 会创建描述文件

  • [ ] 能配置 Xcode 签名

  • [ ] 会管理证书与描述文件

  • [ ] 了解常见问题排查

  • [ ] 了解团队协作签名