第366集iOS证书(.p12)和描述文件(.mobileprovision)申请
iOS证书(.p12)和描述文件(.mobileprovision)申请
iOS有两种证书和描述文件:
证书类型 使用场景
- 开发(Development)证书和描述文件 用于开发测试,在 HBuilderX 中打包后可在真机环境通过Safari调试
- 发布(Distribution)证书和描述文件 用于提交 AppStore,在 HBuilderX 中提交云打包后提交到 AppStore 审核发布
准备环境
- 必需要有苹果开发者账号,并且加入了 “iOS Developer Program”
- Mac OS 10.9以上系统(如果已经申请p12证书则不需要)
登录 iOS Dev Center
打开网站 iOS Dev Center
使用苹果开发者账号登录 iOS Dev Center:
登录成功后在页面左侧选择 “Certificates,IDs & Profiles” 进入证书管理页面:
在证书管理页面,可以看到所有已经申请的证书及描述文件:
下面我们从头开始学习一下如何申请开发证书、发布证书及相对应的描述文件。
首先需要申请苹果 App ID (App的唯一标识)
如果已经申请,可跳过此节
选择页面的 “Identifiers” 可查看到已申请的所有 App 应用标识,点击页面上的加号来创建一个新的应用标识:
选择标识类型为 “App IDs”,然后点击 “Continue”
平台选择 “iOS,tvOS,watchOS”,Bundle ID 选择 “Explicit”,在 Description 中填写描述,然后填写 Bundle ID,Bundle ID 要保持唯一性,建议填写反域名加应用标识的格式 如:“io.dcloud.hellouniapp”, 然后点击 “Continue”
注意:在 HBuilderX 中 App 提交云端打包时界面上的 AppID 栏填写的就是这个 Bundle ID
接下来需要选择应用需要使用的服务(如需要使用到消息推送功能,则选择“Push Notifications”),然后点击 “Continue”
注意:如果App用不到的服务一定不要勾选,以免响应审核
确认后选择提交,回到 identifiers 页面即可看到刚创建的App ID:
至此,App ID 已经创建完毕,接下来开始创建开发证书,在创建开发证书前,需要先生成证书请求文件
生成证书请求文件
不管是申请开发 (Development) 证书还是发布 (Distribution) 证书,都需要使用证书请求 (.certSigningRequest) 文件,证书请求文件需在Mac OS上使用 “钥匙串访问” 工具生成。
在“Spltlight Search”中搜索“钥匙串”并打开 “钥匙串访问” 工具:
打开菜单 “钥匙串访问”->“证书助理”,选择“从证书颁发机构请求证书…”:
打开创建请求证书页面,在页面中输入用户邮件地址、常用名称,选择存储到磁盘,点击 “继续” :
文件名称为“CertificateSigningRequest.certSigningRequest”,选择保存位置,点击 “存储” 将证书请求文件保存到指定路径下,后面申请开发(Development)证书和发布(Production)证书时需要用到
申请开发(Development)证书和描述文件
开发(Development)证书及对应的描述文件用于开发阶段使用,可以直接将 App 安装到手机上,一个描述文件最多绑定100台测试设备(开发证书不能用于发布应用到 App Store)。
申请开发(Development)证书
在证书管理页面选择 “Certificates” 可查看到已申请的所有证书(TYPE:Development 为开发证书,Distribution为发布证书),点击页面的加号来创建一个新的证书:
在 “Software” 栏下选中 “iOS App Development” 然后点击 “Continue”:
接下来需要用到刚刚生成的证书请求文件,点击“Choose File…”选择刚刚保存到本地的 “CertificateSigningRequest.certSigningRequest”文件,点击 “Continue” 生成证书文件:
生成证书后选择 “Download” 将证书下到本地 (ios_development.cer):
双击保存到本地的 ios_development.cer 文件,会自动打开 “钥匙串访问” 工具说明导入证书成功,可以在证书列表中看到刚刚导入的证书,接下来需要导出 .p12 证书文件,选中导入的证书,右键选择 “导出…”:
输入文件名、选择路径后点击 “存储”:
输入密码及确认密码后点击 “好”:
至此,我们已经完成了开发证书的制作(得到了 xxx.p12 证书文件),接下来,继续生成开发阶段所需的描述文件,在生成描述文件之前,需要先添加调试设备(iPhone 、iPad)
添加调试设备
开发描述文件必须绑定调试设备,只有授权的设备才可以直接安装 App,所以在申请开发描述文件之前,先添加调试的设备。
(如果已经添加设备,可跳过此节)
在证书管理页面选择 “Devices”,可查看到已添加的所有设备信息,点击页面上的加号来添加一个新设备:
填写设备名称 和 UDID(设备标识):
获取设备UDID方法,将设备连接到电脑,启动 iTunes,点击此区域可切换显示设备的 UDID,右键选择复制
输入完成后,点击“Continue” 继续完成添加即可;
接下来继续申请描述文件
申请开发 (Development) 描述文件
在证书管理页面选择 “Profiles”,可查看到已申请的所有描述文件,点击页面上的加号来添加一个新的描述文件:
在 “Development” 栏下选中 “iOS App Development”,点击“Continue”按钮:
这里要选择之前创建的 “App ID” (这里是“io.dcloud.hellouniapp”),点击“Continue”:
接下来选择需要绑定的证书,这里建议直接勾选 “Select All”,点击“Continue”:
选择授权调试设备,这里建议直接勾选 “Select All”,点击 “Continue”:
输入描述文件的名称(如“HelloUniAppProfile”), 点击 “Generate” 生成描述文件:
点击“Download”下载保存开发描述文件(文件后缀为 .mobileprovision)
至此,我们已经得到了开发证书(.p12)及对应的描述文件(.mobileprovision),接下看一下如何制作发布证书及发布描述文件
申请发布(Distribution)证书和描述文件
发布 (Production) 证书用于正式发布环境下使用,用于提交到Appstore审核发布。发布证书打包的 ipa,不可以直接安装到手机上
申请发布(Production)证书
在证书管理页面选择 “Certificates” 可查看到已申请的所有证书(TYPE:Development 为开发证书,Distribution为发布证书),点击页面的加号来创建一个新的证书:
在 “Software” 栏下选中 “App Store and Ad Hoc”,点击 “Continue”:
接下来同样需要用到之前生成的证书请求文件,点击“Choose File…”选择刚刚保存到本地的 “CertificateSigningRequest.certSigningRequest”文件,点击 “Continue” 生成证书文件:
生成证书成功,选择“Download” 将证书下载到本地 (ios_production.cer):
同样双击保存到本地的 ios_production.cer 文件将证书导入到 “钥匙串访问”工具中,可以在证书列表中看到刚刚导入的证书,接下来需要导出 .p12 证书文件,选中导入的证书,右键选择 “导出…”:
输入文件名、选择路径后点击 “存储”:
输入密码及确认密码后点击 “好”:
至此,我们已经完成了发布证书的制作(得到了 xxx.p12 证书文件),接下来,继续生成发布描述文件
申请发布 (Distribution) 描述文件
在证书管理页面选择 “Profiles”,可查看到已申请的所有描述文件,点击页面上的加号来添加一个新的描述文件:
在 “Distribution” 栏下选中 “App Store”,点击“Continue”按钮:
这里要选择之前创建的 “App ID” (这里是“io.dcloud.hellouniapp”),点击“Continue”:
接下来选择需要绑定的发布证书(iOS Distribution),这里勾选刚刚生成的发布证书”,点击“Continue”:
接下来输入描述文件的名称(如“HelloUniAppProfileDistribution”), 点击 “Generate” 生成描述文件:
然后点击 “Download” 将描述文件下载到本地(文件后缀为 .mobileprovision)
至此,我们已经得到了发布证书(.p12)及对应的发布描述文件(.mobileprovision)
引言
iOS应用开发中,证书和描述文件是必不可少的配置。正确申请和配置iOS证书(.p12)和描述文件(.mobileprovision)是iOS应用开发、真机调试、打包发布的基础。理解证书和描述文件的作用、申请流程和配置方法,对于iOS开发者至关重要。
本文将深入探讨iOS证书和描述文件的申请流程,从CSR文件生成、开发证书申请、发布证书申请到描述文件创建和证书导出,提供完整的企业级iOS开发配置解决方案。
第一部分:iOS证书与描述文件基础概念
1.1 证书与描述文件的作用
iOS开发中,证书和描述文件是苹果安全机制的核心组件:
证书(Certificates)的作用:
- 为Mac电脑提供开发和发布能力
- 证明开发者身份
- 用于代码签名,确保应用来源可信
- 支持真机调试和App Store发布
描述文件(Provisioning Profile)的作用:
- 将证书、App ID和设备关联起来
- 定义应用的权限和能力
- 指定可以安装应用的设备
- 区分开发环境和生产环境
1.2 证书类型详解
iOS证书主要分为两大类:
1. 开发证书(Development Certificate)
- iOS App Development:用于真机调试和开发测试
- Apple Development:Xcode 11+推荐使用的通用开发证书
- 有效期:通常1年
- 用途:真机调试、开发阶段测试
2. 发布证书(Distribution Certificate)
- **iOS Distribution (App Store)**:用于App Store发布
- **iOS Distribution (Ad Hoc)**:用于Ad Hoc分发
- Apple Distribution:Xcode 11+推荐使用的通用发布证书
- 有效期:通常1年
- 用途:App Store上架、企业内部分发
3. 服务证书(Services Certificate)
- Apple Push Notification service SSL:推送通知服务
- Pass Type ID Certificate:Passbook服务
- 其他服务证书:根据应用需求申请
1.3 描述文件类型
1. 开发描述文件(Development Provisioning Profile)
- 用于开发阶段真机调试
- 需要指定测试设备
- 关联开发证书和App ID
2. 发布描述文件(Distribution Provisioning Profile)
- App Store:用于App Store发布
- Ad Hoc:用于指定设备分发
- Enterprise:企业内部分发(需要企业账号)
1.4 证书与Mac的关系
重要概念:
- 证书与Mac电脑绑定,基于CSR文件创建
- 一台Mac只需要一套证书即可开发多个App
- 证书可以导出为.p12文件供其他Mac使用
- 证书数量有限制,需要合理管理
第二部分:CSR文件生成
2.1 什么是CSR文件
CSR(Certificate Signing Request)是证书签名请求文件,用于向苹果申请证书。CSR文件包含:
- 公钥信息
- 开发者信息
- Mac电脑的标识信息
2.2 生成CSR文件步骤
步骤1:打开钥匙串访问工具
- 打开”应用程序” -> “实用工具” -> “钥匙串访问”
- 或者使用Spotlight搜索”钥匙串访问”
步骤2:创建证书请求
- 点击菜单栏”钥匙串访问” -> “证书助理” -> “从证书颁发机构请求证书…”
- 重要:不要选中证书列表中的任何证书,否则菜单会不同
步骤3:填写证书信息
1 | 用户电子邮件地址:your-email@example.com |
步骤4:保存CSR文件
- 点击”继续”
- 选择保存位置(建议桌面)
- 文件名会自动生成,建议重命名为便于识别的名称,如:
iOS_Development_CSR.certSigningRequestiOS_Distribution_CSR.certSigningRequest
2.3 CSR文件注意事项
注意事项:
- 一个CSR文件可以用于申请多个证书
- CSR文件与Mac电脑绑定
- 建议为开发证书和发布证书分别创建CSR文件(可选)
- 保存好CSR文件,后续可能需要重新申请证书
第三部分:开发证书申请
3.1 登录Apple Developer
步骤1:访问开发者中心
- 访问 https://developer.apple.com/
- 点击”Account”登录
- 使用Apple ID登录
步骤2:进入证书管理
- 登录后点击”Certificates, Identifiers & Profiles”
- 进入证书管理界面
3.2 申请iOS App Development证书
步骤1:创建新证书
- 点击左侧”Certificates”
- 点击右上角”+”按钮
- 选择证书类型:
- iOS App Development:传统开发证书
- Apple Development:Xcode 11+推荐(通用开发证书)
步骤2:上传CSR文件
- 选择”Continue”
- 点击”Choose File”选择之前生成的CSR文件
- 点击”Continue”
步骤3:下载证书
- 证书创建成功后,点击”Download”
- 下载的证书文件通常命名为:
development.cer(iOS App Development)ios_development.cer(Apple Development)
步骤4:安装证书
- 双击下载的.cer文件
- 系统会自动打开钥匙串访问工具
- 证书会安装到”我的证书”分类中
- 证书名称显示为开发者账号的Team名称
3.3 验证证书安装
验证方法:
- 打开钥匙串访问工具
- 选择”我的证书”分类
- 查看是否出现新安装的证书
- 证书应该显示为:
- 名称:开发者账号Team名称
- 类型:iOS Developer 或 Apple Development
- 有效期:通常1年
第四部分:发布证书申请
4.1 申请iOS Distribution证书
步骤1:创建发布证书
- 在”Certificates”页面点击”+”
- 选择证书类型:
- **iOS Distribution (App Store and Ad Hoc)**:用于App Store发布和Ad Hoc分发
- Apple Distribution:Xcode 11+推荐(通用发布证书)
步骤2:上传CSR文件
- 选择”Continue”
- 上传CSR文件(可以使用与开发证书相同的CSR文件)
- 点击”Continue”
步骤3:下载并安装
- 下载证书文件(通常命名为
distribution.cer或ios_distribution.cer) - 双击安装到钥匙串
4.2 证书管理最佳实践
证书管理建议:
- 一台Mac只需要一套证书(开发+发布)
- 证书可以用于多个App开发
- 定期检查证书有效期
- 及时删除过期或不需要的证书
- 导出.p12文件备份,便于在其他Mac上使用
第五部分:App ID创建
5.1 什么是App ID
App ID是应用的唯一标识符,包含:
- Bundle ID:应用包名(如:com.company.appname)
- 应用能力:推送通知、应用内购买等
5.2 创建App ID步骤
步骤1:进入Identifiers
- 在”Certificates, Identifiers & Profiles”页面
- 点击左侧”Identifiers”
- 点击右上角”+”
步骤2:选择App IDs
- 选择”App IDs”
- 点击”Continue”
步骤3:配置App ID
1 | Description:应用描述(如:My iOS App) |
步骤4:选择应用能力
根据需要选择应用能力:
- App Services:推送通知、应用内购买等
- Capabilities:iCloud、Apple Pay等
步骤5:注册App ID
- 点击”Continue”
- 确认信息后点击”Register”
- App ID创建完成
第六部分:描述文件创建
6.1 创建开发描述文件
步骤1:进入Profiles
- 点击左侧”Profiles”
- 点击右上角”+”
步骤2:选择描述文件类型
- 选择”iOS App Development”
- 点击”Continue”
步骤3:选择App ID
- 选择之前创建的App ID
- 点击”Continue”
步骤4:选择证书
- 选择开发证书(iOS App Development或Apple Development)
- 可以多选(团队协作时)
- 点击”Continue”
步骤5:选择设备
- 选择用于测试的设备
- 设备需要先在”Devices”中注册
- 可以多选设备
- 点击”Continue”
步骤6:命名并生成
- 输入描述文件名称(如:MyApp Development)
- 点击”Generate”
- 下载描述文件(.mobileprovision)
6.2 创建发布描述文件
步骤1:选择发布类型
- 在”Profiles”页面点击”+”
- 选择发布类型:
- App Store:用于App Store发布
- Ad Hoc:用于指定设备分发
- Enterprise:企业内部分发(需要企业账号)
步骤2:配置描述文件
- 选择App ID
- 选择发布证书
- 如果是Ad Hoc,需要选择设备
- 命名并生成
6.3 描述文件安装
安装方法:
- 双击安装:双击.mobileprovision文件,系统会自动安装
- Xcode安装:在Xcode中自动下载和安装
- 手动安装:拖拽到Xcode的Devices and Simulators窗口
验证安装:
- 在Xcode的Preferences -> Accounts -> 选择账号 -> View Details中查看
- 或者在”~/Library/MobileDevice/Provisioning Profiles”目录查看
第七部分:p12证书导出
7.1 为什么需要导出p12
使用场景:
- 多人协作开发,需要在其他Mac上使用证书
- 备份证书,防止证书丢失
- CI/CD自动化构建需要证书
- 云打包服务需要上传证书
7.2 导出p12证书步骤
步骤1:打开钥匙串访问
- 打开”钥匙串访问”工具
- 选择”我的证书”分类
- 找到要导出的证书
步骤2:展开证书
- 点击证书左侧的三角形展开
- 可以看到证书和对应的私钥
- 同时选中证书和私钥(按住Command键多选)
步骤3:导出证书
- 右键点击选中的证书和私钥
- 选择”导出2个项目…”
- 或者使用菜单:文件 -> 导出项目
步骤4:配置导出选项
1 | 文件格式:个人信息交换(.p12) |
步骤5:设置密码
- 输入p12证书密码(重要:记住这个密码)
- 确认密码
- 点击”好”
- 如果提示输入钥匙串密码,输入Mac登录密码
7.3 p12证书使用
在其他Mac上安装:
- 将.p12文件传输到目标Mac
- 双击.p12文件
- 输入之前设置的密码
- 输入Mac登录密码(如果需要)
- 证书安装完成
在HBuilderX中使用:
- 打开HBuilderX
- 发行 -> 原生App-云打包
- 选择iOS平台
- 上传.p12文件和.mobileprovision文件
- 输入p12证书密码
在CI/CD中使用:
- 将.p12文件添加到CI/CD系统的密钥管理
- 配置证书路径和密码
- 在构建脚本中使用证书进行签名
7.4 p12证书安全注意事项
安全建议:
- 设置强密码保护p12文件
- 不要将p12文件提交到代码仓库
- 使用安全的文件传输方式
- 定期更换证书和密码
- 限制p12文件的访问权限
第八部分:证书与描述文件配置实战
8.1 Xcode配置
步骤1:添加Apple ID
- 打开Xcode
- Preferences -> Accounts
- 点击左下角”+”
- 选择”Apple ID”
- 输入Apple ID和密码
步骤2:自动管理证书
- 在项目设置中选择Target
- 选择”Signing & Capabilities”
- 勾选”Automatically manage signing”
- Xcode会自动创建和管理证书和描述文件
步骤3:手动配置证书
- 取消”Automatically manage signing”
- 选择Provisioning Profile
- 选择对应的证书
8.2 HBuilderX配置
步骤1:准备证书文件
- .p12证书文件
- .mobileprovision描述文件
- 证书密码
步骤2:配置打包参数
- 发行 -> 原生App-云打包
- 选择iOS平台
- 填写应用信息:
1
2
3
4App名称:应用显示名称
Bundle ID:与App ID一致
版本号:应用版本
构建号:每次打包递增
步骤3:上传证书
- 选择.p12证书文件
- 输入证书密码
- 选择.mobileprovision描述文件
- 点击”打包”
8.3 命令行配置
使用命令行工具签名:
1 | # 查看证书 |
第九部分:常见问题与解决方案
9.1 证书相关问题
问题1:证书过期
1 | 症状:无法打包,提示证书过期 |
问题2:证书数量限制
1 | 症状:无法创建新证书,提示数量限制 |
问题3:证书与Mac不匹配
1 | 症状:证书无法使用,提示不匹配 |
9.2 描述文件相关问题
问题1:描述文件过期
1 | 症状:无法安装到设备,提示描述文件过期 |
问题2:设备未注册
1 | 症状:无法安装到设备 |
问题3:Bundle ID不匹配
1 | 症状:打包失败,提示Bundle ID不匹配 |
9.3 p12证书问题
问题1:p12密码错误
1 | 症状:无法使用p12文件,提示密码错误 |
问题2:p12文件损坏
1 | 症状:无法安装p12文件 |
问题3:私钥丢失
1 | 症状:证书无法使用,提示私钥丢失 |
第十部分:企业级最佳实践
10.1 证书管理策略
团队协作建议:
- 统一使用一套证书(开发+发布)
- 导出p12文件供团队成员使用
- 建立证书管理文档
- 定期更新证书
证书备份:
- 导出p12文件并安全存储
- 保存CSR文件
- 记录证书密码
- 使用密码管理器管理密码
10.2 描述文件管理
描述文件管理建议:
- 为不同环境创建不同描述文件
- 定期更新描述文件
- 及时删除不需要的描述文件
- 建立描述文件命名规范
10.3 安全最佳实践
安全建议:
- 使用强密码保护p12文件
- 不要将证书文件提交到代码仓库
- 使用安全的文件传输方式
- 限制证书文件的访问权限
- 定期更换证书和密码
10.4 自动化配置
CI/CD集成:
- 将证书配置到CI/CD系统
- 使用环境变量管理证书密码
- 自动化证书更新流程
- 监控证书有效期
总结
iOS证书(.p12)和描述文件(.mobileprovision)的申请和配置是iOS开发的基础。通过本文的详细讲解,我们了解了:
- 证书和描述文件的作用:证书提供开发能力,描述文件关联证书、App ID和设备
- CSR文件生成:使用钥匙串访问工具生成CSR文件
- 开发证书申请:申请iOS App Development或Apple Development证书
- 发布证书申请:申请iOS Distribution或Apple Distribution证书
- App ID创建:创建应用的唯一标识符
- 描述文件创建:创建开发和发布描述文件
- p12证书导出:导出证书供其他Mac使用
- 配置实战:在Xcode、HBuilderX和命令行中配置证书
- 问题解决:常见问题的解决方案
- 最佳实践:企业级证书管理策略
掌握iOS证书和描述文件的申请流程,能够提高iOS开发效率,确保应用能够正常开发、测试和发布。在实际开发中,建议建立完善的证书管理流程,定期更新证书,确保开发工作的顺利进行。











































