在 iOS 开发过程中,描述文件(Provisioning Profile)很少被详细说明,但它几乎参与了每一次打包、安装和上架。
很多问题表面上是 安装失败 或 签名错误,实际是描述文件配置出了偏差,如果不把描述文件管理弄清楚,后面也会出问题。
描述文件在上架流程中的作用
在 iOS 流程里,描述文件处在中间的位置:
- 上游:证书 + Bundle ID
- 下游:IPA 打包 + 安装 + 上架
它的作用可以理解为,把 证书 和 Bundle ID 和 环境 绑定在一起
因此描述文件一旦选错,后面的就会全部失效。
假设一个场景
应用已经打包成功,安装到手机时报错,Xcode 没有明显报错
这种情况大概率不是代码上面的问题,而是描述文件:
- 用了 Development 描述文件去做 App Store 打包
- 或设备没有加入描述文件
- 或描述文件绑定了错误证书
因此管理描述文件的第一步不是创建,而是明确用途。
描述文件类型如何选择
在实际操作中,只需要区分两类:
| 类型 | 使用场景 |
|---|---|
| Development | 本地调试 / 测试安装 |
| App Store | 提交审核 / 上架 |
如果当前目标是“上架”,就不需要考虑设备 UDID,也不需要选择 Development 类型。
在工具中创建描述文件
在 AppUploader(开心上架) 中,可以直接完成描述文件创建,不依赖 Xcode 或网页后台。
具体操作如下:
1. 进入描述文件管理
打开 AppUploader 后,点击「描述文件管理」。
2. 新建描述文件
点击“新建描述文件”,填写:
- 描述文件名称(自定义,用于区分环境)
- 描述文件类型(选择 App Store 或 Development)
- Bundle ID(必须与项目一致)
如果 Bundle ID 不存在,可以直接在工具中新增。
3. 绑定证书
选择之前生成的证书:
- Development 描述文件 → 绑定开发证书
- App Store 描述文件 → 绑定发布证书
如果出现“证书为空”,说明:
- 当前账号没有对应类型证书
- 或证书尚未创建
需要回到证书管理中补充。
4. 处理测试设备(仅 Development)
如果创建的是 Development 描述文件:
- 需要勾选测试设备
- 如果设备不存在,需要先添加 UDID
如果不做这一步,安装时会直接失败。
5. 下载描述文件
点击下载,得到 .mobileprovision 文件。
这个文件将在打包阶段使用。
如何验证描述文件是否正确
生成描述文件之后,可以做一个简单验证:
方法一:查看内容
可以解析 .mobileprovision 文件,确认:
- Bundle ID 是否正确
- 证书是否匹配
- 类型是否为 App Store
方法二:实际打包测试
将描述文件导入打包工具:
- Xcode
- HBuilderX
- CI 环境
如果打包成功且安装正常,说明描述文件配置正确。
描述文件与多工具协作
在实际项目中,描述文件不会单独存在,而是和多个工具配合使用。
例如:
- Xcode → 使用描述文件进行签名
- Fastlane → 自动构建时加载描述文件
- AppUploader → 创建与管理描述文件
- CI → 使用描述文件进行自动打包
如果描述文件统一管理,可以减少以下问题:
- 多人使用不同描述文件
- 证书不匹配
- 打包环境不一致
几个容易忽略的细节
1. 描述文件与 App 是一对一关系
一个 App 对应一个描述文件,不建议复用。
2. 证书可以复用,但描述文件不能乱用
同一个证书可以用于多个 App,但描述文件必须绑定具体 Bundle ID。
3. 上架只需要 App Store 描述文件
不需要设备、不需要 UDID。
描述文件本身并不复杂,但它连接了证书、应用和发布环境。所以一定要做好管理