iOS 支持以無線方式安裝自定的企業(yè)內(nèi)部應(yīng)用句狼,而無需使用 iTunes 或 App Store湖蜕。應(yīng)用的格式必須為 .ipa,并且使用企業(yè)內(nèi)部預(yù)置描述文件進(jìn)行構(gòu)建。無線安裝要求:
XML 清單文件(本節(jié)已有描述)
可讓設(shè)備訪問 Apple iTunes 服務(wù)器的網(wǎng)絡(luò)配置
對(duì)于 iOS?7.1 或更高版本褐捻,使用 HTTPS
為了安裝應(yīng)用,用戶使用特殊的 URL 前綴從您的網(wǎng)站上下載清單文件贸诚。您可以通過短信或電子郵件分發(fā)用于下載清單文件的 URL丢胚,或?qū)⑵淝度雱?chuàng)建的另一企業(yè)應(yīng)用中。
您負(fù)責(zé)設(shè)計(jì)和托管用于分發(fā)應(yīng)用的網(wǎng)站跨扮。請(qǐng)確定用戶已通過認(rèn)證(可能是使用基本認(rèn)證或基于目錄的認(rèn)證)序无,并確定網(wǎng)站可通過內(nèi)聯(lián)網(wǎng)或互聯(lián)網(wǎng)進(jìn)行訪問。您可以將應(yīng)用和清單文件放入隱藏目錄或任何可使用 HTTPS 讀取的位置衡创。
【注】創(chuàng)建自助服務(wù)門戶時(shí)帝嗡,請(qǐng)考慮在用戶的主屏幕中添加一個(gè) Web Clip,以便他們可以輕松返回門戶以獲取更多信息璃氢,如新的配置描述文件哟玷、推薦的 App?Store 應(yīng)用以及允許他們?cè)?MDM 解決方案中進(jìn)行注冊(cè)。
準(zhǔn)備以無線方式分發(fā)的企業(yè)內(nèi)部應(yīng)用
為準(zhǔn)備以無線方式分發(fā)的企業(yè)內(nèi)部應(yīng)用一也,請(qǐng)構(gòu)建歸檔版本(.ipa 文件)和用于啟用無線分發(fā)和應(yīng)用安裝的清單文件巢寡。
使用 Xcode 來創(chuàng)建應(yīng)用歸檔。使用分發(fā)證書給應(yīng)用簽名椰苟,并在歸檔中包括企業(yè)內(nèi)部預(yù)置描述文件抑月。有關(guān)構(gòu)建和歸檔應(yīng)用的更多信息,請(qǐng)?jiān)L問iOS 開發(fā)者網(wǎng)站或Xcode 幫助舆蝴。
關(guān)于無線清單文件
清單文件是一個(gè) XML plist 文件谦絮,可供 Apple 設(shè)備用來從您的 Web 服務(wù)器上查找菱皆、下載和安裝應(yīng)用。清單文件由 Xcode 創(chuàng)建挨稿,使用的是您在共享用于企業(yè)分發(fā)的歸檔應(yīng)用時(shí)所提供的信息仇轻。
以下欄是必填項(xiàng):
URL:應(yīng)用 (.ipa) 文件的完全限定 HTTPS URL
display-image:57 x 57 像素的 PNG 圖像,在下載和安裝過程中顯示奶甘。指定圖像的完全限定 URL
full-size-image:512 x 512 像素的 PNG 圖像篷店,表示 iTunes 中相應(yīng)的應(yīng)用
bundle-identifier:應(yīng)用的包標(biāo)識(shí)符,與 Xcode 項(xiàng)目中指定的完全一樣
bundle-version:應(yīng)用的包版本臭家,在 Xcode 項(xiàng)目中指定
title:下載和安裝過程中顯示的應(yīng)用的名稱
僅對(duì)于 iOS 8 中的“報(bào)刊雜志”應(yīng)用疲陕,以下欄必填:
newsstand-image:一張全尺寸 PNG 圖像,用于顯示在“報(bào)刊雜志”書架上
UINewsstandBindingEdge和UINewsstandBindingType:鍵必須和“報(bào)刊雜志”應(yīng)用的 info.plist 中的鍵匹配
UINewsstandApp:表示該應(yīng)用是“報(bào)刊雜志”應(yīng)用
樣本清單文件還包含可選鍵钉赁。例如蹄殃,如果應(yīng)用文件太大,并且想要在執(zhí)行錯(cuò)誤檢驗(yàn)(TCP 通信通常會(huì)執(zhí)行該檢驗(yàn))的基礎(chǔ)上確保下載的完整性你踩,可以使用 MD5 鍵诅岩。
通過指定項(xiàng)目數(shù)組的附加成員,您可以使用一個(gè)清單文件安裝多個(gè)應(yīng)用带膜。
構(gòu)建網(wǎng)站
將這些項(xiàng)目上傳到網(wǎng)站上可供已認(rèn)證的用戶訪問的區(qū)域:
應(yīng)用 (.ipa) 文件
清單 (.plist) 文件
您的網(wǎng)站可以是鏈接到清單文件的單個(gè)頁面吩谦。用戶輕點(diǎn) Web 鏈接后會(huì)下載清單文件,并觸發(fā)下載和安裝膝藕。
以下是示例鏈接:
請(qǐng)勿添加歸檔應(yīng)用 (.ipa) 的網(wǎng)站鏈接式廷。載入清單文件時(shí),設(shè)備會(huì)下載該 .ipa 文件芭挽。雖然 URL 的協(xié)議部分是“itms-services”滑废,但 iTunes Store 并不參與此過程。
此外袜爪,請(qǐng)確定 .ipa 文件可通過 HTTPS 進(jìn)行訪問蠕趁,并且您的站點(diǎn)已使用 iOS 信任的證書進(jìn)行了簽名。如果自簽名證書沒有受信任的錨點(diǎn)并且無法由 iOS 設(shè)備驗(yàn)證饿敲,安裝會(huì)失敗妻导。
設(shè)定服務(wù)器 MIME 類型
您可能需要配置 Web 服務(wù)器逛绵,讓清單文件和應(yīng)用文件可正確傳輸怀各。
對(duì)于 Server 應(yīng)用,請(qǐng)將 MIME 類型添加到網(wǎng)頁服務(wù)的 MIME 類型設(shè)置:
application/octet-stream ipa
text/xml plist
對(duì)于微軟的互聯(lián)網(wǎng)信息服務(wù)器 (IIS)术浪,請(qǐng)使用 IIS Manager 在服務(wù)器的“屬性”頁面中添加 MIME 類型:
.ipa application/octet-stream
.plist text/xml
無線 iOS 應(yīng)用分發(fā)故障診斷
如果無線應(yīng)用分發(fā)失敗瓢对,并顯示“無法下載”信息:
請(qǐng)確定應(yīng)用已正確進(jìn)行簽名。測(cè)試方法是使用 Apple Configurator 2 將它安裝到設(shè)備上胰苏,然后查看是否發(fā)生錯(cuò)誤硕蛹。
請(qǐng)確定清單文件的鏈接是否正確,清單文件是否可供網(wǎng)絡(luò)用戶訪問。
請(qǐng)確定 .ipa 文件(在清單文件中)的 URL 是否正確法焰,并且該 .ipa 文件是否可供網(wǎng)絡(luò)用戶通過 HTTPS 訪問秧荆。
網(wǎng)絡(luò)配置要求
如果設(shè)備連接到封閉式內(nèi)部網(wǎng)絡(luò),那么您必須允許它訪問以下站點(diǎn):
https://ax.init.itunes.apple.com:使用蜂窩移動(dòng)網(wǎng)絡(luò)下載應(yīng)用時(shí)埃仪,設(shè)備會(huì)限制其當(dāng)前文件大小乙濒。如果無法訪問此站點(diǎn),安裝可能會(huì)失敗卵蛉。
https://ppq.apple.com:設(shè)備會(huì)聯(lián)系此網(wǎng)站颁股,檢查用來給預(yù)置描述文件簽名的分發(fā)證書狀態(tài)。
提供更新的應(yīng)用
您自己分發(fā)的應(yīng)用不會(huì)自動(dòng)更新傻丝。有新版本時(shí)甘有,應(yīng)通知用戶進(jìn)行更新并指導(dǎo)他們安裝應(yīng)用。請(qǐng)考慮讓應(yīng)用檢查更新葡缰,并在打開應(yīng)用時(shí)通知用戶亏掀。請(qǐng)確保通知中提供了 itms-services 鏈接。您還可以使用應(yīng)用內(nèi)部的 openURL 來安裝更新泛释。
如果想要用戶保留他們?cè)O(shè)備上儲(chǔ)存的應(yīng)用數(shù)據(jù)幌氮,請(qǐng)確保新版本與要替換的版本使用的捆綁標(biāo)識(shí)符相同,并告知用戶在安裝新版本之前不要?jiǎng)h除舊版本胁澳。
預(yù)置描述文件過期之前该互,請(qǐng)?jiān)L問iOS 開發(fā)者網(wǎng)站為應(yīng)用創(chuàng)建新描述文件。對(duì)于首次安裝應(yīng)用的用戶韭畸,請(qǐng)使用新預(yù)置描述文件創(chuàng)建新應(yīng)用歸檔 (.ipa)宇智。
如果用戶已有該應(yīng)用,您不妨設(shè)定發(fā)布下一個(gè)版本的時(shí)間胰丁,并在該版本中包括新預(yù)置描述文件随橘,這樣用戶在使用應(yīng)用工作時(shí)不會(huì)被打斷。如果不想這樣做锦庸,您可以僅分發(fā)新的 .mobileprovision 文件机蔗,這樣用戶便不必再次安裝該應(yīng)用。新的預(yù)置描述文件會(huì)覆蓋應(yīng)用歸檔中已有的描述文件甘萧。
分發(fā)預(yù)置描述文件自簽發(fā)之日起 12 個(gè)月后過期萝嘁。過期后,系統(tǒng)會(huì)刪除描述文件扬卷,應(yīng)用將不會(huì)啟動(dòng)牙言。
您可以使用 MDM 安裝和管理預(yù)置描述文件,然后用戶通過應(yīng)用更新或使用 MDM 進(jìn)行下載并安裝怪得。
如果您的分發(fā)證書過期咱枉,應(yīng)用將不會(huì)啟動(dòng)卑硫,而您需要使用新的分發(fā)證書來重新構(gòu)建應(yīng)用。分發(fā)證書自簽發(fā)之日起三年內(nèi)有效蚕断,或者在您的 Apple Developer Enterprise Program(Apple 開發(fā)者企業(yè)級(jí)計(jì)劃)成員資格過期之前一直有效欢伏,二者以先到者為準(zhǔn)。若要防止證書過期亿乳,請(qǐng)確保在成員資格過期之前先進(jìn)行續(xù)訂颜懊。
您可以擁有同時(shí)處于活躍狀態(tài)的兩個(gè)證書,并且它們彼此獨(dú)立风皿。第二個(gè)證書提供了一個(gè)重疊期河爹,讓您能夠在第一個(gè)證書過期前更新應(yīng)用。從 iOS Dev Center 請(qǐng)求第二個(gè)分發(fā)證書時(shí)桐款,請(qǐng)確保不要撤銷第一個(gè)證書咸这。
證書驗(yàn)證
用戶首次打開應(yīng)用時(shí),系統(tǒng)會(huì)通過聯(lián)系 Apple 的 OCSP 服務(wù)器來驗(yàn)證分發(fā)證書魔眨。如果證書已撤銷媳维,應(yīng)用將不會(huì)啟動(dòng)。為了驗(yàn)證狀態(tài)遏暴,設(shè)備必須能夠訪問 ocsp.apple.com侄刽。
OCSP 響應(yīng)會(huì)在設(shè)備上緩存一段時(shí)間(由 OCSP 服務(wù)器指定),當(dāng)前為 3 到 7 天之間朋凉。在重新啟動(dòng)設(shè)備和緩存的響應(yīng)過期之前州丹,將不會(huì)再次檢查證書的有效性。如果當(dāng)時(shí)收到撤銷命令杂彭,系統(tǒng)將阻止應(yīng)用運(yùn)行墓毒。
【警告】撤銷分發(fā)證書會(huì)導(dǎo)致使用該證書簽名的所有應(yīng)用失效。只有萬不得已時(shí)才應(yīng)撤銷證書亲怠,比如確定專用密鑰已丟失或確信證書已遭破解所计。
示例 iOS 應(yīng)用清單文件
itemsassetskindsoftware-packagemd5-size10485760md5s41fa64bb7a7cae5a46bfb45821ac8bba51fa64bb7a7cae5a46bfb45821ac8bbaurlhttps://www.example.com/apps/foo.ipakinddisplay-imageneeds-shineurlhttps://www.example.com/image.57x57.pngkindfull-size-imagemd561fa64bb7a7cae5a46bfb45821ac8bbaneeds-shineurlhttps://www.example.com/image.512x512.jpgmetadatabundle-identifiercom.example.fooappbundle-version1.0kindsoftwaresubtitleAppletitleExample Corporate App