内容提要:
安装app时提示 “无法下载应用,此时无法安装“XXX””。我遇到过多次是由于ios的app出现证书问题。本篇文章讲解用ios证书制作过程,以及每个步骤的解释。
正文:
Xcode签名至少需要2样东西:证书和配置文件。证书有效一年,通常只要不过期不会需要更新,只跟开发账户有关。配置文件则跟app的权限、绑定的设备等很多内容相关。虽然有效期同为一年,但是由于经常需要添加测试设备或者增减app的权限设置(如apple pay,app group等),经常需要更换。而工程文件里,证书是通过名字在索引的,而配置文件则是通过UUID来索引。
打包或运行真机app,需三步认证:
(1)需要证书对应的私钥来进行签名,用于标识这个App是否合法、安全、完整;
(2)需AppId,并验证Bundle ID是否与其一致;
(3)若真机测试,需确认这台iphone设备是否授权。
用ios证书打包app步骤:
(1)在mac的钥匙串中,生成.certSigningRequest文件(即CSR文件);
解释:
keychain生成一个包含开发者身份信息的CSR(Certificate Siging Request)文件,同时,KeyChain Access|Keys中新增一对Public|Private Key Pair。
private key始终保存在Mac OS的Keychain Access中,用于签名对外发布的APP;
public key随证书(随provisioning profile,随APP)散布出去,对APP签名进行校验认证。
(2)在apple的开发者网站上,使用.certSigningRequest文件,生成.cer文件;
解释:
Apple证书颁发机构WWDRCA(Apple Worldwide Developer Relations Certificate Authority)将使用private key对CSR中的public key和一些身份信息进行加密生成数字证书(ios_development.cer),并记录在案(Apple Member Center)。
(3)下载.cer文件到MAC,双击安装证书。然后在keychain access中看到证书,此keychain里的证书,可右键导出成p12;
解释:
除了下载.cer文件到MAC上双击安装证书,还可以在Xcode中添加开发者账号自动同步证书和[生成]配置文件。
证书安装成功后,keychain Access|keys ——》 公钥
keychain Access|certificates ——》 私钥(即ios_development.cer文件)
certificate在Xcode中的位置:Xcode Target | Build Setting |Code Signing | Code Signing Identity 下有 Identities from profile
(4)使用appid和.cer文件生成.mobileProvision文件;
解释:
Xcode将配置文件provisioning profile 放在目录 ~/Library/MobileDevice/Provisioning Profiles下。
(5)用p12和.mobileprovision打包;
上面提到的文件的关系可以用下图表示:
(https://github.com/SheronLv/Images/tree/master/mobileProfile)