本文轉自:http://ios.jobbole.com/84643/ ios
題記程序員
麻痹起來嗨!看網上那麼多的教程,依然在我心愛的愛屁屁在上架的時候遇到各類 J8 問題,最大的問題就是:Xcode 證書什麼的,Provisioning Profile 什麼的,Debug 什麼的,Production 和Distribution 什麼亂 78 糟的都把我搞糊塗了,網上不少教程都是好舊的(雖然思路同樣,可是不夠詳細),因此我打算把我今年已經上架的乾貨兒(下載地址,介紹地址)的上架艱辛歷程寫下來,一是可讓本身之後上架 app 時能夠減小一點兒彎路,二是能夠給你們一個參考。網絡
先登錄本身的開發者帳號(本身提早註冊好 iOS 開發者帳號,這裏假設你已經擁有了一個 iOS 開發者帳號),進入這個頁面:https://developer.apple.com/account/overview.actionapp
因爲我提交上架的是iOS Apps,所以進入最左邊這一欄:測試
一開始,看着這幾個「Certificates、Identifiers、Devices、Provisioning Profiles」,感受沒什麼的,可是到實際用起來,特麼的我就蒙圈了。下面解釋一下這幾個究竟是什麼鬼,揭開它們的廬山真面目。spa
須要支持推送、Game Center 等功能的 App ID 不能包含通配符* (下圖就是在新建App ID時,選擇App ID的後綴)。3d
看到我又亂了,不怕,慢慢來解釋。調試
選中Identifiers的App IDs,點擊右上角的「+」號填寫相應信息來申請App ID。code
注意:這個App ID Description的Name是用來描述你的App Id,這個隨便填,沒有什麼限制,最好是項目名稱,這樣方便本身辨識(不容許中文喔)。blog
注意:App ID Suffix,這是你 App Id 的後綴,這個須要仔細。由於這個內容和你的程序直接相關,後面不少地方要用到,最好是com.yourcompany.yourappname的格式,我用的是項目中的 Bundle Identifier(反正這樣是最保險的,上面有提到什麼是 Bundle Identifier )。
注意:App Services,默認會選擇2項,不能修改,只須要選擇上本身須要的服務便可,不知道在哪裏看到說是必需要選上推送,不然後面就沒有辦法修改了,可是我本身測試的是能夠修改的。
若是不放心的程序員,能夠選上喔,而後點擊Continue。
確認沒有錯的話直接點擊 Submit 後點擊 Done 即完成 App ID 的建立,以下圖所示:
先建立一個證書請求文件。在 Mac 上的應用程序找到「鑰匙串訪問」,以下圖這個圖標:
打開後,選擇 鑰匙串訪問–證書助理–從證書頒發機構請求證書,以下圖所示:
填寫好證書信息,保存該證書。
注意:用戶郵件地址填寫開發者的郵件,經常使用名稱是證書中密鑰的名字,CA 電子郵件地址不用填。
點擊「繼續」,選擇存儲該證書的位置,便可生成證書請求文件,以下圖所示:
證書有兩大類,開發證書(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 證書文件,就能夠安裝好了這兩個證書。(若是安裝不上,能夠直接將證書文件拖拽到鑰匙串訪問的列表中)
安裝完成以後應該是這樣子的:
點擊右上角的「+」號,分別建立開發用的 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那裏下載的(具體操做下面有,我也是後來才據說的,原諒我沒有好好讀書)。
在 Xcode 中,選擇 Xcode–Preference 如下界面,選擇 Accounts 選項卡:
選中那個 Admin 的,而後點擊 View Details…
在這裏能夠下載你的 Provisioning Profile(Xcode作得還能夠的是否是)。
配置如下項目 PROJECT 的 Provisioning Profile 屬性:
而後用真機打包:Product–Archive(若是不是連真機,好像 Archive 這個菜單項是灰色不能夠點擊的)
爲了保險起見、讓蘋果審覈順利一點,先點擊「Validate…」來驗證一下:
驗證驗證着就出現如下這個問題了:
看來是這個 iTunes Connect 的問題,那就先去 iTunes Connect 去註冊一個該 app 的信息吧。
https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/
我試了好屢次才進去的,apple 這個坑爹貨。點擊「個人 App」,新建一個 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 的。
它會驗證你的 app,若是這裏上傳完畢沒有報錯的話,那麼 10 分鐘左右等 apple 那邊處理完這個版本,就能夠到 iTunes Connect 裏的「構建版本」選擇剛剛上傳好的這個版本。
填好就像這樣子啦:
好,信息都填寫完畢了。iTunes Connect 右上角提交審覈吧!祝君 app 順利上架!
我想說Xcode自帶Application Loader,在Xcode ->Open Developer Tool -> Application Loader