????????iOS開發(fā)者賬號分為三種:個人、公司和企業(yè)。個人和公司的可以上架App Store,企業(yè)的則不能上架App Store,原則上只能提供給企業(yè)內部人員進行分發(fā)測試使用。想讓iOS項目在手機里使用,也有三種方法,那就是連接Xcode進行安裝測試、App Store下載和鏈接(二維碼掃描)下載。因為項目的部分功能需求,我司的App選擇先上架企業(yè)版。
????????遙想上次我進入apple的developer網站配置新項目的證書還是在去年的七月份,所以一開始拿到領導給我的p12和描述證書的時候還是有點懵逼的,這些文件丫的咋用,全忘了(逃~ ? ? ?
????????下面先來回顧一下iOS開發(fā)證書相關的知識。蘋果為了控制應用的開發(fā)和發(fā)布流程,有一套比較復雜的機制。其中證書就分為很多種:開發(fā)證書,發(fā)布證書,開發(fā)的描述文件,發(fā)布的描述文件,開發(fā)的推送證書,發(fā)布的推送證書等等。首先,iOS Certificates證書,安裝它之后,可以證明安裝的電腦具有開發(fā)或發(fā)布該開發(fā)者賬號下應用的權限。像領導發(fā)給我的P12證書,就是從原開發(fā)者的Mac電腦上導出來的。這個時候我們點擊安裝一下P12證書,然后輸入密碼即可完成安裝。如下圖所示:
然后還有bundle ID,也稱為APP ID,它是每個應用的唯一標識符,不管外殼怎么變換,只要bundleID不變,蘋果都認為它們是同一個應用。所以想要發(fā)布一個應用的時候,也必須去蘋果的開發(fā)者網站里的App IDs去創(chuàng)建一個bundleID。但是需要注意的是,創(chuàng)建的bundleID也分為兩種:一種格式是:com.domainname.appname。這種id只能用在一個app上。每一個新應用都要創(chuàng)建一個。另外一種格式是:com.domainname.*。這種id可以用在多個應用上,雖然方便,但是使用這種id的應用不能使用通知功能,所以并不常用。在我上架企業(yè)版的時候,這兩種方式創(chuàng)建的bundleID都遇到了(捂臉)。最后就是PP證書,即描述文件。簡單來說,描述文件就是描述應用的文件,它包含了App ID,Certificates,Devices(開發(fā)環(huán)境下用于確定設備是否具有安裝的權限)。從描述文件的配置流程來看,可以得知生產環(huán)境下的描述文件的作用就是把發(fā)布證書和App ID關聯(lián)起來(發(fā)布證書確定開發(fā)賬號,App ID確定當前應用)。所以一般我們在老電腦上上架App Store新項目的時候,只需做一個App ID和PP證書即可。除非換電腦了才需要重新做一個發(fā)布證書或者安裝從老電腦派生出來的P12證書。
????????下面來講一下上架企業(yè)版的過程。因為我們上架企業(yè)版的時候,選擇的是購買相關證書,然后自己打包上傳到應用分發(fā)平臺,所以首先就會根據描述文件里的App ID來替換掉我們項目里當前的bundleID,因為如果不使用描述文件里的App ID的話,工程就無法識別到相關的描述文件。如下圖所示:
????????之前我上架App Store的時候,都是用的自動管理簽名,也就是一直勾選Automatically manage signing?這個選項,從來沒有手動簽名過。。這次必須手動管理簽名,跳坑之路就此開始了。剛開始更換bundleID,一直報找不到相對應的描述文件的錯誤,后來朋友用他們公司的公司版開發(fā)者賬號生成了一堆P12和描述文件挨個的幫我測試排查原因,刪掉了我電腦里一大堆之前使用的配置文件,最終也是匹配上了,期間遇到的挫折已淚目到不堪回首。等到使用證書上的App ID作為bundleID可以找到相對應的描述文件之后,就把debug模式改成release模式,然后打包;
????????以上就是證書相關知識以及上架企業(yè)版的過程,在這次過程中,深刻的鞏固復習了開發(fā)者賬號及證書相關的信息,受益匪淺。