乐趣区

iOS打包详解

背景
今天使用 Xcode 打包上传 ipa 时遇到一个问题:Missing private key,如下图。通过查询是.cer 证书失效的问题,需要重新生成新的证书。苹果规定 .cer 证书只能存在于一台机器上,因此 如果另一台电脑想要用的话,需要导出为.p12 file,安装到另一台没有安装.cer 文件的 mac 电脑。
首先,给大家普及下基本知识,iOS 有两种证书和描述文件:

证书类型
使用场景

开发 (Development) 证书和描述文件
用于开发测试

发布 (Distribution) 证书和描述文件
用于提交 Appstore,可使用 Application Loader 提交到 Appstore 审核发布

iOS 证书(.p12)
登录 iOS Dev Center
打开网站 iOS Dev Center,使用苹果开发者账号登录 iOS Dev Center。登录成功后,打开“iOS Certificates”页面,可以看到所有已经申请的证书及描述文件。
申请苹果 App ID
在“iOS Certificates”页面“Identifiers” 下选择“App IDs”,可查看到已申请的所有 App ID,点击右上角的加号可创建新的“App ID”。在“App Services”栏下选择应用要使用到的服务(如需要使用到消息推送功能,则选择“Push Notifications”)。例如:设置完成后选择“Continue”,弹出确认页面,确认后选择“Submit”提交,再次确认就可以在“App IDs” 页面看到刚创建的 App ID。
生成证书请求文件
对于 iOS 开发来说,不管是申请开发 (Development) 证书还是发布 (Distribution) 证书,都需要使用证书请求 (.certSigningRequest) 文件,证书请求文件需在 Mac OS 上使用“Keychain Access”工具生成。在“Spltlight Search”中搜索“Keychain”并打开“Keychain Access”工具:打开菜单“Keychain Access”->“Certificate Assistant”,选择“Request a Certificate From a Certificate Authority…”。打开创建请求证书页面,在页面中输入用户邮件地址(User Email Address)、证书名称(Common Name、请求类型(Request is),最后选择保存到磁盘(Saved to disk)。点击“Save”后保存证书请求文件。
申请开发 (Development) 证书
开发 (Development) 证书用于测试环境下使用,可以直接安装到手机上(不用提交到 Appstore),但一个描述文件最多只能绑定 100 台设备(因此通过这种证书正式发布应用是行不通的)。
申请开发证书
在“Certificates, Identifiers & Profiles”页面“Certificates” 下选择“Development”,可查看到已申请的所有开发 (Development) 证书,点击右上角的加号可创建新的证书。打开“Add iOS Certificate”页面,在“Development”栏下选中“iOS App Development”。打开证书生成页面,点击“Choose File…”选择“生成证书请求文件”章节生成的“CertificateSigningRequest.certSigningRequest”文件,点击“Generate”生成 cer 证书成功。
生成证书成功后打开证书下载页面,选择“Download”下载保存证书 (ios_development.cer)。双击保存到本地的 ios_development.cer 文件导入到“Keychain Access”,导入成功后,可以在证书列表中显示。选中导入的证书,右键选择“Export “Developer” …”:打开证书保存页面,输入文件名、选择路径后点击“Save”,然后打开设置证书密码页面,输入密码及确认密码后点击“OK”。打开访问“Keychain Access”密码页面,输入 Mac OS 管理员密码,点击“Allow”,即可保存开发(Development) 证书(如“HBuilderCert.p12”)。
添加调试设备
开发描述文件必须绑定设备,所以在申请开发描述文件之前,先添加调试的设备。具体来说,在“Certificates, Identifiers & Profiles”页面“Devices”下选择“All”,可查看到已添加的所有设备信息,点击右上角的加号可添加新设备。打开“Registering a New Device or Multiple Devices”页面,输入设备名称和 UDID。将设备连接到电脑,启动 iTunes,点击次区域可切换显示设备的 UDID,右键选择复制 UUID。输入完成后,点击“Continue”继续,确认输入信息,如果没有错误点击“Register”即可完成添加。
申请开发 (Development) 描述文件
在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Development”,可查看到已申请的所有开发 (Development) 描述文件,点击右上角的加号可创建新描述文件。打开“Add iOS Provisioning Profile”页面,在“Development”栏下选中“iOS App Development”。
点击“Continue”按钮,打开“App ID”选择页面,选择要使用的“App ID”,点击“Continue”。打开“Select certificates”页面,选择前面创建的开发证书。点击“Continue”,打开选择调试设备页面,选择用于调试安装的设备(最多 100 太设备)。点击“Generage”,生成描述文件成功,然后下载描述文件即可。
申请发布证书
发布 (Production) 证书用于正式发布环境下使用,用于提交到 Appstore 审核发布,申请的过程和申请开发 (Development) 证书类似。
申请发布 (Production) 证书
在“Certificates, Identifiers & Profiles”页面“Certificates”Production”,可查看到已申请的所有发布 (Production) 证书,点击右上角的加号可创建新证书。打开“Add iOS Certificate”页面,在“Production”栏下选中“App Store and Ad Hoc”。打开确认证书请求页面,点击“Continue”继续。生成证书成功后打开证书下载页面,选择“Download”下载保存证书 (ios_production.cer)。双击保存到本地的 ios_production.cer 文件导入到“Keychain Access”。导入成功后,可以在证书列表中显示。选中导入的证书,右键选择“Export “Developer” …”。同样,打开证书保存页面,输入文件名、选择路径后点击“Save”。打开访问“Keychain Access”密码页面,输入 Mac OS 管理员密码,点击“Allow”,保存开发(Production) 证书(如“HBuilderCert.p12”)。
申请发布 (Distribution) 描述文件
在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Distribution”,可查看到已申请的所有发布 (Distribution) 描述文件,点击右上角的加号可创建新描述文件。打开“Add iOS Provisioning Profile”页面,在“Development”栏下选中“iOS App Development”。点击“Continue”按钮,打开“App ID”选择页面,选择要使用的“App ID”,点击“Continue”。打开“Select certificates”页面,选择前面创建的发布证书。点击“Generage”,生成描述文件成功。然后,下载描述文件点击安装即可。

退出移动版