iPhone應用程序的發佈形式有兩種,1種是通過 App Store 正式的販賣,還有一種是 Ad Hoc,針對特定的用戶發佈自己的程序,不用經過Apple的審覈。
使用 Ad Hoc 有什麼好處呢,你可以:
- 發佈自己的程序給親朋好友,且不收取費用
- 程序正式上傳之前,得到更多人的 review
- Apple 的設備開發 Provisioning Profile 有3個月的限制,用其安裝的程序,3個月後如果不更換 Profile,程序就不能使用了,換成Ad Hoc的話,可延長期限到你的IDP截至日期
- 使用各種Private API等Apple禁止的功能,而不擔心被Reject
但是使用 Ad Hoc 發佈仍是有限制的,就是發佈的設備最多隻有 100 臺。下面我們就來看看其發佈和發佈後安裝的流程。
發佈
下面列出了用 Ad Hoc 的發佈流程,一些步驟是與 iPhone開發入門(10)--- 設備上運行程序 和 iPhone開發入門(11)--- 在App Store上發佈程序 重複的。你可以根據實際情況省略。
發佈前的準備
發佈前需要知道對方設備的的ID (iPhone UDID),可以讓對方到 App Store 上安裝一款叫 「Ad Hoc Helper」 的免費工具,然後用它給自己發一封郵件就好了(其中包含了對方設備的 UDID)。或者使用其他方式得到設備的UDID,比如 iTunes。總之需要得到發佈目的的 UDID。
生成證明書
從應用程序點擊「utility」→「Keychain access」。
然後點擊「Keychain access」→「證明助手」→「發行證明書...」。
其中在「用戶的郵箱地址」中填寫註冊 Apple ID 時的地址,並在 Common Name 中輸入英文的名字。最後選擇「保存到硬盤」和「指定對稱鍵情報」後點擊「下一步」。
適當選擇文件保存的位置。
對稱鍵情報中,確認鍵的大小爲「2048位」,算法是「RSA」後點擊「下一步」。
過上一會兒,出現結束畫面。剛纔保存的文件可以用來請求證明書。
註冊證明書
如下圖,點擊左邊的「Certificates」 可以註冊剛纔做好的證明書。
點擊「Request Certificate」,在下面的畫面中選擇請求證明書的文件,最後點擊「Submit」。
提交之後被添加到表格中,之後點擊「Approve」等待。
之後,表格中顯示「Download」按鈕,點擊它下載證明書。
同時不要忘了下載表格下面的「WWDR intermediate certificate」。之後分別雙擊這兩個下載的文件,在「提交證明書」對話框中選擇OK。這之後就可以在Keychain的「證明書」一項中確認添加的證明書了。
註冊設備
接下來註冊 iPhone 或者 iPod touch。選擇「Devices」的右上角的「Add Device」。
在「Device Name」中輸入任意的設備名稱。在「Device ID」中輸入剛纔確認的UDID後就OK了。最多可輸入100個設備的UDID。
生成App ID
接下來點擊「App IDs」,來生成AppID。
在「App ID Name」中輸入任意的名字,在右邊的「App ID」中輸入“*”。利用 App ID 將應用程序按不同的組管理起來。如果你輸入的「Bundle Identifier」與應用程序中包含的「Bundle Identifier」不一致的話,程序是不會啓動的。它主要是爲了方便多人開發的項目,對於個人而言沒有什麼必要。所以這裏將 App ID 寫作「*」就是說含有任何 Bundle Identifier 的程序等可以運行。
最後點擊 Submit,就完成了註冊。
創建Provisioning Profile
最後來創建Provisioning Profile。選擇「Privisioning → Distribution → New Profile」點擊右上角的「Add Profile」。
- Distribution Method: Ad Hoc
- Profile Name: 任意
- Distribution Certificate: 剛纔設置好的
- App ID: 剛纔設置好的
- Devices: 選擇你要發佈的設備ID(可多選,最大100個)
隨後點擊 Submit 創建 Provisioning Profile。
等待一會兒,表格中「Download」顯示出來。點擊它下載 Provisioning Profile 文件。
安裝Provisioning
打開應用程序程序的 Xcode 項目。由菜單打開「窗口」→「organizer」,拖動剛纔創建的Provisioning文件到Provisioning項目中。
Entitlements.plist
Resources 中創建新文件 → Code Signing → Entitlements → AddHockEntitlements.plist
項目設定
爲了創建 distribution build,需要向工程中添加新的編譯目標。由 Xcode 的菜單點擊「項目」→「項目設定」中的「構成」標籤。
選擇表中的「Release」,並點擊在下的「複製」,生成「Release的拷貝」後,將其名稱改爲「Ad Hock」。結束後點擊「編譯」標籤,選擇「Ad Hock」。
最後,需要在「Any iPhone OS Device」項目上選擇剛纔安裝的Provisioning Profile。Code Signing Entitlements 中設置剛纔創建的 "AddHockEntitlements.plist" 。
編譯
選擇 Active SDK 爲 Device、構成爲「Ad Hock」就可以編譯了。
安裝
方法1:使用iTunes同步
將編譯好的 xxxx.app 與 Provisioning Profile 文件一併打包發送給你的用戶。用戶解壓後拖動 xxxx.app 文件夾和 profile 文件到 iTunes 的 資料庫 ⇒ 應用程序 下,然後與目標iPhone設備同步即可。
方法2:使用iPhone 配置實用工具
到 這裏 下載 iPhone 配置實用工具,然後同樣將解壓後的 xxxx.app 文件夾和profile 文件到 拖動到配置工具的 資料庫 ⇒ 應用程序 下,點擊右邊的安裝即可。