码迷,mamicode.com
首页 > 其他好文 > 详细

xcode 自动签名原理

时间:2018-12-01 20:25:56      阅读:957      评论:0      收藏:0      [点我收藏+]

标签:电脑   cert   bsp   不同   创建   开发   本机   person   provision   

签名的核心就是provision profile要与当前的bundle id及本地的私钥相匹配

 

teamid:每个开发者账号都会对应一个teamid。企业的开发这账号除了对应一个teamid外,下面的每一个开发者还会有一个personal team,当然会有不同的teamid。

 

xcode中自动签名选teamid的作用就是找到teamid对应的profile及证书。

 

以下为推测的过程,仅供参考:

当选择自动签名时,首先需要选择team,当选择team过后,xcode会根据teamid去本地的profile文件夹中去遍历此teamid对应的provision profile文件,从中找到一个跟本地私钥匹配的provision profile文件,查找结束(这个过程不需要联网,跟手动签名一致,因为手动签名也是自己手动去选择provision profile)。

 

此时可能会发生两种情况:

  1. 目标provision profile 文件不存在

此时xcode会联网,去开发者网站遍历此teamid对应的证书。此时又会有三种情况:

1)teamid对应的证书不存在,那么xcode会重新创建一个证书(当然本地会创建对应的私钥)并用这个证书去创建一个新的provision profile

2)teamid对应的证书在本地都没有对应的私钥,那么xcode会重新创建一个证书(当然本地会创建对应的私钥)并用这个证书去创建一个新的provision profile。(这时候还有一种情况是创建的证书达到上限,此时有两种解决方案:一种是换一个子账号,另一种是把别人电脑上的私钥导到自己电脑上)。

3)teamid对应的证书中至少有一个对应的私钥在本机存在,那么就用这个证书重新创建一个provision profile

  1. 找得到provision profile,但是此provision profile对应的本机的证书不存在。xcode会revoke开发者网站上的certificate,同时重新创建一个certificate(当然本地会创建对应的私钥)并用这个certificate去创建一个新的provision profile

 

 

关于自动签名证书问题的终极解决方案:

  1. 把本机和开发者网站上本机的证书及本机中的profile文件都删除,然后xcode只登陆需要的那个账号,然后重启xcode,所有证书及profile都让xcode重新生成。

 

  1. 如果一个账号创建的证书达到上限,并且只想用一个账号的时候,可以把别人电脑上的私钥导到自己电脑上。

 

xcode 自动签名原理

标签:电脑   cert   bsp   不同   创建   开发   本机   person   provision   

原文地址:https://www.cnblogs.com/yibinpan/p/10050543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!