實(shí)現(xiàn)類似自動(dòng)更新下載機(jī)制(fir/蒲公英等實(shí)現(xiàn)原理)

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)刊雜志”書架上

UINewsstandBindingEdgeUINewsstandBindingType:鍵必須和“報(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ā)下載和安裝膝藕。

以下是示例鏈接:

Install App

請(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



1.清單plist文件怎么生成




2.所需要基本三個(gè)文件


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市团秽,隨后出現(xiàn)的幾起案子主胧,更是在濱河造成了極大的恐慌,老刑警劉巖习勤,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踪栋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡姻报,警方通過查閱死者的電腦和手機(jī)己英,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門间螟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吴旋,“玉大人损肛,你說我怎么就攤上這事∪偕” “怎么了治拿?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長笆焰。 經(jīng)常有香客問我劫谅,道長,這世上最難降的妖魔是什么嚷掠? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任捏检,我火速辦了婚禮,結(jié)果婚禮上不皆,老公的妹妹穿的比我還像新娘贯城。我一直安慰自己,他們只是感情好霹娄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布能犯。 她就那樣靜靜地躺著,像睡著了一般犬耻。 火紅的嫁衣襯著肌膚如雪踩晶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天枕磁,我揣著相機(jī)與錄音渡蜻,去河邊找鬼。 笑死计济,一個(gè)胖子當(dāng)著我的面吹牛晴楔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峭咒,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼税弃,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了凑队?” 一聲冷哼從身側(cè)響起则果,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎漩氨,沒想到半個(gè)月后西壮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叫惊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年款青,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霍狰。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抡草,死狀恐怖饰及,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情康震,我是刑警寧澤燎含,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腿短,受9級(jí)特大地震影響屏箍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜橘忱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一赴魁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钝诚,春花似錦尚粘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至祈噪,卻和暖如春泽铛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辑鲤。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工盔腔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人月褥。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓弛随,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宁赤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舀透,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容