关于打包/真机运行,其中最重要的两个文件:xxx.cer 和 xxx.mobileprovision
xxx.cer 文件是表示这个账号/电脑有真机运行的权限:

xxx.mobileprovision文件是表示这个bundleId的应用可以具有的能力(Capabilities):

本文是关于.cer文件的一些理解:
.cer文件即证书文件,表示一种认证。.p12文件是通过.cer文件导出的文件。
一、证书的种类
根据最新官方创建证书的流程可以看出,证书分为两大类: 软件类 和 服务类。每种大类型下根据不同的场景都有很多小类型。
1. 软件类证书

具体的使用场景在描述中已有表述,此处不再重复。对于普通的开发来说Apple Development 和 Apple Distribution 已经完全够用了。前一个是开发证书,后一个是发布证书。
2. 服务类证书

具体的使用场景在描述中已有表述,此处不再重复。服务类的常用的证书是推送证书Apple Push Notification service SSL (Sandbox)和Apple Push Notification service SSL (Sandbox & Production)。
二、证书的申请和使用
1. 申请证书
打开钥匙串 -> 菜单栏选择“钥匙串访问” -> 证书助理 -> 从证书颁发机构请求证书

这里
常用名称十分重要,在证书导出时用于区分,填一个有意义的名称。
电子邮件随便填写即可,选择存储到磁盘,点击继续,保存生成的文件。

点击添加证书

选择证书类型后,点击下一步,这里的传入的文件即刚才生成的文件:

点击下一步后,对应证书即生成了。下载即可。
2. 使用证书
下载证书后,双击进行安装。


安装完成后在钥匙串中,这里显示的名称即填写的常用名称:

点击钥匙这一行,再点击回车(或者右键 -> 显示简介),也可以更改名称。

3. 导出证书
在使用第三方推送,比如极光推送时,需要把推送证书导出,并上传到极光管理后台。
点击证书这一行,点击右键,选择导出:

导出的证书文件是.p12格式:

三、团队合作
在团队合作时,将下图证书导出(导出也是.p12格式文件),其他人安装后则也可以使用。

四、问题解答
1. 网页中删除证书后扔可用
该证书并不是一个实时检测可用的文件,里面存储了权限信息,即使在Certificates中删除了,仍然可以正常使用一段时间。钥匙串会在一些时候对证书进行检测,如果检测到删除了,则会有“证书已经撤销”的错误, Xcode中使用该证书的Profile进行真机运行也会报错。


2. 钥匙串中提示证书不可信
添加苹果官方的中间证书即可解决该问题。 即使不添加,并不影响使用。
在网页中点击添加证书,在该页面的最下方有最新的中间证书,下载安装即可。
