企業版IDP，即iOS Development Enterprise Program。注意是$299／Year那種，並不是$99/Year的那種。
這種方式的IDP其最大的好處在於：可以發布“In House”應用。
這種應用使用一種叫做“ In House Distribution Provisioning Profile”的文件進行發布，不能發佈到Apple Shop進行銷售，也不需要經過Apple的評審。你可以把“In House”應用通過任何方式發布給你的企業員工、用戶及其他你認可的任何人，尤其適合於企業應用的開發。
網上關於個人版/公司版IDP申請流程，以及將應用發佈到蘋果商店的介紹有很多，但關於企業版IDP以及In House應用的討論非常之少（尤其國內）。下面，筆者將對這兩方面的問題進行一個全面細緻的介紹。
這個步驟就不說了。
鄧氏編碼是美國聯邦政府推薦使用的企業機構編碼。可以看成是美國版的“組織機構代碼”，只不過已經得到了聯合國、澳大利亞政府、歐盟及美國政府的承認，成為了全球企業標準。
蘋果公司需要鄧氏編碼才能申請IDP企業版。這倒不是對國內企業的歧視，而是出於的美國商業習慣。在美國所有的採購合同和商業合同中，都會要求供應商提供一個DUNS（鄧氏編碼），否則對方可能不會跟你簽合同。因為所有的美國企業都使用D&B公司的數據庫，這樣才能保證所有企業編碼不會重複。
申請鄧氏編碼在D&B公司的網站即可：
中文網站“鄧白氏”：
在網站上提交註冊申請後，等待1－2天，對方人員會跟你聯繫（Email）。
原來以為申請會很麻煩（交流上），但實際上是由華夏鄧白氏的中籍文員跟你聯繫的。
鄧白氏註冊服務有幾個版本，收費情況也不一樣。筆者一開始收到的郵件是“實地核實”的版本，報價15200/2年。
聯繫時一定要強調是購買標準版服務（最便宜），否則你可能會花冤枉錢。
收到郵件後，把申請表、協議打印出來，填好並加蓋公章，然後加上企業營業執照副本、掃描為電子的，發給對方郵箱。
其實還有一個就是匯款水單，需要發送給對方。這一步其實可以省略。筆者申請時並沒有email匯款水單，只要對方確認匯款到帳即可。
大約5－7天后，對方發來第2封郵件，告訴你貴公司的編碼。此外還可以在網站上安裝一個鄧白氏電子標識——在網頁上嵌入指定腳本，則會在頁面上顯示一個D&B圖標，點擊圖標自動鏈接到D&B的網站並呈現你們公司的電子註冊信息。
登錄蘋果開發者網站iOS Dev Center，申請Apple Developer Program，只不過這次選擇的是iOS Enterprise Program鏈接（在頁面底部）。
點擊Apply Now，下一頁Continue，下一頁選擇“Use an existing Apple ID”，Continue。
下一頁，輸入你的Apple ID、密碼登錄。
後面就是確認註冊協議和填寫你的公司資料了（英文）。內容最好同鄧氏的一樣，否則對方會打電話來確認，需要更改。
填寫完公司資料，還要填寫委託人聯繫資料。注意委託人應該有代表公司簽字的授權（公司認可，他們會在電話裡確認）。
提交資料後，可以在郵箱裡收到蘋果的郵件，內容大概是感謝你提交了申請，申請的編號是多少，公司名稱、郵箱地址等等，如果你想看評審流程，可以登錄Member Center。
接下來就是等待蘋果的電話了。
這個過程大概要2－3天，對方會安排懂中文的人員來電話，如果沒什麼問題，接下來（電話之後幾分鐘）會收到蘋果的第2封郵件，大意是要你點擊郵件中的鏈接，查看一個協議（我不知道這個協議和第1個協議有什麼不同，反正我直接點同意了）。
協議同意後，顯示一個頁面，大意是你所申請的國家不支持在線購買蘋果產品（在線支付），需要你下載一個pdf的purchase form：
將它打印出來，根據要求填好，然後傳真給蘋果。
注意，國內信用卡支持美元支付的一般是Visa卡（如招行）和Master卡（如交行），一定要找那種卡上印有“Visa”或”Master”標誌的信用卡。
Cvc2 code是指信用卡背面的那串數字（7位）的末3位。
信用卡地址寫申請信用卡時登記的地址。
因為公司的傳真機無法發送國際傳真，我將purchase form掃描後發給了亞洲蘋果 chinadev@asia.apple.com , 請其轉交給 Billing團隊。
下次再給亞洲蘋果聯繫時，可以附上這個業務流水號。
然後3-5個工作日後，約早上6點多收到扣費成功短信（信用卡提供的功能）。登錄郵箱後，果然收到了蘋果的2封email，1封是發票，上面有你的發票號碼，單位報賬的時候把這封郵件內容打印出來就可以了。另1封是激活郵件，告訴你現在你的idp帳號已經生效了，你點擊那個“login now”按鈕可以登錄到member center，這時可以看到你的developer program overview的狀態已經改變。同時，Peoples中會包含一個成員，這個成員就是你註冊IDP時所綁定的開發者帳號（Apple ID），同時也是該IDP的Team Admin或Agent。
打開“鑰匙串”應用程序，修改偏好設置如下圖所示：
輸入你的email地址和名字。確保email地址和名字與你註冊為iOS開發者時登記的相一致。
勾選Saved to Disk（保存到磁盤）及Let me specify key pair information（指定密鑰對信息），然後點Continue。
當選擇了Let me specify key pair之後，會要求你指定文件保存位置。接下來按下圖所示指定密鑰對信息：
Continue，即生成了CSR文件。一旦生成CSR，在“登錄”鑰匙串中會生成一對密鑰對（一個私鑰，一個公鑰）。你可以在鑰匙串的密鑰欄中查看。
用企業版IDP綁定的Apple ID（跟製作CSR時要求輸的的可能不一致，這裡是註冊企業版時綁定的iOS開發者帳號，即Agent）登錄iOS Provision Portal 。
接下來點擊最下面的“ Choose file”按鈕，選擇所生成的CSR文件，然後點“Submit”。如果密鑰長度未設置未2048，Portal會拒絕CSR。
提交CSR後，Team管理員（Agent）會收到一封提醒郵件，主題為Certificate Request Requires Your Approval，提示你需要去同意該CSR。此時Agent需要登錄Portal去同意該CSR。但實際上，Agent也可能根本不需要去點“同意”，Portal幾秒鐘後就自動同意了——筆者遇到的情況就是這樣的。
Team 成員只能下載自己的iOS開發證書。Team管理員有權下載所有成員的公有證書。蘋果不接受CSR中的私鑰。私鑰僅對創建者有效，並且必須存儲在系統鑰匙串裡。
如果你在多台電腦上進行開發或者重裝系統，那麼把私鑰存儲在安全的地方是件很重要的事情。如果沒有私鑰，你無法在Xcode中籤名代碼並進行真機調試。
鑰匙串在生成CSR時，就會在“登錄”鑰匙串中創建一個私鑰。該私鑰和你的用戶帳號綁定，如果重裝OS導致該私鑰遺失，則該私鑰無法再次生成。如果你想在多台電腦上開發和調試，你必須將私鑰導入到每一台機器上：
所謂設備ID（device ID又稱UDID）是Apple設備上的40位16進制碼，每台Apple設備的device ID都是唯一的，Apple以此來識別不同的iOS設備。
我們通過在Provision Portal中錄入設備的device ID，可以允許開發者在指定真實設備上進行調試。在Provision Portal中最多允許輸入100個device ID。
因此，錄入device ID是後續製作Provision Profile的必需步驟（而Provision Profile又是真機調試的必需步驟）。
兩種獲取device ID的方式：
把Apple設備（iPhone,iPod）連接電腦，打開Xcode的Orgnizer：
把Apple設備（iPhone,iPod）連接電腦，打開iTunes：
那個40位16進制的數字就是device ID。
以Team管理員登錄Provision Portal，點擊Devices頁面中的“Add Device”按鈕，在其中輸入：
Device Name：設備名稱，輸入一個描述該設備的名字。
點擊提交即可。
App ID是識別不同應用程序的唯一編碼。如果你的程序要連接Apple Push Notification服務（一種push通知），需要用到App ID。如果應用程序之間要共享鑰匙串數據，也會用到App ID。總之，App ID在iOS設備上大量被使用。在這裡App ID的最大用處是製作真機調試用的Provision Profile（它需要提供一個App ID）。
以Agent或Team管理員登錄Provision Portal，點擊“App ID”頁面中的“New App ID”按鈕。
App ID Name：給這個App ID一個名字。如果存在多個App ID，每個App ID需要一個易於識別的名稱。
App ID：如前面所述，Bundle Seed ID是Apple分配的，其實這裡只需要你輸入Bundle Identifier。可以使用統配符*。
擁有了開發者證書（Development Certificate），只是表明你有權利在電腦上進行開發，在模擬器上運行程序，但你還不能在iPhone上運行你開發的程序。其實如果你只是在模擬器上調試程序的話，要不要開發者證書都無所謂，因為證書只是用來代碼簽名（Code Sign）的，如果在模擬器上跑的話，你可以選擇不簽名（don't code sign）。
如果要在真機上調試就不一樣了。它需要一個Provision Profile，沒有這個Provision Profile，蘋果設備無法安裝運行你開發的程序。這個Provision Profile中記錄了一些信息：開發者證書、開發者Apple ID、一系列設備ID（開發者可以使用哪幾部設備進行調試）。
Profile Name：輸入Profile的名字，隨意。
Certificate: 選擇開發者證書。
App ID：選擇一個App ID。
Devices：設備ID列表。
點擊“ Submit”，即會生成Development Provisioning Profile。
所有Team成員都可以下載Development Provision Profile。但只有Profile中記錄了設備ID的設備以及iOS開發者證書所指定的開發者能夠使用這個Profile。
在Xcode中打開工程，選中Target，打開info窗口，在Build面板中找到“Code Signing Identify”，打開並點擊下面的“Any iOS Device” ：
在彈出菜單菜單中選擇你的簽名，該簽名應當和一個灰色的Profile對應。這個Profile就是我們前面安裝的Development Provision Profile。例如，我們在7.1中創建的Profile的Profile Name為My First Development Provisioning Profile，那麼我們選擇的簽名就是位於“My First Development Provisioning Profile”（顯示為灰色）下面的Team Leader的開發證書。也就是說“My First Development Provisioning Profile”中綁定的開發證書是Team Leader簽名的。
把製作號的發布證書下載、安裝到本機。
但是發布用的Provision Profile稍有不同。企業版IDP只有兩種發布方式：In House和Ad Hoc。兩種Profile製作步驟稍有區別。用In House方式發布是企業版IDP真正區別於其他版本的IDP所在。我們重點介紹In House方式的發布。
以Team Admin登錄Provision Portal，打開“Provisioning Distribution”頁面。
Distribution Method：發布方式，選擇In House。
Profile Name：Profile名稱，用於區別多個Profile。
Distribution Certificate：選擇要在Profile中綁定的發布證書。
App ID：指定一個已有的AppID。
Devices(optional)：要綁定的device ID。由於In House方式可以在任何Apple 設備上發布，所以不需要設定Devices，這一項為空。
點擊“ Submit”，生成Profile。將Profile下載到本地進行安裝。方法：把Profile文件拖拽到Dock上的Xcode圖標。
以Admin或Agent登錄Provision Portal。打開“Provisioning Distribution”頁面。
與In House方式大同小異，只不過發布方式選擇Ad Hoc，同在Devices(optional)欄勾選要綁定的device ID，最多可選擇100個。
點擊“ Submit”，生成Profile。將Profile下載到本地進行安裝。
打開你的工程。在工程的info窗口的Configuration面板，從Configuration列表中選擇Release，點擊 “ Duplicate”按鈕，將復制出來的Configuration改名為Distribution。
打開Target的Info窗口，在Build面板，將Configuration修改為Distribution：
點擊“ Any iOS Device”，在彈出菜單中選擇對應Profile下對應的發布證書，這個Profile應該就是前面6.1中製作並安裝的In House方式製作的Distribution Provision Profile（還記得Profile Name嗎？）：
切換到Properties面板，在Identifier欄輸入Bundle Identifier。該Bundle Identifier應根據App ID填寫。
在工程窗口，選擇當前配置為Distribution：
打開Entitlements.plist，反選“get-task-allow”，保存。該選項允許其他進程（比如調試器）附加到你的程序，當然，在發布階段，這個選項應當設置為false。
注意，根據Apple的文檔，iOS 4.0/Xcode3.2.3之後創建的Entitlements文件不再包括get-task-allow選項——默認情況下，如果Entitlements中沒有get-task-allow選項，則不允許附加進程（即無法調試）。
在調試配置下運行時，你不需要Entitlements文件，因此是允許附加進程的（可以進行調試）。但是有時候，你已經有了一個Entitlements文件（比如你已經運行過Distribution配置），如果你再次運行Debug配置，則程序無法啟動，因為get-task-allow默認為false（iOS 4.0及Xcode3.2.3以後）。這種情況下，請手動添加一個boolean類型的get-task-allow鍵，並設置為false。
再次打開Target的Build設置面板。在“Code Signing Entitlements”中，輸入Entitlements.plist的文件名 ​​。
點擊“ Build”編譯。注意：你需要準備一個57*57像素的圖標，iPhone和iPod會在主屏上顯示該圖標。
選中工程文件夾Products下面的.app文件，然後點擊Action下拉菜單中的Reveal in Finder。
iPhone應用程序的安裝文件主要有兩種：.ipa格式和.app格式。前者是以.ipa為後綴名的文件（已經包含了ProvisionProfile文件），後者實際是以.app為後綴的文件夾（不包含ProvisionProfile文件）。因此，前者可以直接發布給用戶進行安裝，而後者需要和ProvisionProfile文件打包在一起進行發布。
把編譯後的.app文件和ProvisionProfile文件一起壓縮為rar/zip文件，即可發送給其他人進行安裝，或者發佈到網絡上以供下載。注意，不要使用Mac自帶的歸檔工具。因為windows使用ANSI編碼而Mac使用Unicode編碼，二者互不兼容，這樣使用歸檔工具壓縮出來的rar/zip包無法在windows下解開。你可以使用開源的壓縮工具keka：
keka能製作在windows下兼容的壓縮包。解壓縮後的文件可用後面介紹​​的2種方法之一進行安裝。如果一種方法不能安裝，可換用另一種方​​法。
Ad Hoc或In House發布的應用程序，可以將.app與Provision Profile文件打包在一起發送給用戶。用戶可以用兩種方式安裝：使用iTunes，或者使用iPhone配置使用工具。
iPhone配置工具是完全免費的，你可以從這裡下載：
安裝後會在“應用程序／實用工具”中生成一個快捷方式“ iPhone配置實用工具”。
如果Xcode出現Code sign錯誤：
同時在Organizer中出現下列提示：
則需要把鑰匙串中的所有證書和密鑰刪除，然後重新請求證書、修復provision profile、下載並安裝，一般可以得到解決。