前言:
亲爱的iOS开发盆友们,今天这篇文章主要不是记录怎么去创建开发者证书,当然我也会提及一点点哈,主要是想记录一下在使用企业证书时,遇到的问题以及解决的过程,来。开始吧~
起因:
公司的项目很多,涉及到的证书(这里只企业证书哈,以下提及的证书也都是以企业证书为例,今天不说个人开发者证书,如果你想知道两者的区别,请移动其他的博客进行了解哈),APPID,描述文件啊等等很多,傻傻分清~。刚刚产品过来告诉我说我们有一个项目APP的证书要到期了,需要更新下新的,好家伙,我想那就赶紧搞一下吧,
解决流程:
1. 以免影响线上用户使用,因为证书一旦到期,不但会影响线上用户,本地的也会有问题的,所以说,用户將无法再运行已使用这个证书签名的 app。您必须分发使用新证书签名的新版本 app,然后登录开发者平台,找到证书那里,如图:
以上红色部分就是被我手快删除后又重新创建的,血的教训啊,千万不要随意删除这个列表里的证书,即使是过期也不能删除,要不然造成的后果就是线上的APP不能使用,这也是企业证书和个人证书的区别。千万别随意删除,千万别随意删除,千万别随意删除,重要的话说三遍,我之所以删除是因为如下图:
由于自己的知识储备有限,以为只要是要过期的证书就需要删除重新这么做呢,结果带来了很大的影响,还有就是我们是脚本自动打包,还需要配置一些脚本信息,因为我的误删,导致脚本也不能自动打包了,一直打包失败,只能暂时本地打包了,真心地想说,本地打包太慢了,还需要配置一些参数,打过的我想自然知道哈。还能咋样,遇到问题不能等啊,得解决问题,哭鼻子也不好使。
既然已经走到创建证书这里了,就索性把创建企业证书走了一遍,这里想说的是,企业证书的创建和个人证书创建步骤基本是一样的,需要CSR文件,然后就是APPID以及描述文件的创建,只要对应好自己项目的bundleID以及APPID即可,整个创建过程一路顺风,没难度。创建完事后,下载证书和描述文件,双击点击安装即可。这样就会以现在这个为准,可以继续打发布的产物了。如图
2.虽然创建了一套新的,但是原来的证书和描述文件还在你的机器中以及其他的机器里,这时候因为找不到证书,就会报错,接下来我来说说我遇到的错误,在我自己的机器里我安装完最新的没什么问题,在我们的打包服务器里出现了问题,以此来说明。
2.1 前提是我在打包的机器上安装了最新的证书和描述文件,然后进行脚本打包,打包失败,报错的意思是说我的描述文件不匹配,报错如下图
2.2 然后我就把描述文件重新下载一份,继续导入到机器里,继续打包,很快,又编译失败了,这次的报错跟上次不一样,说明有相应,报错如下:
2.3 又说这个描述文件找不到,这个描述文件不是我新创建的啊,仔细看看,这个是用原来证书创建的,然后就给删除了,这次怎么也能打包成功了吧,暗暗自喜,再次打包,又失败了,报错如下:
2.4 说我的自动签名被禁止了,然后就各种检查xcode也没看出啥破绽,默认是自动签名,觉得还是描述文件的原因,然后就是把描述文件移除,再次导入,折腾了好几遍,再次打包,依然报错,如图:
真是邪门了啊,一直不解,这是为什么呢,后来用打包的机器本地打包试试吧,结果是可以的,产物顺利打出来了,所以可以排除证书和描述文件不匹配以及不正确的的顾虑了,那就仔细检查打包服务器吧
2.5 仔细检查,发现在自动脚本打包里有一个路径是可以看到所有的描述文件的,笨方法,一个一个的比对,查找报错中的那个描述文件,还真找到了,真是不容易,选中,右键移到废纸篓,
3.再开始再次打包,哇咔咔,成功啦,真是开心啊 ,终于解决了。如图:
总结:
1.不要轻易删除证书
2.如果不慎删除,重新创建新的
3.先从xcode本地打包,如果没问题,即为成功
4.如果是脚本自动打包,部署脚本的机器也需要安装证书和描述文件,一定是匹配的,需要将原来的证书创建的描述文件移除干净,导入新的即可,打包成功。
5.如果不清楚自己导入的是否是对的,以及想看之前的描述文件信息,这个是可以打开查看的,找到描述文件,点击空格即可查看,一一比对即可