场景
ios多人使用同一个开发者账号,然后在打包的时候经常出现证书被reset,特别是xcode升级以后,苹果为了便利直接可以通过xcode reset之后,今天张三打包的时候发现证书不reset无法打包,reset,李四再去打包又出现这种情况,然后就开始张三李四,李四张三,如果是发布到苹果商店的还好,reset不影响,但是对于企业版,只能呵呵哒。那么怎么解决这种情况呢?特别对于企业版,要求就更高,总不能给所有的人权限吧
原理
先来了解两个概念:
Certificates:证书,由某一台电脑电脑生成
1、 开发证书 ( Development Certificates ),主要是授权的开发权限
2、 发布证书 (Distribution Certificates ), 主要是授权发布权限
Provisioning Profiles:配置文件,它的功能很特别,专门用于将 Certificates、Identifiers、Devices结合起来,形成一个描述证书、标示符的描述文件
发布的时候需要验证Provisioning Profiles里包含的Certificates证书是否有效。怎么验证,当然需要本台电脑有这个对应Provisioning Profiles的证书,如下图
Dev的是开发的证书,dis是发布的证书。如果李四所用的Provisioning Profiles包含的证书在他电脑上有,那么可以顺利通过验证,如果木有,对不起。如果李四权限够大,xcode上reset一下,将会一步到位的帮你生产证书,配置文件等等,然后张三就准备呵呵哒。张三呵呵哒完,回去找李四,你把你的证书给我用一下,那么问题产生了,李四的证书可以给张三用吗?李四百度谷歌里一下,哎呦操蛋的简单。Reset的问题确实要怪苹果,把所有流程弄的太简单,即使老师这里有只狼同学,也是翻了车的,当时采取的方式是一人生成了一个发布证书,解决,但是实际上并没有深入想过这个问题。前两天多亏万小伟同学的提醒以及讨论,碰到问题,从根源来探寻,才能解决问题,近两年来,一直都忙着开发开发,很少停下来思考或者研究这些根源的问题,自己真的退步很多!
最后为当时自己的想当然给小伟倒个歉,技术或者什么问题,一定要多讨论多思考。
对于公司来说,不想agent账号给予其他人,然后又需要其他人打包的情况下,只要将agent账号生成的证书给予需要打包的人安装,就可以解决了,这样可以保证证书不会被随意reset。
参考文章
ios如何一个证书多台设备测试
http://jingyan.baidu.com/arti…