
Overview
我们都知道开发一款应用需要配置苹果常用证书、AppId,Provisioning Profiles,如果有推送还需要配置推送证书等,所以索性将所有的证书的配置流程都记录下来,方便以后查阅。
App ID
App ID 是每个应用的独立标识,在设置中可以配置该应用的权限,比如:Push Notifications、Network Extensions等。
开发者证书
开发证书类型分为两种,一种开发证书(iOS Development)一种发布证书(iOS Distribution)。开发证书(iOS Development)用于真机调试;生产证书用于打包上传App Store,用于验证开发者身份。
推送证书
如果项目中集成了推送功能,同样需要配置推送证书。推送证书同样也分两种:开发(Apple Development iOS Push Services)、生产(Apple Production iOS Push Services)。推送证书在AppID中创建生成,同时生成的的p12文件需要上传到服务端后台(友盟后台、极光后台或自己服务端后台)。
配置文件(Provisioning Profiles)
配置文件同样也分两种,分为开发(Development)和发布(Distribution),配置文件(Provisioning Profiles)中包含了证书、App ID、设备(Devices)。它在开发者账号体系中扮演着配置和验证的角色,是真机调试和打包上架必须的文件。
ps:打Ad-hoc包的时候,如果遇到刚添加的设备UDID没添加进去,可以将开发模式的配置文件下载下来,打包后直接选中即可。

在配置证书之前我们需要有一个开发账号。个人账号和公司账号类似,每年都需要支付99刀,其中公司账号需要邓白氏编码而个人账号并不需要。
如果项目需要不通过App Store进行安装,可以申请企业账号。当然了,也可以找一些第三方直接打企业包,比如蒲公英之类的。
创建CSR文件
CSR(Certificate signing request)即证书请求文件。证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件(CSR文件),证书申请者只要把CSR文件提交给证书颁发机构后(创建App ID时上传到苹果后台),证书颁发机构使用其根证书私钥签名生成证书公钥文件(开发者证书)。
关于CSR文件的创建,我们可以直接使用Mac上的钥匙串访问直接请求。
具体步骤为: 钥匙串访问 -> 钥匙串访问 -> 证书助理 -> 从证书颁发机构请求证书……
1、打开电脑上的钥匙串访问,选中证书助理;

2、用户电子邮件地址填开发者账号的邮箱,名称可以随意填,然后保存到磁盘上。

创建App ID
1、登录苹果开发者中心,或者直接登录Apple Member Center选择Certificates,Identifiers & Profiles
;

2、选择Identifiers 中的 App IDs,然后点上方的加号;

3、添加App ID Description和Bundle ID,如果项目中有推送,将Push Notifications勾选。

创建开发者证书 和 推送证书
1、选择Certificates,然后选择上方的加号;

2、选择相应的证书,因为开发调试证书、生产发布证书、开发环境推送证书、生产环境推送证书基本都类似,所以这里只选择开发调试证书为例。

3、一路点击Continue, 到Generate后选择一开始生成的CSR文件上传,然后再继续点击Continue。

4、生成完开发调试、生成调试证书 和 开发环境推送证书、生成环境推送证书后,先下载到桌面上。然后双击添加到钥匙串中。
由于我们使用友盟,生成的推送证书(开发环境和生产环境)需要从钥匙串访问中导出p12文件,添加到友盟后台。
推送证书 导出p12文件上传到友盟(极光)后台
1、由上一步创建了开发环境的推送证书和生产环境的推送证书,下载到电脑上后,直接双击即可安装到钥匙串中。

2、选中相应证书(开发环境推送证书或生成环境推送证书)右键 导出;

3、点击存储后需要输入密码,密码要记住,上传到友盟(极光)后台时,需要用到。

创建配置文件(Provisioning Profiles)
1、选中Provisioning Profiles 然后选中上方的加号。

2、配置文件也分为开发和发布,我们这里以Ad Hoc为例,因为我们打测试包的时候,如果有些设备的UDID未添加进配置文件中,我们需要下载配置文件手动选择。而其他的的配置文件目前的Xcode会自动请求,所以一般不需要我们自己手动创建。

3、选择刚创建的App ID,选择相应证书、选择测试的设备,然后创建名称一直点击Continue即可,最后下载下来。

到此为止证书和配置文件之类的都创建完了~~
总结:
- 导出p12证书的时候需要密码,上传到友盟(极光)后台需要输入密码。
- 开发和生成的推送证书创建成功后,到相应App ID 下查看是否有,如果没有可以停段时间刷新下,或下载下来手动上传上去。
- 新添加上的测试机的UDID,打包的时候没打包上去,需要重新创建配置文件,下载后将本地的删除,然后双击。不过刚添加UDID,重新创建配置文件后,我一般在打包的时候手动选择配置文件。
网友评论