ios開發證書reset原理分析以及解決方案

aragorn發表於2017-01-20

 場景
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…

相關文章