如果想要将做的iOS應用程式裝到自己的iOS裝置上測試、或者裝在别人的iOS裝置上,或者想釋出到App Store裡,先要給應用簽名。簽名就要有證書,這就需要申請證書的過程了。
把自己的應用程式裝到裝置中,主要有以下幾種方式:
① 把iOS裝置與電腦連起來,這樣在Xcode的左上角就可以選擇這個裝置,之後直接點選Run,程式就被裝在這個iOS裝置了。這個主要用于在真機上測試程式。前提是Xcode中添加了包含這個裝置資訊的Profile。
② 使用Xcode将應用程式以Ad Hoc方式打包,導出ipa檔案,然後用iTunes等工具将應用安裝到iOS裝置中。這種方式所用的Profile檔案要是Ad Hoc類型,并且包含指定裝置的資訊。導出的ipa檔案也隻能安裝到指定的裝置中。
③ 将應用程式釋出到App Store上,待蘋果稽核通過後,其他人就可以下載下傳安裝了。
這篇部落客要講第二種方法。PS:本人使用的是Xcode 4.4.1,測試時間是2012年9月上旬。Xcode版本不同可能操作也會不同。另外,蘋果開發者網站也可能以後改版,操作流程也可能會變。
1、先要注冊一個iOS開發者賬号,不再詳述。
2、運作浏覽器,登入https://developer.apple.com/,并進入iOS Dev Center:

進入後,單擊右上角的Log in,輸入開發者賬号和密碼。
3、驗證成功後,在頁面的右邊會出現如下選項:
單擊最上面的iOS Provisioning Portal,我們申請證書、管理證書、管理裝置等操作就是在這個頁面中進行的。如下圖:
4、運作電腦中的“鑰匙串通路”應用程式(英文名:Keychain Access),它一般在“實用工具”目錄下。這個程式在證書申請、給應用簽名的過程中起着很大的作用。簽名時的很多問題都出在這個應用中,比較典型的是
後面會給出一般的解決辦法。
5、在菜單中依次選擇 證書助理——從證書頒發機構請求證書…:
在打開的視窗輸入電子郵件和常用名稱,并選擇存儲到磁盤以及讓我指定密鑰對資訊:
單擊繼續,在打開的視窗設定檔案名稱和位置,點選繼續,密鑰大小選擇2048位,算法選擇RSA:
點選繼續,則在之前設定的位置生成了.CSR的簽名檔案。預設名稱是CertificateSigningRequest.certSigningRequest。
6、回到浏覽器,在頁面中依次選擇Certificates——Distribution——Request Certificate:
在打開的頁面選擇要上傳的CSR檔案,送出。
7、此時正在稽核剛才上傳的檔案,你可以單擊click here to download now下載下傳WWD intermediate certificate。
8、重新整理頁面,下載下傳證書并安裝,此時會自動加到鑰匙串通路程式。
9、建立App ID。在浏覽器的頁面左邊選擇App ID:
然後在右邊選擇New App ID,如下圖:
在Description輸入你的應用的描述,Bundle Identifier是應用的代碼辨別,例如可以輸入com.company.demoapp。如果你有Team ID,那麼這個ID會自動加在Identifier前邊。注意:
① 由于現在蘋果還沒提供App ID删除功能,是以Description最好也是唯一的,否則後邊用到的時候會很麻煩。
② 在Xcode 4.4.1中,如果檢視工程的Bundle Identifier,會發現對應于前邊的demoapp部分是不可改的,是以在輸入Bundle Identifier時可以就用Xcode中給定的,這樣可以省去很多不知道的麻煩。
③ 建議申請一個最後字段為“ *”的ID,這樣可以用同樣的ID,送出一套應用程式,而無需為每個應用都申請單獨的ID。
10、添加裝置。如果你希望導出的ipa隻能安裝在指定的裝置,則要将這些裝置添加到上圖中左側的Devices中。先要擷取iOS裝置的辨別符(不是序列号),可以将裝置與iTunes相連,選擇這個裝置,會先顯示序列号:
此時單擊序列号,就會出現辨別符:
11、回到浏覽器的頁面,在左邊單擊Device,然後選擇Add Devices:
在打開的頁面中添加裝置。别忘了Submit。
12、現在可以制作Profile了。在浏覽器的頁面中單擊Provisioning——Distribution:
然後選擇New Profile:
在這個頁面中,輸入Profile Name,選擇App ID。前邊的Distribution Method有兩個選擇:App Store與Ad Hoc,前者表明你想将程式釋出到應用商店,用這樣的Profile導出的ipa所有裝置都能安裝;後者表明隻允許将應用安裝在指定的裝置上,選擇Ad Hoc後,需要在下方選擇授權的裝置,就是之前你指定的。
為了好區分Profile,本人在輸入的Profile Name加了字尾,_App_Store以及_Ad_Hoc,這樣就比較直覺了。
13、新建立的Profile送出上去之後,稍等一會,重新整理頁面,就可以下載下傳這個Profile了,下載下傳成功後,輕按兩下就自動加到Xcode中了(本人的Xcode一直在運作)。
14、配置應用程式。用Xcode運作已經寫好的工程,設定其Bundle Identifier:
然後,選擇簽名所用的Profile,如下圖,找到Code Signing,找到其中的Release:
上圖中藍色的那行,點選與工程名對應的那一列,選擇Profile檔案,這裡選擇的是Ad Hoc類型的:
15、在Xcode左上角的裝置選擇iOS Device,然後在菜單欄依次找到Product——Archive,如果一切順利,會顯示Build Success:
然後會自動打開Xcode的Organizer的Archives,你可以給他們重命名:
16、選擇剛才生成的那個存檔,單擊右邊的“Distribute…”按鈕:
在打開的頁面選擇Ad Hoc:
單擊Next,在下一步選擇Code Signing Identity,本人選的是與Ad Hoc相對應的:
之後繼續Next,設好名稱和儲存的位置,再繼續就可以生成ipa檔案了。
17、用iTunes将生成的ipa安裝到裝置中。為了測試這個ipa檔案,可以多試幾台裝置。
常見問題:
這個問題是很讓人頭疼的,問題出在鑰匙串通路這個程式中,運作這個程式,将重複的Certificate identity删掉可能還是不管用,因為據說,Mac中的删除并不一定真的删除了,但肯定是看不見了。本人昨天晚上折騰了一個小時,将上面的打包過程重 複了好幾次都不管用,後來重新開機了電腦,居然搞定了。