iOS打包详解

背景

今天使用Xcode打包上传ipa时遇到一个问题: Missing private key,如下图。通过查询是.cer 证书失效的问题,需要重新生成新的证书。
iOS打包详解
苹果规定 .cer证书只能存在于一台机器上,因此 如果另一台电脑想要用的话,需要导出为.p12 file ,安装到另一台没有安装.cer文件的mac电脑。

首先,给大家普及下基本知识,iOS有两种证书和描述文件:

证书类型 使用场景
开发(Development)证书和描述文件 用于开发测试
发布(Distribution)证书和描述文件 用于提交Appstore,可使用Application Loader提交到Appstore审核发布

iOS证书(.p12)

登录iOS Dev Center

打开网站iOS Dev Center,使用苹果开发者账号登录iOS Dev Center。
iOS打包详解
登录成功后,打开“iOS Certificates”页面,可以看到所有已经申请的证书及描述文件。
iOS打包详解

申请苹果App ID

在“iOS Certificates”页面“Identifiers"下选择“App IDs",可查看到已申请的所有App ID,点击右上角的加号可创建新的“App ID”。
iOS打包详解
在“App Services”栏下选择应用要使用到的服务(如需要使用到消息推送功能,则选择“Push Notifications”)。例如:
iOS打包详解
设置完成后选择“Continue”,弹出确认页面,确认后选择“Submit”提交,再次确认就可以在“App IDs"页面看到刚创建的App ID。

生成证书请求文件

对于iOS开发来说,不管是申请开发(Development)证书还是发布(Distribution)证书,都需要使用证书请求(.certSigningRequest)文件,证书请求文件需在Mac OS上使用“Keychain Access”工具生成。
在“Spltlight Search”中搜索“Keychain”并打开“Keychain Access”工具:
iOS打包详解
打开菜单“Keychain Access”->“Certificate Assistant”,选择“Request a Certificate From a Certificate Authority...”。
iOS打包详解
打开创建请求证书页面,在页面中输入用户邮件地址(User Email Address)、证书名称(Common Name、请求类型(Request is),最后选择保存到磁盘(Saved to disk)。
iOS打包详解
点击“Save”后保存证书请求文件。
iOS打包详解

申请开发(Development)证书

开发(Development)证书用于测试环境下使用,可以直接安装到手机上(不用提交到Appstore),但一个描述文件最多只能绑定100台设备(因此通过这种证书正式发布应用是行不通的)。

申请开发证书

在“Certificates, Identifiers & Profiles”页面“Certificates"下选择“Development",可查看到已申请的所有开发(Development)证书,点击右上角的加号可创建新的证书。
iOS打包详解
打开“Add iOS Certificate”页面,在“Development”栏下选中“iOS App Development”。
iOS打包详解
打开证书生成页面,点击“Choose File...”选择“生成证书请求文件”章节生成的“CertificateSigningRequest.certSigningRequest”文件,点击“Generate”生成cer证书成功。
iOS打包详解

生成证书成功后打开证书下载页面,选择“Download”下载保存证书(ios_development.cer)。
iOS打包详解
双击保存到本地的ios_development.cer文件导入到“Keychain Access”,导入成功后,可以在证书列表中显示。
iOS打包详解
选中导入的证书,右键选择“Export "Developer" ...”:
iOS打包详解
打开证书保存页面,输入文件名、选择路径后点击“Save”,然后打开设置证书密码页面,输入密码及确认密码后点击“OK”。
iOS打包详解
打开访问“Keychain Access”密码页面,输入Mac OS管理员密码,点击“Allow”,即可保存开发(Development)证书(如“HBuilderCert.p12”)。

添加调试设备

开发描述文件必须绑定设备,所以在申请开发描述文件之前,先添加调试的设备。具体来说,在“Certificates, Identifiers & Profiles”页面“Devices”下选择“All",可查看到已添加的所有设备信息,点击右上角的加号可添加新设备。
iOS打包详解
打开“Registering a New Device or Multiple Devices”页面,输入设备名称和UDID。
iOS打包详解
iOS打包详解
将设备连接到电脑,启动iTunes,点击次区域可切换显示设备的UDID,右键选择复制UUID。
iOS打包详解
输入完成后,点击“Continue”继续,确认输入信息,如果没有错误点击“Register”即可完成添加。
iOS打包详解

申请开发(Development)描述文件

在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Development",可查看到已申请的所有开发(Development)描述文件,点击右上角的加号可创建新描述文件。
iOS打包详解
打开“Add iOS Provisioning Profile”页面,在“Development”栏下选中“iOS App Development”。
iOS打包详解

点击“Continue”按钮,打开“App ID”选择页面,选择要使用的“App ID”,点击“Continue”。
iOS打包详解
打开“Select certificates”页面,选择前面创建的开发证书。
iOS打包详解
点击“Continue”,打开选择调试设备页面,选择用于调试安装的设备(最多100太设备)。
iOS打包详解
点击“Generage”,生成描述文件成功,然后下载描述文件即可。
iOS打包详解

申请发布证书

发布(Production)证书用于正式发布环境下使用,用于提交到Appstore审核发布,申请的过程和申请开发(Development)证书类似。

申请发布(Production)证书

在“Certificates, Identifiers & Profiles”页面“Certificates"Production",可查看到已申请的所有发布(Production)证书,点击右上角的加号可创建新证书。
iOS打包详解
打开“Add iOS Certificate”页面,在“Production”栏下选中“App Store and Ad Hoc”。
iOS打包详解
打开确认证书请求页面,点击“Continue”继续。
iOS打包详解
生成证书成功后打开证书下载页面,选择“Download”下载保存证书(ios_production.cer)。
iOS打包详解
双击保存到本地的ios_production.cer文件导入到“Keychain Access”。导入成功后,可以在证书列表中显示。
iOS打包详解
选中导入的证书,右键选择“Export "Developer" ...”。
iOS打包详解
同样,打开证书保存页面,输入文件名、选择路径后点击“Save”。打开访问“Keychain Access”密码页面,输入Mac OS管理员密码,点击“Allow”,保存开发(Production)证书(如“HBuilderCert.p12”)。
iOS打包详解

申请发布(Distribution)描述文件

在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Distribution",可查看到已申请的所有发布(Distribution)描述文件,点击右上角的加号可创建新描述文件。
iOS打包详解
打开“Add iOS Provisioning Profile”页面,在“Development”栏下选中“iOS App Development”。
iOS打包详解
点击“Continue”按钮,打开“App ID”选择页面,选择要使用的“App ID”,点击“Continue”。
iOS打包详解
打开“Select certificates”页面,选择前面创建的发布证书。
iOS打包详解
点击“Generage”,生成描述文件成功。
iOS打包详解
然后,下载描述文件点击安装即可。

相关推荐