版權聲明:本文為博主原創文章,未經博主允許不得轉載。
轉載聯系:http://weibo.com/subjectangelen
我的博客:http://www.angelen.me
處女作品:http://www.angelen.me/app
題記
麻痹起來嗨!看網上那么多的教程,依然在我心愛的愛屁屁在上架的時候遇到各種 J8 問題,最大的問題就是:Xcode 證書什么的,Provisioning Profile 什么的,Debug 什么的,Production 和Distribution 什么亂 78 糟的都把我搞糊涂了,網上很多教程都是好舊的(雖然思路一樣,但是不夠詳細),所以我打算把我今年已經上架的干貨兒(下載地址,介紹地址)的上架艱辛歷程寫下來,一是可以讓自己以后上架 app 時可以減少一點兒彎路,二是可以給大家一個參考。
上架前預熱
先登陸自己的開發者賬號(自己提前注冊好 iOS 開發者賬號,這里假設你已經擁有了一個 iOS 開發者賬號),進入這個頁面:
https://developer.apple.com/account/overview.action
由于我提交上架的是iOS Apps,因此進入最左邊這一欄:
一開始,看著這幾個“Certificates、Identifiers、Devices、Provisioning Profiles”,感覺沒什么的,但是到實際用起來,特么的我就蒙圈了。下面解釋一下這幾個到底是什么鬼,揭開它們的廬山真面目。
Certificates: 證書,常用的證書類型有4種:真機調試證書、推送調試證書,發布證書、推送生產證書。
-
Identifiers: App ID,跟項目工程的 Bundle Identifier(就是下圖紅箭頭指向的<font color="red">me.angelen.Ganker</font>)匹配,如下圖所示:
-
需要支持推送、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 的信息吧。
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 的。
-
Application Loader 構建版本:
如上圖,點擊“Export...”,導出一個 ipa 文件(其實這個時候就可以點擊“Validate...”,但是我懶)。
然后打開 Application Loader 這個軟件,雙擊“交付您的應用程序”:
它會驗證你的 app,如果這里上傳完畢沒有報錯的話,那么 10 分鐘左右等 apple 那邊處理完這個版本,就可以到 iTunes Connect 里的“構建版本”選擇剛剛上傳好的這個版本。
填好就像這樣子啦:
好,信息都填寫完畢了。iTunes Connect 右上角提交審核吧!祝君 app 順利上架!
如果文章幫助了你,不妨賞一口狗糧。