1. 程式人生 > >史上最用心的 iOS App 上架流程

史上最用心的 iOS App 上架流程

題記

麻痺起來嗨!看網上那麼多的教程,依然在我心愛的愛屁屁在上架的時候遇到各種 J8 問題,最大的問題就是:Xcode 證書什麼的,Provisioning Profile 什麼的,Debug 什麼的,Production 和Distribution 什麼亂 78 糟的都把我搞糊塗了,網上很多教程都是好舊的(雖然思路一樣,但是不夠詳細),所以我打算把我今年已經上架的乾貨兒(下載地址介紹地址)的上架艱辛歷程寫下來,一是可以讓自己以後上架 app 時可以減少一點兒彎路,二是可以給大家一個參考。

上架前預熱

由於我提交上架的是iOS Apps,因此進入最左邊這一欄:

一開始,看著這幾個“Certificates、Identifiers、Devices、Provisioning Profiles”,感覺沒什麼的,但是到實際用起來,特麼的我就蒙圈了。下面解釋一下這幾個到底是什麼鬼,揭開它們的廬山真面目。

  • Certificates: 證書,常用的證書型別有4種:真機除錯證書、推送除錯證書,釋出證書、推送生產證書。
  • Identifiers: App ID,跟專案工程的 Bundle Identifier(就是下圖紅箭頭指向的me.angelen.Ganker)匹配,如下圖所示:
  • 需要支援推送、Game Center 等功能的 App ID 不能包含萬用字元* (下圖就是在新建App ID時,選擇App ID的字尾)。
  • Devices: iOS裝置在真機除錯、AdHoc釋出時都需要包含裝置的UDID才可以安裝。
  • Provisioning Profiles: 配置檔案(描述檔案),不同型別的開發者賬號都包含 Development、AdHoc 這兩種 Profile,不同的是個人、公司開發者賬號有釋出到 AppStore 的 Profile,而企業開發者賬號則是 InHouse 企業內釋出的 Profile。

看到我又亂了,不怕,慢慢來解釋。

開始上架之路

1. 申請App ID

選中Identifiers的App IDs,點選右上角的“+”號填寫相應資訊來申請App ID。

注意:這個App ID Description的Name是用來描述你的App Id,這個隨便填,沒有什麼限制,最好是專案名稱,這樣方便自己辨識(不允許中文喔)。

注意:App ID Suffix,這是你 App Id 的字尾,這個需要仔細。因為這個內容和你的程式直接相關,後面很多地方要用到,最好是com.yourcompany.yourappname的格式,我用的是專案中的 Bundle Identifier(反正這樣是最保險的,上面有提到什麼是 Bundle Identifier )。

注意:App Services,預設會選擇2項,不能修改,只需要選擇上自己需要的服務即可,不知道在哪裡看到說是必須要選上推送,否則後面就沒有辦法修改了,但是我自己測試的是可以修改的。

如果不放心的程式設計師,可以選上喔,然後點選Continue。

確認沒有錯的話直接點選 Submit 後點擊 Done 即完成 App ID 的建立,如下圖所示:

2. 建立證書(Certificates)

2.1 建立證書請求檔案

先建立一個證書請求檔案。在 Mac 上的應用程式找到“鑰匙串訪問”,如下圖這個圖示:

開啟後,選擇 鑰匙串訪問–證書助理–從證書頒發機構請求證書,如下圖所示:

填寫好證書資訊,儲存該證書。

注意:使用者郵件地址填寫開發者的郵件,常用名稱是證書中金鑰的名字,CA 電子郵件地址不用填。
點選“繼續”,選擇儲存該證書的位置,即可生成證書請求檔案,如下圖所示:

2.2 開始建立證書

證書有兩大類,開發證書(Development,也稱為除錯證書)和釋出證書(Production)。

常用的有以下幾種:

① iOS App Development:真機除錯證書。

② Apple Push Notification service SSL (Sandbox):推送除錯證書,直接用 Xcode 除錯到裝置的 App 需要除錯證書推送通知。

③ App Store and Ad Hoc:釋出證書,App Store、In-House(之前是有這個的,不過我現在看不到,先不管)、Ad Hoc 釋出方式都需要這個證書來簽名。

④ Apple Push Notification service SSL (Sandbox & Production):推送正式證書,AppStore、In-House、AdHoc 都需要用正式推送證書推送通知。

注意:這幾種證書的建立都是需要上傳CSR檔案(就是剛剛建立好的 CertificateSigningRequest.certSigningRequest檔案)。

釋出證書和開發者證書需要操作兩次,分別建立,開發者證書用於真機除錯,釋出證書用於提交到 App Store。
比如先勾選 iOS App Development,點選 Continue,它會提示你需要一個 CSR 檔案。

機智如我早就已經建立好了,就是那個上面說的 CertificateSigningRequest.certSigningRequest檔案。
好,繼續 Continue。

選擇那個 CSR 檔案,點選 Generate。

可以把他下載到 Mac 找個地方放著。
同樣的,App Store and Ad Hoc 也是一樣的方法來建立即可。

哎呀,還可以,知道我已經建立了 iOS App Development,給我變灰不可以點選了。
到了最後一步,跟建立 iOS App Development 差不多:

不過跟 iOS App Development 的證書的Name有點不同。一個是 iOS Development: Microlen Yan(我的),另一個是 iOS Distribution: Y..S.. Technology Co., Ltd.(公司的)。也下載到電腦以後,你 Mac 上有了以下這兩個檔案:

在開發者中心也可以看到:

這兩個證書都是有效期1年。
雙擊這兩個 cer 證書檔案,就可以安裝好了這兩個證書。(如果安裝不上,可以直接將證書檔案拖拽到鑰匙串訪問的列表中)
安裝完成之後應該是這樣子的:

3. 建立配置檔案(描述檔案Provisioning Profile)

點選右上角的“+”號,分別建立開發用的 Provisioning Profile 和釋出到 App Store 用的 Provisioning Profile:

以iOS App Development為例。

選擇之前已經建立好的App ID,下一步:

選擇證書,這個也是剛剛建立好的證書。繼續下一步:

注意:開發的 Provisioning Profile 需要真機除錯,所以這裡要繫結一個或以上的真機,這裡我是之前新增過真機了,所以可以直接勾選;如果沒有的話,需要將真機的 UUID 複製出來在此新增(方法:使用手機 Safari 訪問http://fir.im/udid )。還有就是,在釋出的 Provisioning Profile 中,是沒有這一步的,道理我們都懂!(不懂也不要問度娘)
好,勾選了之後,直接 Continue:

填寫好了 Profile Name 之後,點選 Generate 生成:

下載下來吧,騷年!然後去建立釋出用的 Provisioning Profile,步驟和以上的差不多。
在選擇證書的時候有一點點不同:

同樣完成以後,下載下來。現在就多了兩個 Provisioning Profile:

雙擊就新增到 Xcode 中,這樣在真機除錯或者釋出時,就可以分別有不同的 Provisioning Profile 與其對應。不過,其實可以不用下載儲存,因為可以在Xcode那裡下載的(具體操作下面有,我也是後來才聽說的,原諒我沒有好好讀書)。

4. 專案配置(在 Xcode 進行)

在 Xcode 中,選擇 Xcode–Preference 以下介面,選擇 Accounts 選項卡:

選中那個 Admin 的,然後點選 View Details…

在這裡可以下載你的 Provisioning Profile(Xcode做得還可以的是不是)。
配置以下專案 PROJECT 的 Provisioning Profile 屬性:

然後用真機打包:Product–Archive(如果不是連真機,好像 Archive 這個選單項是灰色不可以點選的)

為了保險起見、讓蘋果稽核順利一點,先點選“Validate…”來驗證一下:

驗證驗證著就出現以下這個問題了:

看來是這個 iTunes Connect 的問題,那就先去 iTunes Connect 去註冊一個該 app 的資訊吧。

點選建立之後

填寫完相應資訊,點選“1.0 準備提交”。
把要填的資訊包括:版本資訊、App 綜合資訊、Game Center(我的暫時沒有用到)、App 稽核資訊、額外資訊,填寫完畢之後儲存一下(建議每填一下儲存一下,iTunes Connect 經常網路搞飛機的)。
對了,還有一個“構建版本”,這個把程式碼打包成 ipa 檔案而已。構建版本(下面有構建方法)完成之後,再來這個 iTunes Connect 裡填寫“構建版本”

構建版本的方法有兩種,一種是使用 Xcode,另一種就是下載一個叫 Application Loader 這個軟體:

  • Xcode 構建版本:
    用真機打包:Product–Archive 之後進入以下頁面(或者已經 Archive 了的話就可以通過 Window–Organizer 進入):

看到藍色背景的按鈕沒有,Upload to App Store…之後按照提示操作吧。

我建議使用 Application Loader 的。

  • Application Loader 構建版本:
    如上圖,點選“Export…”,匯出一個 ipa 檔案(其實這個時候就可以點選“Validate…”,但是我懶)。
    然後開啟 Application Loader 這個軟體,雙擊“交付您的應用程式”:

它會驗證你的 app,如果這裡上傳完畢沒有報錯的話,那麼 10 分鐘左右等 apple 那邊處理完這個版本,就可以到 iTunes Connect 裡的“構建版本”選擇剛剛上傳好的這個版本。
填好就像這樣子啦:

好,資訊都填寫完畢了。iTunes Connect 右上角提交稽核吧!祝君 app 順利上架!

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!