????????iOS開發(fā)者賬號分為三種:個人夭问、公司和企業(yè)烛卧。個人和公司的可以上架App Store,企業(yè)的則不能上架App Store缝彬,原則上只能提供給企業(yè)內部人員進行分發(fā)測試使用。想讓iOS項目在手機里使用哺眯,也有三種方法谷浅,那就是連接Xcode進行安裝測試、App Store下載和鏈接(二維碼掃描)下載奶卓。因為項目的部分功能需求一疯,我司的App選擇先上架企業(yè)版。
????????遙想上次我進入apple的developer網(wǎng)站配置新項目的證書還是在去年的七月份夺姑,所以一開始拿到領導給我的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ā)者網(wǎng)站里的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)境下用于確定設備是否具有安裝的權限)毁习。從描述文件的配置流程來看,可以得知生產(chǎn)環(huán)境下的描述文件的作用就是把發(fā)布證書和App ID關聯(lián)起來(發(fā)布證書確定開發(fā)賬號躲胳,App ID確定當前應用)蜓洪。所以一般我們在老電腦上上架App Store新項目的時候,只需做一個App ID和PP證書即可坯苹。除非換電腦了才需要重新做一個發(fā)布證書或者安裝從老電腦派生出來的P12證書隆檀。
????????下面來講一下上架企業(yè)版的過程。因為我們上架企業(yè)版的時候粹湃,選擇的是購買相關證書恐仑,然后自己打包上傳到應用分發(fā)平臺,所以首先就會根據(jù)描述文件里的App ID來替換掉我們項目里當前的bundleID为鳄,因為如果不使用描述文件里的App ID的話裳仆,工程就無法識別到相關的描述文件。如下圖所示:
????????之前我上架App Store的時候孤钦,都是用的自動管理簽名歧斟,也就是一直勾選Automatically manage signing?這個選項纯丸,從來沒有手動簽名過。静袖。這次必須手動管理簽名觉鼻,跳坑之路就此開始了。剛開始更換bundleID队橙,一直報找不到相對應的描述文件的錯誤坠陈,后來朋友用他們公司的公司版開發(fā)者賬號生成了一堆P12和描述文件挨個的幫我測試排查原因,刪掉了我電腦里一大堆之前使用的配置文件捐康,最終也是匹配上了仇矾,期間遇到的挫折已淚目到不堪回首。等到使用證書上的App ID作為bundleID可以找到相對應的描述文件之后解总,就把debug模式改成release模式贮匕,然后打包;
????????以上就是證書相關知識以及上架企業(yè)版的過程倾鲫,在這次過程中粗合,深刻的鞏固復習了開發(fā)者賬號及證書相關的信息,受益匪淺乌昔。