跟著我左手右手一個慢動作,輕松提交AppStore(AppStore提交App流程最新超詳細攻略)(領證篇)

“尊貴”的年費會員

和其他老爺家的年費會員一樣,交了蘋果開發者計劃的年費,也會相應的擁有年費會員“尊享”的各種權限和服務,當你的賬號激活后,再進入你的開發者賬號,就會變成下面的樣子。

年費會員賬號

左邊欄上半部分是會員獨享的,普通賬號是看不到這些選項卡的,對比可見上一篇,下半部分是通用的,這里就不說了。Overview是一個概覽,展示你賬號狀態和一些當前賬號身份常用的模塊推薦,Membership就是當前賬號的詳細信息一覽,第三第四個是主要要講的模塊,也出現在了概覽里,后面詳述。

CloudKit Dashboard

CloudKit Dashboard是CloundKit相關的設置管理中心,啥是CloundKit?這是iOS8以后蘋果推出的基于iCloud的一個云端數據存儲服務,提供了低成本的云存儲并能作為一個后端服務通過用戶們的iCloud賬號分享其應用數據。換句話說,如果只是做iOS獨占應用,又不想或者不會自己弄后臺保存用戶數據,那CloudKit就是非常適合你的一個后端解決方案。當然目前我還沒用過這個,所以不能瞎說哈,以后有深入研究可能再來分享一下,現在先貼幾篇相關的文章,感興趣的可以看看。

最后一個是蘋果的技術支持,作為一名交了年費的“上帝”,當然會享受一些“特殊”服務,看它介紹大意應該是如果你的App有什么“頭疼腦熱”,讓你感覺沒得救了,你可以來找蘋果粑粑,蘋果工程師可以從代碼層面對你的App提供技術支持,不過只有兩次技術支持事件的機會?如果我沒理解錯的話。不過應該很少有人用到這個吧,以后萬一用到了再來補充吧。

Code-Level Support

同志,請出示一下你的證件

和身份證,通行證一樣,你如果想自由暢快的真機測試或者發布應用,也是需要相應的證書和許可的,接下來我們詳細來講講。

點擊左邊欄第三個的Certificates, ID & Profiles,會跳轉到下面這個管理相關配置文件的頁面。

Certificates, ID & Profiles

這些東西都是做什么用的呢?我們一個個來看看。

Certificates(證書)

Certificates

Certificates 就是“證書”咯,它可以看做是你的戶口,是證明你開發者身份的證件,也是你開發和發布的門鑰匙,是最基本的根證書,所以第一步自然是要乖乖領證。點擊Certificate下的All可以看到當前已經申請成功的所有證書列表信息,點擊右上角+號則可以申請新證書。

申請證書

點擊后從下圖可以看出,證書是分為兩個大類的,一類是Develoment,也就是開發相關的證書,另一類則是Production,即產品相關的證書。需要注意的是單個付費賬號申請其中的開發和發布證書的數量是有限的,普通個人開發賬號最多可注冊 iOS Development/Distribution 證書各2個,其實一般各只需要一個就夠了。

Certificates類型

開發證書 ( Development Certificates )

顧名思義這是開發階段需要使用到的證書。有人會問了,我建新工程敲代碼也沒見問我要證呀?敲代碼當然不要,但你如果想要把你創建的App自由的在你的設備上安裝,這個證書就是必不可少的,有了它,才能授權你的設備安裝運行對應許可的App。

開發類證書包含兩種,開發證書和推送證書。前者主要用于真機測試和相關開發的許可,是我們必須用到的,而后者是蘋果推送服務的證書,如果你的App有推送功能,應該也申請一份這個證書,感興趣的可以看看這篇博文(蘋果信息推送服務(Apple Push Notification Service)使用總結)。這里我們選擇第一個iOS App Development,然后滾動到最底端點擊藍色按鈕continue進行下一步。

Development

進入下一步后,我們會看到提示要求我們提供一個 Certificate Signing Request (CSR)文件,這個證書簽名請求文件從哪來呢?

Certificate Signing Request (CSR)

首先我們得訪問我們mac電腦上的鑰匙串,一般可以點擊桌面,從頂部工具欄選擇前往-實用工具中找到鑰匙串(請無視我的“屁股”桌面,麥爹:午時已到~),也可以在Launchpad中的其他文件夾里找到它。

實用工具
Launchpad-其他

單擊圖標打開,會彈出鑰匙串訪問的窗口,這里可以看到你目前電腦中安裝的各個證書的狀態,如果出現過期和失效的,應及時更新替換或刪除。

鑰匙串訪問

這里面的詳細道道我們暫且不管,在保證鑰匙串訪問窗口在當前時,我們來看到頂部工具欄,選擇鑰匙串訪問-證書助理-從證書頒發機構請求證書這一項。

請求證書

這時會彈出一個窗口如下圖,用戶電子郵件地址就填你的開發者賬戶的郵箱,常用名稱填你的名字或者你們團隊的代號都行,如果你要把文件發送到電子郵箱,就選第一個并填上接收文件的郵件地址,我們在這里選第二個存儲到磁盤。

證書助理

填完必要信息后點繼續,你的桌面上就會生成這么一個文件,就是我們申請證書所需要的CSR文件。這個文件保管好,以后各個證書的申請都會需要用到,最后找個云盤存好。

CSR文件

讓我們回到網頁端,在剛才的頁面點擊藍色按鈕continue后,在如下圖的頁面,點擊Choose File...,找到你剛剛生成的CSR文件并上傳后,點擊藍色按鈕Continue進入下一步。

申請證書

看到如下圖的頁面,你的開發證書就申請成功了,此時點擊Download下載后雙擊即可安裝證書,然后到剛剛的鑰匙串訪問中可以看到你的新證書狀態。至此即完成了最基本的開發證書的申請流程,是不是挺簡單的?不過這才是萬里長征第一步,我們繼續往下看。

下載證書

稍等一下,那我要是申請錯了或者不想要了,想刪除這個證書要怎么做呢?也很簡單。回到證書列表,點擊展開你需要刪除的證書,核對信息無誤后點選Revoke即可,這里點擊Download也可以重新下載該證書。

刪除證書

另外剛剛說到的CSR文件,究竟是用來做什么的呢?知其然,還得知其所以然,我們在剛才選擇CSR文件上傳的那個頁面可以看到解釋。

CSR文件作用

簡單點說,生成CSR文件的這個過程,實際上是自動生成了一對公鑰和私鑰,并保存在了你的Mac的鑰匙串中。Xcode的Code Signing(代碼簽名)正是使用這種基于非對稱密鑰的加密方式,用私鑰進行簽名,用公鑰進行驗證。我們可以看看蘋果官方的文檔Creating Your Team Provisioning Profile,如下圖所示,在我們自己的Mac的鑰匙串登錄項中的密鑰項里存儲著相關的公鑰和私鑰,而申請的證書中只包含了公鑰。

鑰匙串密鑰

這也就是說你只能用相關的私鑰來進行簽名,所以如果沒有了私鑰,證書也就沒有意義。當用自己的私鑰對代碼簽名后,蘋果就可以用證書中的公鑰來進行驗證,確保是本人對代碼進行了簽名,而不是被冒充,從而確保代碼的完整性。因此在申請完證書時,最好導出并保存好你的私鑰。當你的團隊有新成員或其他設備需要共享證書時,用同一私鑰就可以。

CSR文件作用

那么問題又來了,我要怎么和團隊的其他成員共享證書,用同一私鑰呢?打開你的鑰匙串訪問,選中你需要共享的證書,右鍵點擊彈出菜單,選擇導出某某證書。

導出.p12文件

這時會有下面這個彈窗彈出,填上相關信息后點存儲。

導出.p12文件

接下來還會彈出設置文件密碼(不填就是不設置密碼)的彈窗和驗證密鑰登錄密碼的彈窗,依次輸入后點允許即可在相應位置生成一個.p12文件呢。將這個文件共享給團隊成員,雙擊安裝后即可。關于p12文件可以看看這篇博文(一個蘋果證書怎么多次使用——導出p12文件)。

不過其他人僅有證書還不足以順利的進行真機測試和相關開發,還需要另一個文件,這個我們后面再講。

.p12文件

開發證書到這就講完了,至于推送證書的申請,還需要先綁定App ID,這里也不做介紹,有需要的可以自行研究。

產品證書 (Production Certificates )

說完了開發類的證書,咱么在看看產品類的證書。乍一看種類還挺多。

產品證書

第一個App Store and Ad Hoc,就是我們常說的發布證書(Distribution Certificate)。這個證書有兩個作用,一是授權我們向AppStore提交并發布應用,是上架我們作品必備的通行證。申請流程和之前開發證書一毛一樣,這里就不多說了。發布證書只需要發布人員的Mac上安裝就行,不需要共享給團隊成員。二則是發布測試應用的,相關可以參考這篇文章(制作iOS Ad-Hoc測試應用),這里也不多費篇幅了。

后面這些看名字大概也能知道是做什么的,我也沒用過,不敢在這瞎BB誤人子弟,有需要用到的可以自行研究,申請證書的過程也不會很麻煩。

Identifiers(標識符)

天了嚕,講個證書講了這么長篇幅,我也是夠啰嗦的,下面的都快點講了。我們看看第二個Identifiers,也就是標識符,或者通俗點說就是身份證,護照。你的App要是沒有這玩意兒,就是個黑戶,想上線AppStore那是萬萬不可能滴。下面那些我就不講了,我也沒用過,只說App IDs,這就是給你心愛的App兒子辦理身份證的派出所所在地。老規矩,點擊右上角的加號進行申請。

Registering an App ID

要填的信息不少,我們來看看。App ID Description下面就是填下你的App的名字,這里該填啥填啥,不影響你上架后App的名字顯示,所以最好填明確一點,且不要重復,不然回頭ID多了你都搞不清哪個是哪個,但一定不要有特殊符號。在下圖App ID Suffix里,是設置里的App ID后綴類型的,第一種是Explicit App ID是指唯一的App ID,這種App ID用于唯一標識一個應用程序,例如com.GordonHaha.BoomShaKaLaKa,標識Bundle ID為com.GordonHaha.BoomShaKaLaKa的程序。
而Wildcard App ID則是通配符App ID,用于標識一組應用程序。例如可以表示所有應用程序,則com.GordonHaha.可以表示以com.GordonHaha開頭的所有應用程序。這里看你需求選擇,一般單獨的App選第一個就好。在下面的Bundle ID欄里填上你App相應Bundle ID即可。記住,Bundle ID必須是沒有注冊過的,如果有人申請注冊過這個ID了,就老老實實換一個吧。這就跟你注冊網游ID一樣,先到先得,所以說取個特別點的名真難呀。

App ID Suffix

什么什么?Bundle ID在哪里看?如圖位置。。。

Bundle ID

填完這個往下看最后一項App Services,這里是選擇你的App需要的服務的,包括Apple Pay等等,當然這些服務中有一些是需要相應證書許可的,有需要的就請自行研究吧,這里不多說了。我們這里就默認的就行了。完成后點continue進入下一步,會讓你核對下剛剛的信息,無誤后點擊藍色按鈕Register即可完成App ID的注冊,這樣你心愛的App兒子就終于有了身份證,再也不是黑戶了。

App Services

那我要是填錯了怎么辦?還能改嗎?當然可以。在App ID的列表里找到你需要修改的App ID,點擊展開,在展開信息欄下方有Edit按鈕,點擊即可修改。修改頁面下也可以直接刪除該App ID,流程都比較簡單,這里不再詳述。

Devices(設備)

這個第三項Devices,很明顯就是添加設備的地方啦。我們想要自由暢快的真機測試,就需要把你的測試機在這里注冊。測試機類型有很多,我們這只講iPhone的,其他的請自行研究嘍。還是老規矩,先點右上角的加號添加新設備。

添加設備

我們看到Register Device,注冊你的設備。這里需要填你的設備名字和UDID,設備名填一個你覺得好認的就行,比如某某的iPhone6s之類。那什么是UDID呢,百度百科上說,UDID指的是設備的唯一設備識別符,移動廣告商和游戲網絡運營商往往需要通過UDID用來識別玩家用戶,并對用戶活動進行跟蹤。也就是你手機的身份證啦。那我要在哪看呢?用數據線連接你的iPhone或iPad到你的電腦上,然后打開電腦上的iTunes,點擊下圖紅框中的圖標進入設備詳情頁。

iTunes

來到了設備詳情頁,我們設備的基本信息都展示在了這里。可沒有看到你說的UDID呀,難道是序列號?

設備詳情頁

當然不是啦,這里需要點擊下序列號來切換信息顯示,直到顯示出UDID為止,然后復制即可。

UDID

回到網頁端,填好相關信息后,我們看到下面還有個Register Multiple Devices,這是批量添加設備的地方,要記住每個賬戶中的設備數量限制是100個。Disable 一臺設備也不會增加名額,只能過了一年之后才能刪除,所以如果機器比較多慎用。

Register Multiple Devices

信息填完后點擊continue即完成設備的添加,在相應的設備列表里可以查看添加的設備信息。

Provisioning Profiles(描述文件)

最后一個是描述文件,這是個獨特的東西,它將之前講的證書,App ID和設備打包為一體,這樣就方便了我們的調試和發布。將其放入我們的Xcode中,讓Xcode知道我們的證書和哪些設備之類的信息相匹配,從而允許文件中綁定的設備安裝相應的App進行開發測試。

Provisioning Profiles

我們來看看怎么創建這個描述文件,依舊是點選Provisioning Profiles欄下的All,再點右上角的加號。

創建描述文件

顯然,描述文件也分開發和發布兩類,創建的流程其實都是一樣的,這里我們選第一個iOS App Development,然后continue進入下一步。然后會需要你選擇一個之前注冊號的App ID,選好后continue下一步。

創建描述文件

接下來是選擇你之前創建的證書,可以多選,選擇相應App的開發證書即可。然后continue下一步。

創建描述文件

然后是選擇可以進行真機測試的設備,這里會提供你之前添加過的那些設備,選擇需要的即可,繼續continue下一步。

創建描述文件

最后會讓你填上描述文件的名字,下面可以看到文件的類型,包含的證書數量和設備數量。填寫完畢后點continue即可完成文件的創建,和之前的證書一樣下載下來雙擊即可完成安裝。其他的描述文件創建過程基本一樣,就不再贅述了。

創建描述文件

這樣,只要將你開發同伴的設備添加進去后,再將之前的p12文件和對應的開發描述文件一起發給你的團隊成員,即可共享證書和真機測試的許可。

關于真機測試

真機測試是很重要的開發步驟,模擬器畢竟不是真機,處理架構都不一樣,很多模擬器上運行似乎沒問題,到了真機上就出Bug,也可能模擬器上運行不了,真機上又毫無問題。實際開發中,還是當以真機為準,畢竟我們的App是要裝到用戶的設備上的,模擬器上跑得再6也沒用,真機上運行流暢無誤才是最基本的準則。前面也說了真機測試的注冊流程,那對于沒有付費賬號的廣大開發者來說,想要將自己的好不容易開發出的寶貝兒App兒子裝在自己的手機上該怎么辦呢?

為了擴大iOS的影響力,鼓勵iOS開發者,去年推出的Xcode7增加了免證書真機測試的功能,對于廣大iOS開發者來說是一個不小的福利。具體的流程我這里不多說了,網上有很多教程,這里貼幾篇。

像我們從github,cocoachina等地方下了一些Demo想真機測試一下時,常會發現因為證書對不上而無法實現,這時候就可以改下工程的Bundle ID,通過上面的免證書真機測試流程重新生成臨時證書即可,不過對于一些有綁定Bundle ID的第三方SDK,這樣做很可能會導致程序無法運行或者其他異常狀況,所以也得看情況使用。

今天啰里啰嗦的把證書相關的基本過了一遍,也算萬事俱備,只欠最后的提交了。當然你也許會說還得要開發一個App呀,不然提交啥?

那我只能表示

(圖片打碼好辛苦,感覺身體被掏空~)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容