iOS開發流程——從註冊開發者賬號到提交應用
這篇由兩部分組成的系列教程,將會記錄成為一個Apple iOS開發者的每個步驟——從沒有帳戶的小白到能在App Store上釋出應用。
我將向你展示如何註冊Apple iOS開發者計劃,如何生成各種需要的證書,如何配置應用,如何提交應用給App Store稽核。
為了製作這個教程,我建立了一個完全新的App Store賬號,並且向App Store提交了一個新的應用,仔細記錄了每一步流程。
我向App Store提交的應用是上一個系列教程裡建立的應用(如何用Cocos2D和Box2D製作彈弓射擊遊戲)的改進版。這個應用(cute-a-pult)已經通過稽核並且可以在App Store裡下載。
你需要為這個教程準備99美元,一張有效的信用卡和一個瀏覽器。雖然沒有說,但開發一個應用,你需要一個Mac電腦,最好安裝了OS X 10.7 獅子系統。
最後,你需要用到Xcode,Apple的開發軟體。一旦你註冊了Apple的iOS開發者,你就可以下載Xcode。
擁有適當的耐心將有助於學習本教程。成為一個iOS的註冊開發者是一個漫長的過程,並且有些時候會遇到重複的步驟。要記住:教程結束,你就能夠向App Store提交應用,這會帶來潛在的財富和榮譽。
入門
通往App Store道路上的第一步是註冊成為一名Apple開發者。注意:成為一名Apple開發者是免費的,這與成為iOS開發者不同,成為iOS開發者需要支付前邊提到的99美元費用。
你可能在Apple已經有一個開發者帳戶。如果是,請略過下邊步驟,直接跳到下一小節。
如果你還沒有Apple開發者帳戶,請轉到iOS Dev Center,並點選“register”連結:
點選“Get Started”按鈕:
在下一頁,你可以選擇建立一個全新的Apple ID或者是使用已有的賬號。如果你願意,你可以使用在iTunes上支付時所使用的Apple ID來節省時間。但是我建議建立一個新的、乾淨的ID。這有助於確保你所有的資料都是正確的,並且可以保持私人和職業的賬號分開。
所以,選擇“Create an Apple ID”並且點選“Continue”:
填入你的email、密碼和安全資訊。使用經常訪問的email郵箱地址,因為Apple會經常傳送計劃更新資訊和你提交稽核應用的狀態資訊。
向下滾動,填寫你的個人資訊,並點選“Continue”:
下一頁是法律協議。打給你的律師,把全文讀給他/她聽。一獲得你律師的批准,就選中複選框,並點選“I Agree.”按鈕。
差不多結束了。
檢查你註冊時輸入的email賬號,你應該會收到一封像這樣的電子郵件。點選郵件中的連結或在註冊流程的最後一頁輸入郵件中的驗證碼。
酷,你已經是一名Apple開發者了!非常好,但是你可以開始開發應用並向App Store提交應用了嗎?好吧,到目前為止還不行…點選“Continue”並且讓我們向Apple支付一些錢。
加入iOS開發計劃
成為一名Apple的註冊開發者可以讓你訪問很多資訊,但是要能夠在App Store提交應用(和訪問某些相關的內容)需要加入Apple的iOS開發者計劃。這一部分每年需要花費你99美元。
如果你依照之前的小節並且點選了“Continue”,你應該在這個地方。如果你因為已經有了Apple開發賬號而跳過了之前的步驟,那進入Developer Member Center並登入,你也會在這裡。
登入後,點選頁面右邊的“Join Today”連結:
下一頁是一個步驟預覽,它看起來只有3步,但實際上一有15步。深呼吸,確保你有半個小時的時間,然後點選“Continue”:
選擇使用已經存在的Apple開發者ID,並點選“Continue”:
下一頁是問你打算以獨立開發者的身份加入還是以公司的身份加入。作為教程,我以獨立開發者的身份加入,這差不多也是你將會選的。如果你選擇以公司的身份加入,這個過程不會太容易。你需要提交很多資料以證明你加入了這家公司。
如果你選擇以公司身份加入,請閱讀右邊的要求以確保你擁有所有需要的東西。
否則,就點選左邊的“Individual”按鈕,讓我們繼續。
你必須要再登入一次,填寫表單,並點選“Sign in”:
輸入賬單資訊以驗證身份。Apple會嘗試與你的信用卡公司驗證這些資訊,所以確保你的輸入正確:
向下滾動,填寫剩下的資訊,並點選“Continue”:
到了選擇一種計劃的時候了,這個系列教程關注iOS Developer Program,所以這是我的唯一選項。如何你想開發OS X應用,你可以選擇加入Mac Developer Program,但是你需要另外支付99美元(如果你現在不能決定也不用擔心,之後也可以登入選擇)。
選擇你的計劃之後點選“Continue”:
檢查你的資訊,如果有任何錯誤請回到之前的步驟修改。一切完畢請點選“Continue”:
下一頁是另一個法律協議,所以你需要再次打給你的律師,你的律師說OK後就選中複選框,並點選“I Agree”:
注意:下邊的步驟只適用於美國和其他擁有線上App Store的國家。對於沒有線上App Store的國家,這些步驟稍微有些不同,會要求你傳真你的信用卡資訊給Apple。不幸的是,對於那些所在國沒有線上App Store的讀者,你需要自己完成這一小節餘下的步驟。所以,請依照Apple的說明,並在下一小節再見。
對於依然停留在這裡的人,請點選“Add to cart”:
這帶我們進入了App Store以繼續註冊流程,點選“Check Out Now”按鈕:
你需要使用新建立的Apple ID再次登入:
你需要輸入“shipping address”(送貨地址),雖然Apple不會給你送來任何東西。我建議你輸入之前填入的信用卡賬單地址(之後馬上還會輸入這個地址)。填完表格然後點選“Continue”:
再次點選“Continue”按鈕:
現在你需要再次輸入你的賬單資訊和信用卡號,並點選“Continue”按鈕:
我們差不多結束了。你現在所在的這頁可能會向你顯示預估的銷售稅,這點你可能會也可能不會被收取(我沒有)。準備就緒,點選“Place Order Now”按鈕:
不用謝哈!
現在,進入實質階段
在提交註冊成為iOS開發者申請並支付了費用後,你需要等待一天讓Apple處理你的訂單。
如果因為你的所在國沒有Apple Store,而必須傳真資訊給Apple,那你需要更多的耐心。我第一次註冊的時候就遇到這種情況,我花費了一週時間來等待Apple回覆我。
無論發生什麼情況,你最終都會收到這樣一封來至Apple的郵件:
同時,你也會收到這封郵件:
如果你還沒有Xcode這個iOS開發中主要用到的工具,那你應該下載Xcode它了,使用你註冊的iOS開發者賬號來下載。在這個教材中,我們只會簡單的使用Xcode,RayWenderlinch.com上其他優秀的教程將會教你如何使用Xcode。
在你提供了登入資訊後,你終於進入了iOS Dev Center。
iOS Dev Center有許多的資訊。有程式設計指引、下載、文件、視屏以及非常有幫助的開發論壇和支援中心。
花點時間來熟悉哪些東西是可以用的。注意有些資訊可能是要求保密的,特別是涉及到beta版本的iOS或Xcode。
在這篇教程裡,我們會關注兩個你開發應用時經常使用的入口:iOS Provisioning Portal和iTunes Connect。
首先我們介紹下兩者。
iOS Provisioning Portal
我們應該知道,沒有越獄的iOS裝置只能執行經過Apple批准並且通過App Store安裝的應用。
Apple通過要求每個執行在iOS的應用都擁有一個簽名證書來實現這一點。從App安裝的應用都捆綁了一個證書,系統在執行應用前會驗證這個證書。如果沒有簽名或者簽名無效,應用將不會執行。
作為開發者,我們需要經常在裝置上除錯我們正在開發的應用。因為這點,我們需要一個方法來建立我們自己的證書並給它簽名。
這就是iOS Provisioning Portal的作用。這個入口允許你建立Apple稱為“profiles”(配置檔案)的東西,配置檔案(有時也被稱為“code signing identities”)是在這裡生成的檔案,它允許Xcode對你的應用簽名,這樣裝置的iOS會認為應用是有效的。
有兩種型別的配置檔案:
- Development profiles。這個配置檔案捆綁到了特定的機器,所有開發中的應用只能執行在這些機器上。
- Distribution profiles。在你提交應用給Apple稽核前,需要用這個證書用於對應用簽名。它沒有包含和裝置有關的資訊,但是你不能使用他們在你自己的裝置上安裝應用,因為Apple在稽核流程後還有對應用簽名。
如果你的應用想傳送push通知(當條件觸發時,從服務端發來的彈出訊息)的話,Provisiong Protal也能生成push證書。
iTunes Connect
iTunes Connect是你用於提交應用的入口。這是你註冊新應用、輸入應用描述和截圖、選擇價格、配置game center和應用內支付的地方。
這也是你同來接受新的合同、設定財務資料和檢測銷售的入口。
這篇教程的剩下不會我們會使用Provisiong Protal。下一次,教程的第二部分,我會向你介紹iTunes Connect。
證書、設備註冊和配置檔案
這篇教程接下來的部分,我們將會使用iOS Provisioning Portal來設定在自己裝置上(和之後為了釋出到App Store)開發應用所需要的資訊。
注意,用Xcode中的Automatic Device provisioning工具來完成這項任務會更加簡單,我會在這個系列教程的第二部分採用這種方式。但這裡我會一步一步地帶你完成,通過這種方式你會更好的明白這一切是怎麼工作的,當你在App Store釋出應用時,這些資訊是對你來說非常重要的。
如果你依然停留在iOS Dev Center頁面,就請點選右上方的連結或者這裡。
進入後你有很多事情需要去完成。有些你只需要完成一次,比如生成你的證書和註冊裝置。其他的事情對你的每個應用都會重複進行一次,比如生成開發配置檔案和釋出配置檔案。
首先,你需要生成兩個證書,一個用於你的開發配置檔案另一個則使用者你的釋出配置檔案。
讓我們點選“Certificates”連結來得到我們的證書:
點選“Request Certificate”:
下一個介面將會解釋如何請求證書,我會指引你。
讓我們離開瀏覽器一會兒,在你的Mac上開啟Keychain Access。如果你不知道在哪裡開啟,可以使用Spotlight搜尋:
程式開啟後,從Keychain Access選單裡選擇“Certificate Assistant”,然後選擇“Request a Certificate From a Certificate Authority…”:
在Certificate Assistant窗口裡,填入你的email地址和名字,選擇“Save to disk”並且點選“Continue”:
把這個檔案儲存在你的Mac上。
回到瀏覽器,通過“Choose file”找到剛才儲存的檔案,並點選“Submit”:
Apple需要一些時間來為你生成證書。我見過花幾分鐘的,但有時它會長一些。在我們等待的這段時間(證書的狀態可能會提示是“Issued”,但是直到下載按鈕出現,證書才是真正的準備好了),讓我們做些其他需要做的事情。
你可以在“Current Development Certificates”這一節的下邊看到一則訊息,它提示:“如果你還沒有安裝WWDR,現在就點選這裡下載”。點選這個連結。
這會下載一個名為AppleWWDRCA.cer的檔案。雙擊安裝這個它。如果你已經關閉了Keychain Access,安裝程式再次開啟Keychain Access。這個檔案安裝了之後,請保持Keychain Access開啟,因為我們幾分鐘之後會再次用到它。
你同樣需要一個釋出證書。點選“Distribution”標籤,並像開始一樣,提交證書檔案。我不是安全專家,但我認為在這種情況下,重複使用相同的證書籤名請求沒什麼大不了的。如果我錯了請隨時糾正我。
再次說明,有時等待證書的下載按鈕可用需要花點時間。我們同時擁有了兩個證書才能繼續下邊的步驟,所以如果你依然在等待中,去喝杯咖啡,或者細讀下本站的其他教程,然後再回來。
兩個證書都準備好後,點選Development標籤頁和Distribution標籤頁的“Download”按鈕以便獲得兩個證書檔案。
雙擊兩個檔案安裝到你的keychain。你應該看到你的證書如下圖所示:
現在你可以關閉Keychain Access了。
讓我們繼續。下一步是註冊你的裝置。在左邊的選單點選“Devices”,然後點選右邊的“Add Devices”:
你需要獲取用來除錯應用的裝置的UDID。這裡有幾種方式來取得裝置的UDID:用免費的應用來得的UDID,或者你可以使用Xcode的Organizer。我會像你展示如何使用iTunes來獲取UDID。
開啟iTunes並且把你的裝置插入到計算機。從左邊的選單選擇裝置。iTunes會顯示裝置名稱、容量、版本、序列號和電話號碼。點選序列號,然後它會變成你的裝置UDID。
現在使用CMD-C來拷貝UDID到剪貼簿。
回到瀏覽器,輸入裝置名稱並貼上UDID到相應的欄位。裝置名詞可以是任何你想要的名字。要新增更多的裝置,請點選“+”按鈕。一切妥當後,點選“Submit”。
你可以隨時回來新增更多的裝置,比如那些屬於朋友或者beta測試者的裝置。Apple允許你每年每個帳戶最多註冊100個裝置。(注意:如果你註冊了一個裝置然後又移除了它,它依然會佔據一個名額)
現在,你的裝置已經註冊了,我們需要註冊一個app ID。每個應用都需要一個它自己的app ID。點選左邊選單的“App IDs”:
你會看到一個對app ID概念的詳細解釋。簡要地說,app ID是由Apple生成的10個字元長“種子”字首加你自己的bundle ID組成。把它們組合在一起就為你的應用建立了一個唯一識別符號。
這裡是一些關於app ID的重要內容,你應該知道下:
1、如果你想要在你的應用間分享keychain資訊,你可以讓它們擁有相同的種子字首。比如你有一個應用套件通過一個登入入口來使用同一個網站。如果應用間分享相一個種子字首,一個應用儲存使用者資訊到iOS的keychain,那麼這個套件裡的其他應用也可以從keychain活得登入資訊。
2、bundle ID必須是唯一的。在Apple的push服務在IAP和iClound中會使用到它。
3、Apple建議使用反向域名形式的字串來作為app ID的Bundle識別符號部分。建議的格式是““com.domainname.applicationname.”。
4、Apple允許你使用星號來建立一個帶萬用字元的bundle ID,以便在你的所有應用中都使用同一個bundle ID。但是我不建議這麼做。使用帶萬用字元的bundle ID可能會讓建立配置檔案簡單些,但是你不能使用push服務或者IAP了。或許你現在不打算使用這些服務,但是你一旦改變你的想法,除非建立一個新的應用否則你無法改變應用的app ID。
現在,你知道了app ID的所有內容,讓我們建