蘋果AppStore上線審核系列:延遲審核的那些事

企業版IDP的申請及“In House”發佈

企業版IDP,即iOS Development Enterprise Program。注意是$299/Year那種,並不是$99/Year的那種。

這種方式的IDP其最大的好處在於:可以發佈“In House”應用。

首先要明確否需申請企業證書,畢竟申請證書的時間非常長,其次還要有跨國公司的資質不然基本申請不笑來。

如公司為了節省時間及費用也可以在第三方代簽名,代簽名的優勢在於可以縮短時間週期,即使不通過App Store審核也可以讓用戶在移動端使用。

什麼是企業級發佈

這種應用使用一種叫做“In House Distribution Provisioning Profile”的文件進行發佈,不能發佈到Apple Shop進行銷售,也不需要經過Apple的評審。你可以把“In House”應用通過任何方式發佈給你的企業員工、用戶及其他你認可的任何人,尤其適合於企業應用的開發。

申請企業級認證步驟

網上關於個人版/公司版IDP申請流程,以及將應用發佈到蘋果商店的介紹有很多,但關於企業版IDP以及In House應用的討論非常之少(尤其國內)。下面,筆者將對這兩方面的問題進行一個全面細緻的介紹。

1、申請Apple ID

這個步驟就不說了。

2、申請鄧白氏編碼

鄧氏編碼是美國聯邦政府推薦使用的企業機構編碼。可以看成是美國版的“組織機構代碼”,只不過已經得到了聯合國、澳大利亞政府、歐盟及美國政府的承認,成為了全球企業標準。

蘋果公司需要鄧氏編碼才能申請IDP企業版。這倒不是對國內企業的歧視,而是出於的美國商業習慣。在美國所有的採購合同和商業合同中,都會要求供應商提供一個DUNS(鄧氏編碼),否則對方可能不會跟你籤合同。因為所有的美國企業都使用D&B公司的數據庫,這樣才能保證所有企業編碼不會重複。

申請鄧氏編碼在D&B即可:

中文網站“華夏鄧白氏”:

在網站上提交註冊申請後,等待1-2天,對方人員會跟你聯繫(Email)。

原來以為申請會很麻煩(交流上),但實際上是由華夏鄧白氏的中籍文員跟你聯繫的。

鄧白氏註冊服務有幾個版本,收費情況也不一樣。一開始收到的郵件是“實地核實”的版本,報價15200/2年。

後來經與北京蘋果聯繫,只需要購買最基本的“標準版”即可,報價8600元/2年。

聯繫時一定要強調是購買標準版服務(最便宜),否則你可能會花冤枉錢。

收到郵件後,把申請表、協議打印出來,填好並加蓋公章,然後加上企業營業執照副本、掃描為電子的,發給對方郵箱。

其實還有一個就是匯款水單(小票),需要發送給對方。這一步其實可以省略。筆者申請時並沒有email匯款水單 ,只要對方確認匯款到帳即可。

大約5-7天后,對方發來第2封郵件,告訴你貴公司的編碼。此外還可以在網站上安裝一個鄧白氏電子標識——在網頁上嵌入指定腳本,則會在頁面上顯示一個D&B圖標,點擊圖標自動鏈接到D&B的網站並呈現你們公司的電子註冊信息。

3、申請IDP企業版

登錄蘋果開發者網站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掃描後發給了亞洲蘋果 [email protected] , 請其轉交給 Billing團隊。

亞洲蘋果幾分鐘後自動回覆了一封郵件,並在信中附了一個業務流水號: Follow-Up: 149653 xxx

下次再給亞洲蘋果聯繫時,可以附上這個業務流水號。

然後3-5個工作日後,約早上6點多收到扣費成功短信(信用卡提供的功能)。登錄郵箱後,果然收到了蘋果的2封email,1封是發票,上面有你的發票號碼,單位報賬的時候把這封郵件內容打印出來就可以了。另1封是激活郵件,告訴你現在你的idp帳號已經生效了,你點擊那個“login now”按鈕可以登錄到member center,這時可以看到你的developer program overview的狀態已經改變。同時,Peoples中會包含一個成員,這個成員就是你註冊IDP時所綁定的開發者帳號(Apple ID),同時也是該IDP的Team Admin或Agent。

4、製作iOS 開發者證書

4.1 在本機生成證書請求CSR

打開“鑰匙串”應用程序,修改偏好設置如下圖所示:

選擇菜單“鑰匙串訪問 -> 證書助理-> 從證書頒發機構求證書”.

注意,如果此時密鑰中的某個私鑰處於選中狀態,則菜單會變為“鑰匙串訪問->證書助理->用從證書頒發機構求證書”,這樣製作出來的CSR是無效的。

輸入你的email地址和名字。確保email地址和名字與你註冊為iOS開發者時登記的相一致。

勾選Saved to Disk(保存到磁盤)及Let me specify key pair information(指定密鑰對信息),然後點Continue。

當選擇了Let me specify key pair之後,會要求你指定文件保存位置。接下來按下圖所示指定密鑰對信息:

Continue,即生成了CSR文件。一旦生成CSR,在“登錄”鑰匙串中會生成一對密鑰對(一個私鑰,一個公鑰)。你可以在鑰匙串的密鑰欄中查看。

4.2提交CSR文件

用企業版IDP綁定的Apple ID( 跟製作CSR時要求輸的的可能不一致,這裡是註冊企業版時綁定的iOS開發者帳號,即Agent)登錄iOS Provision Portal 。

點擊“Certificates-> Development”中的“Add Certificate”按鈕。

接下來點擊最下面的“Choose file”按鈕,選擇所生成的CSR文件,然後點 “Submit”。如果密鑰長度未設置未2048,Portal會拒絕CSR。

提交CSR後,Team管理員(Agent)會收到一封提醒郵件,主題為Certificate Request Requires Your Approval,提示你需要去同意該CSR。此時Agent需要登錄Portal去同意該CSR。但實際上,Agent也可能根本不需要去點“同意”,Portal幾秒鐘後就自動同意了——筆者遇到的情況就是這樣的。

4.3 下載並安裝開發者證書

如果機器上未安裝WWDR證書,請點擊“Certificate-> Distribution”中的鏈接“Saved Linked File to Downloads”,以下載WWDR證書,並通過雙擊WWDR證書進行安裝。

在“Certificate -> Development”中, 在Your Certificate下會列出當前有效的開發者證書。 點擊“Download”,即可下載到本機。下載後雙擊,即可安裝到本機。可以在鑰匙串“證書”一欄中查看到導入的開發證書。

Team 成員只能下載自己的iOS開發證書。Team管理員有權下載所有成員的公有證書。蘋果不接受CSR中的私鑰。私鑰僅對創建者有效,並且必須存儲在系統鑰匙串裡。

4.4 保存私鑰並遷移到其他系統

如果你在多臺電腦上進行開發或者重裝系統,那麼把私鑰存儲在安全的地方是件很重要的事情。如果沒有私鑰,你無法在Xcode中籤名代碼並進行真機調試。

鑰匙串在生成CSR時,就會在“登錄”鑰匙串中創建一個私鑰。該私鑰和你的用戶帳號綁定,如果重裝OS導致該私鑰遺失,則該私鑰無法再次生成。如果你想在多臺電腦上開發和調試,你必須將私鑰導入到每一臺機器上:

在鑰匙串訪問程序中,選擇登錄鑰匙串的“密鑰”。可以看到有許多密鑰對,選擇與你的開發者證書相對應的私鑰(還記得創建CSR時要你輸入的郵箱地址和名字嗎?那個名字會顯示在私鑰的名字上)。然後選擇菜單“文件->導出項目…”,將私鑰保存為.p12格式(Personal Information Exchange)。當提示輸入密碼時,設置一個密碼並記住它,它會在導入.p12文件時使用。現住,你可以把.p12文件拷貝到其他機器上並雙擊它進行安裝,這時會提示你輸入導出私鑰時設置的密碼。

5、設備IDs

所謂設備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又是真機調試的必需步驟)。

5.1獲取device ID

兩種獲取device ID的方式:

把Apple設備(iPhone,iPod)連接電腦,打開Xcode的Orgnizer:

把Apple設備(iPhone,iPod)連接電腦,打開iTunes:

那個40位16進制的數字就是device ID。

5.2添加單個device ID

以Team管理員登錄Provision Portal,點擊Devices頁面中的“Add Device”按鈕,在其中輸入:

Device Name:設備名稱,輸入一個描述該設備的名字。

UDID:即device ID。

點擊提交即可。

6、創建App ID

App ID是識別不同應用程序的唯一編碼。如果你的程序要連接Apple Push Notification服務(一種push通知),需要用到App ID。如果應用程序之間要共享鑰匙串數據,也會用到App ID。總之,App ID在iOS設備上大量被使用。在這裡App ID的最大用處是製作真機調試用的Provision Profile(它需要提供一個App ID)。

一個App ID有兩部分構成:一個10位字符的Bundle Seed ID前綴,這個Bundle Seed ID由Apple分配,全球唯一,保證不會重複;一個Bundle Identifier後綴,這個Bundle Identifier由Team管理員指派,Apple建議用反域名規則命名這個Bundle Identifier。例如:8E549T7128.com.apple.AddressBook.

如果你寫了一系列應用程序,它們共用相同的鑰匙串(如共用密碼),或者根本就不使用鑰匙串訪問,你可以只創建一個App ID,所有的應用程序都使用以星號結尾的App ID。這個星號就是通配符,只能用於App ID最後一個字符。例如,這個App ID可以是:R2T24EVAEE.com.domainname.* 或者 R2T24EVAEE.*

6.1創建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。可以使用統配符*。

7、製作開發者Provision Profile

擁有了開發者證書(Development Certificate),只是表明你有權利在電腦上進行開發,在模擬器上運行程序,但你還不能在iPhone上運行你開發的程序。其實如果你只是在模擬器上調試程序的話,要不要開發者證書都無所謂,因為證書只是用來代碼簽名(Code Sign)的,如果在模擬器上跑的話,你可以選擇不簽名(don’t code sign)。

如果要在真機上調試就不一樣了。它需要一個Provision Profile,沒有這個Provision Profile,蘋果設備無法安裝運行你開發的程序。這個Provision Profile中記錄了一些信息:開發者證書、開發者Apple ID、一系列設備ID(開發者可以使用哪幾部設備進行調試)。

7.1創建開發者Provision Profile

以Agent登錄Provision Portal,在“Provisioning->Development”,點擊“New Profile”按鈕。

Profile Name:輸入Profile的名字,隨意。

Certificate:選擇開發者證書。

App ID:選擇一個App ID。

Devices:設備ID列表。

蘋果AppStore上線審核系列:延遲審核的那些事


點擊“Submit”,即會生成Development Provisioning Profile。


分享到:


相關文章: