# 生成 iOS 证书和 Provisioning Profile
# 一、概述
# 1. 苹果开发者账号
创建 iOS 证书和 Profile 需使用付费的苹果账号,苹果开发者账号有三种,个人开发者、公司开发者、企业开发者,用途各有不同。
- 个人开发者和公司开发者是 99 美刀/年,企业开发者是 299 美刀/年。
- 企业开发者一般是大企业开发内部应用时使用,不能上架 App Store 的。
请先确保你已经有一个个人开发者或公司开发者账号
# 2. 证书介绍
证书有多种类型,用于不同的目的。以下是 iOS 证书的分类:
- 开发者证书(Developer Certificate):用于在开发阶段对应用程序进行签名和调试。开发者证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
- 分发证书(Distribution Certificate):用于将应用程序分发给其他用户或者上传到 App Store 进行审核。分发证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
- 推送证书(Push Certificate):用于实现远程推送功能,可以让应用程序接收来自服务器的推送通知。推送证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
- 企业证书(Enterprise Certificate):用于将应用程序分发给企业内部员工或者客户。企业证书由苹果开发者中心颁发,需要使用 Xcode 或者其他开发工具进行申请和管理。
# 3. Provisioning Profile 介绍
配置文件(Provisioning Profiles)同样也分两种,分为开发(Development)和发布(Distribution),配置文件中包含了证书、App ID、设备(Devices),后缀名为 .mobileprovision。它在开发者账号体系中扮演着配置和验证的角色,是真机调试和打包上架必须的文件。
- 一个 Provisioning Profile 对应一个 App ID(bundleId)
- Provisioning Profile 决定 Xcode 用哪个证书(公钥)/私钥组合(Key Pair/Signing Identity)来签名应用程序(Signing Product),将在应用程序打包时嵌入到 .ipa 包里。
- Provisioning Profile 把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用。这样,只要在不同的情况下选择不同的 Provisioning Profile 文件就可以了。
- Provisioning Profile 也分为 Development 和 Distribution 两类,有效期同 Certificate 一样。Development 版本的 ProvisioningProfile 用于开发调试,Distribution 版本的 ProvisioningProfile 主要用于提交 App Store 审核,其不指定开发测试的 Devices。
# 二、操作指南
- 本章节主要介绍证书的创建和对应的 Profile 的生成
- Windows 系统不支持,创建证书只能在 macOS 完成,因此本章节教程仅适用于 Mac 系统
# 1. 创建CSR文件(证书请求文件)
- 进入 macOS,点击「 钥匙串访问 -> 证书助理 -> 从证书颁发机构请求证书」,
- 填写对应的信息,Keychain 将生成一个包含开发者身份信息的 CSR(Certificate Signing Request)文件,Keychain Access->Keys(密钥)中会增加一对 Public/Private Key Pair。
# 2.创建 appID
登录苹果后台, 创建 appID(bundleID),填写的 bundleID 需要和申请移动应用账号时填写的 bundleID 一致。
此外,还要开启以下权限:
- Access WiFi Information
- Associated Domains
- Hotspot
- Wireless Accessory Configuration
如果使用了多端身份管理模块,请再开启苹果登录权限:
- Sign In with Apple
如果使用的其他原生插件要求开启对应权限,如苹果支付,也配置开启对应权限。
# 3. 创建开发者证书
选择Certificates, 点击创建证书,选择相应的证书。
- 生成完证书,可以在
Certificates
->All
中查看该证书,并进行下载或删除。 - 生成的证书(cer文件)只包含公钥,私钥在你的电脑本地。下载证书到本地后双击打开可以安装到钥匙串中。可以选择对应证书,右键导出 p12 文件(包含私钥),这个用来对 iOS App 进行签名。
需要注意的是,证书的状态必须显示的是
此证书有效
,其他状态的证书都将导致签名失败或者导出的 IPA 不可用。证书状态显示
信任
而不是此证书有效
可能是因为证书信任链不完整,开发者可尝试「右键证书」-> 「显示简介」查看证书信任链。找到 CA 签发者,下载证书后双击。
# 4. 创建配置文件(Provisioning Profiles)
- 点击创建 Profiles,选择类型,然后选择之前创建的 AppID 和对应类型的证书,填写 Profile 名称
- 完成配置后,即可下载生成的 Profile 文件到本地
# 5. 编译 IPA
- 在上述步骤中生成的 p12 签名证书和 Profile 文件,可以在微信开发者工具上构建 IPA 时选择证书签名,详情卡查看打包生成 IPA
- 选择对应的文件即可生成 IPA
- 分发类型证书签名后的 IPA 即可上传到 App Store Connect 提审
# 6. 注意事项
- 需要注意的是,证书与 Provisioning Profiles 的类型必须配对使用,即都是开发类型、或者都是分发类型
- 并且能通过开发者工具、xcode 安装至手机运行的 IPA 需要是开发证书签名生成的