天天看点

iOS开发者证书的那些事

苹果官方文档

我们从开发者中心了解到,开发者证书分为两种类型:<code>development certificate</code>(开发证书)和<code>production certificate</code>(发布证书)。两种证书都有对应的附属证书,包括推送证书、apple pay证书、pass type id证书等等一系列附属证书。

需要注意的是,当我们发布应用到 appstore 时,发布的电脑必须具备两个条件:

安装了创建这个发布证书的电脑导出的p12文件

从<code>开发者账号</code>下载了发布证书

iOS开发者证书的那些事

当某台电脑安装开发者证书后,这台电脑是如何拥有这种能力的呢?

苹果在此运用了代码签名技术。代码签名验证允许我们的操作系统来判断是谁(你或者信任的团队成员)对app进行了签名。

xcode会在项目编译期间使用你的代码签名验证,这个验证由一个由apple认证过的<code>公钥-私钥对</code>组成,存储在你的<code>keychain</code>(下简称钥匙串)中,公钥包含在证书(certificates)中,<code>公钥证书</code>在本地钥匙串和开发者账号都有存储。

另外,还有一个我们可以叫做<code>媒介证书</code>(intermediate certificate)的证书来确保我们的证书(certificates)是经过授权而发布的。当安装好xcode时,<code>媒介证书</code>就已经安装到我们的<code>钥匙串</code>中去了。如果你不小心删除了你的<code>媒介证书</code>,不用担心。你可以重新下载它。

通过在<code>开发者账号</code>(developer account)和本地(mac)都经过验证的证书(certificate)我们就可以利用合法的证书进行app的测试和发布了。

1. 打开电脑中的<code>钥匙串访问</code>

iOS开发者证书的那些事

2. 选择菜单<code>钥匙串访问</code>-<code>证书助理</code>-<code>从证书颁发机构请求证书</code>

iOS开发者证书的那些事

3. 输入你的email地址和名字,确保email地址和名字与你注册为ios开发者时登记的相一致

iOS开发者证书的那些事

4. 选择保存到磁盘(saves to disk),建议保存到桌面,方便查找

iOS开发者证书的那些事

5. 打开开发者中心,登录开发者账号

iOS开发者证书的那些事

6. 选择<code>certificates, identifiers &amp; profiles</code>进入,然后选择<code>certificates</code>

iOS开发者证书的那些事
iOS开发者证书的那些事

7. 选择<code>certificates</code>,在右侧选择添加按钮添加

iOS开发者证书的那些事

8. 选择<code>ios app development</code>,用于真机调试的<code>certificates</code>文件,点击<code>continue</code>。然后接下来会让你创建csr文件(create a csr file),点击<code>continue</code>进入下一步上传csr文件

iOS开发者证书的那些事

9. 点击<code>choose file</code>选择刚刚存储在桌面的scr文件,然后点击<code>generate</code>。一会就生成我们想要的证书啦!

iOS开发者证书的那些事
iOS开发者证书的那些事

10. 我们可以将刚刚生成的证书点击<code>download</code>下载到本地使用

iOS开发者证书的那些事

如果开发者b,登录<code>开发者账号</code>,下载证书(cer文件)运行,只有证书没有私钥,是不能正常使用的。所以如果有新同事加入到开发组的时候,应该从本地钥匙串中选择证书,一定要记得展开证书那一条显示出私钥并将两行都选中,右键导出2项,输入密码之后就生成p12文件(包含证书和私钥)给同事。

另外可以给同事一份描述文件(provisioning profiles),用于本地开发识别测试设备。

需要强调一点,证书和项目关系其实并不大,证书一般有效期只有一年,当证书过期后,只需要重新生成一份证书,上传到<code>开发者账号</code>就行,同时因为原有证书过期,需要重新生成<code>provisioning profiles</code>文件。然后给同事们最新的p12文件和provisioning profiles文件就行

所以<code>开发者账号</code>中的证书,配置文件是可以放心操作的(比如误删了,或者找不到证书私钥了)

iOS开发者证书的那些事

在这里,我引用别人的一段话,因为觉得写得很喜感,但又很实在。

iOS开发者证书的那些事
慎点fix issue,如果点击这个选项,聪明的(蠢哭的)xcode就会自己管理描述文件,然后各种莫名其妙的带有xcode *的证书以及描述文件... 其实只要坚信一点,证书、设备id、appid、描述文件都弄对了就绝逼不会出问题的!

苹果官方文档写明,企业证书有效期是3年,而描述文件只有1年有效期。所以当你的描述文件过期(expire)时。不用慌张,我看到网上好多朋友说删除重新生成,其实不用这么麻烦,只需要3步完成:<code>点击过期的描述文件展开详情界面</code>-<code>点击edit按钮</code>-<code>点击generate按钮</code>

感谢davidday、蛙牛提供的资料参考

再一次感谢您花费时间阅读这篇文章!

微博: @danny_吕昌辉

博客: superdanny