每個iOS開發(fā)者都是被折翼過翅膀的天使树绩,都曾被證書配置折磨的痛苦不止,好不容易學(xué)會了手動管理證書妆够,結(jié)果蘋果霸霸來了一個Automatically manage signing,又會陷入一圈的懵逼中汰瘫,還真是不讓我們輕松箕憾,下面跟著我來將“充滿霧霾”的身心放空,不埋怨伦连,不抱怨雨饺,畢竟蘋果霸霸也是好意嘛!接下來惑淳,讓這篇文章帶你理解自動配置證書如輕拂過額頭的一縷清風(fēng)一般额港,吹過就驅(qū)散了你心中的“霧霾”。
一:首先我們用一個全新的開發(fā)者賬號來幫你理解Automatically manage signing的過程
- 1.看下圖——這是一個全新的賬號歧焦!
-
2.我們來看看現(xiàn)在沒有設(shè)置賬號情況是這樣的移斩,狀態(tài)旁邊有一個紅的點(diǎn)提醒我們需要一個開發(fā)者賬號。同時在Automatically manage signing下面有一行灰色的文字绢馍,意思是說我Xcode現(xiàn)在強(qiáng)大了向瓷,不要你們再手動管理證書了,我要減輕你們這些開發(fā)者的痛苦舰涌!我會自動創(chuàng)建和更新證書风罩,appID以及配置文件,你看我是不是很牛舵稠,還不趕緊勾選超升!
-
3.當(dāng)我們選擇一個開發(fā)者賬號后,它會開始給我們創(chuàng)建證書哺徊,appID;至于配置文件,經(jīng)過測試并沒有自動創(chuàng)建室琢。
-
4.經(jīng)過那個圈圈轉(zhuǎn)完后,一切看起開清爽許多落追,我們點(diǎn)開profile旁邊的感嘆號盈滴,會看到它給我們已經(jīng)創(chuàng)建好了APP ID,并且旁邊有一個*號,緊接著下面的文字就是說我創(chuàng)建的這個APP ID是根據(jù)你的Bundle ID來匹配的巢钓,而*號就是通配符的意思病苗,它保證你在改變Bundle ID后賬號下依然還是那個App ID而不會再次創(chuàng)建,下面還會介紹它症汹。
-
5.我們進(jìn)入網(wǎng)頁看看開發(fā)者賬號下已經(jīng)為我們創(chuàng)建好了證書硫朦,我的天吶--好神奇有木有?創(chuàng)建的證書名稱是開發(fā)者的名字后面括號加上我電腦的名稱背镇。
-
6.我們再來看看APP ID也給我們創(chuàng)建好了~好體貼的服務(wù)耙д埂!自動創(chuàng)建的APP ID的名稱為"XC WildCard"即“Xcode通配符”瞒斩,很容易區(qū)分破婆!仔細(xì)看,你會發(fā)現(xiàn)APP ID不是一個具體的名稱胸囱,而是一個*號祷舀,就是我剛剛說的通配的意思,下面還會介紹到烹笔。
-
7.經(jīng)過前面兩個幫我們創(chuàng)建好了證書和APP ID愉快的過程裳扯,我想配置文件它應(yīng)該也創(chuàng)建好了,結(jié)果箕宙,點(diǎn)擊一看嚎朽,見證奇跡的時刻沒有了—— 來就來全套嘛,真是的柬帕,搞一半是幾個意思呢哟忍?好吧,接下來創(chuàng)建配置文件要用手解決了~
二:理解Bundle ID與*通配符之間的關(guān)系
-
1.我們來看看剛說的通配符*的作用陷寝,我們將Bundle ID由“com.MingTaiQinz”改為“com.MingTaiQinzys”锅很。
-
2.看下圖,此時的APP ID仍然為*凤跑,而下面的Matches Bundle ID則變?yōu)榱恕癱om.MingTaiQinzys”,也就是剛設(shè)置的Bundle ID,其實(shí)英文單詞“Matches Bundle ID”的意思就是匹配Bundle ID爆安,也就是取的Bundle ID。
-
3.此時進(jìn)入開發(fā)賬號查看仔引,會發(fā)現(xiàn)沒有任何變化扔仓,ID使用*通配符代替的,所以*作用就是保證你使用不同Bundle ID不會再次去創(chuàng)建APP ID文件咖耘。
三:保證使用自己創(chuàng)建的APP ID不混淆
-
1.創(chuàng)建一個APP ID翘簇,Bundle ID為“com.MingTaiQinzys”
-
2.創(chuàng)建配置文件
-
3.我們打開賬號管理界面,我這里使用的是Xcode8.3,和8.3之前的版本有區(qū)別儿倒,之前的是可以點(diǎn)擊進(jìn)去看到很多配置文件版保,可以依次下載,而這個界面只有“Download All Profiles”這個選項(xiàng),有點(diǎn)坑爹俺估纭叫胁!以前我們不知道使用哪個配置文件的時候,直接進(jìn)入文件夾刪除所有配置文件汞幢,然后下載自己需要的那個就可以了驼鹅,這里一下載就是下載全部,還不讓直接點(diǎn)進(jìn)文件夾急鳄,覺得有點(diǎn)不方便~不過也不用著急谤民,下面我會介紹如何進(jìn)入放置配置文件的文件夾堰酿!
-
4.我這里先點(diǎn)擊下載全部疾宏,等那個灰色的圈圈轉(zhuǎn)完就行了
-
5.再看看Xcode界面,自動變成了我自己創(chuàng)建的"com.MingTaiQinzys"触创,看仔細(xì)哦~APP ID的旁邊不再是*這個通配符了坎藐,這里我解釋下為什么不是通配符而是我自己剛剛創(chuàng)建的“com.MingTaiQinzys”,雖然之前通配符*也是獲取的Bundle ID哼绑,也為“com.MingTaiQinzys”岩馍,顯然,通過這點(diǎn)抖韩,我們明白它查找的規(guī)則如下:如果有和通配符一樣自己創(chuàng)建的ID,那么使用創(chuàng)建的ID蛀恩,而不使用通配符。
6.下面我們找到放置配置文件的文件夾茂浮,它在資源庫的子文件夾下双谆,這是一個隱藏文件夾,這里是放置所有工程配置文件的地方:~/Library/MobileDevice/Provisioning Profiles
這里介紹MAC下顯示和隱藏文件夾的命令
顯示
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder
隱藏
defaults write com.apple.finder AppleShowAllFiles -boolean false ; killall Finder
-
7.如果你不放心席揽,可以將這個文件夾的配置文件全部刪除顽馋,你會發(fā)現(xiàn)很神奇的事,就是Xcode會根據(jù)你配置好的證書的Bundle ID去自動下載對應(yīng)的配置文件放在這個文件夾幌羞,而且你刪了立馬就會自動創(chuàng)建寸谜,看來是一只打不死的小強(qiáng)啊~又讓我無比懷念星爺?shù)碾娪傲??
-
8.Xcode是根據(jù)Bundle ID來找證書和配置文件的,所以保證了唯一性和不會混淆属桦,當(dāng)你想創(chuàng)建一個相同的APP ID時熊痴,它會提示你不能創(chuàng)建已經(jīng)存在了,當(dāng)然這個是最基本的常識了聂宾。
到此果善,我想你已經(jīng)能夠理解Xcode自動管理證書的過程了,如果還不夠理解亏吝,建議靜下心來再看一遍保證其意自現(xiàn)岭埠!
總結(jié):
1:自動管理證書的原則是根據(jù)你創(chuàng)建的APP ID來匹配證書和配置文件,也可以理解成根據(jù)你的Bundle ID來匹配,比較手動管理還是方便很多惜论,同時也不易出錯许赃,理解證書的管理過程讓你在配置的時候輕松一笑面對,不再打錯配置文件的包馆类,不再混淆證書配置之間的關(guān)系混聊,這點(diǎn)還是非常重要的,你要理解證書配置的來龍去脈乾巧,而不是每次配置好后自己仍不知所以然句喜,雖然成功了,但是難免出錯沟于。
2:如果你發(fā)現(xiàn)Xcode自動配置的APP ID不是你想要的配置文件時候咳胃,因?yàn)槟阋粋€APP ID可以對應(yīng)多個配置文件,所以它雖然APP ID是對的旷太,配置文件不一定對展懈,這個時候,你去文件夾刪除所有配置文件供璧,然后再配置就可以了存崖!
我是Qinz,希望我的文章對你有幫助。