說說 iOS 非 AppStore 安裝App的方法

一、前言

關於 iOS 安裝 App 的方法,相信熟悉 iOS 的朋友都知道,若是是越獄設備,隨便搞。可是,現實中,大部分用戶都是小白,不會本身去越獄,安全是一方面。因此,普通狀況下,AppStore 一家獨大,企業帳號能夠玩一玩的狀況,這也是蘋果優秀的地方! 今天就是想說說,關於新出的玩法~html

二、帳號證書類型

帳號類型 價格 發佈到AppStore? 支持安裝設置數量 申請條件
我的帳號 $99 能夠 100 無限制
公司帳號 $99 能夠 100 DUNS編碼
企業帳號 $299 不能夠 無限制 DUNS編碼
教育帳號 $0 能夠 100 教育機構

經過這個表,就知道普通狀況下,若是讓用戶安裝App,只能是企業帳號可行,而企業帳號蘋果當初只是想讓那些只流通在企業內部使用的App使用,如今發展成了,非AppStore渠道的安裝方式! 灰產和各大第三方渠道xx裝機xx助手。固然,這個不是今天的主題,之後有機會在慢慢說~ios

三、新安裝方式

經過上面的表格,除了企業帳號,其它類型的帳號,也是能夠安裝App到設備上,缺點有2個:git

  • 要先添加 UDID 到證書
  • 一年只能添加一百臺設備且刪除不恢復

基於這2點,正常狀況下,沒有人會想到用這樣的方法提供安裝App,但如今的狀況不同,蘋果今天的審覈已經很嚴格,基本過不了審覈,另外一方面企業帳號,被蘋果封殺和難申請,已經15萬元都買不到!github

如今,這終於成爲新的安裝方式!那就要解決上面說到的 2 個缺點, UDID 獲取,若是讓普通用戶本身獲取,而後提交在,在添加證書,在,,,, 這個流程太長!! 因此,仍是有解決方案! 而,100臺設備限制無解,只能多準備n個開發者帳號啊!!瀏覽器

原理:安全

經過網頁,用戶接受受權就拿到iOS設備的UDID ,而後把你的UDID添加到他們的證書裏面,用這個新證書從新簽名原來的IPA包,此時,你的UDID在IPA包的證書裏面,這樣,你的iOS設備就能下載這個IPA包啊服務器

四、UDID 獲取

UDID (Unique Device Identifier),惟一標示符,是iOS設備的一個惟一識別碼,每臺iOS設備都有一個獨一無二的編碼,UDID其實也是在設備量產的時候,生成隨機的UUID寫入到iOS設備硬件或者某一塊存儲器中,因此變成了固定的徹底不會改變的一個標識,用來區別每個惟一的iOS設備,包括 iPhones, iPads, 以及 iPod touches。app

MDM

iOS支持企業級的MDM(Mobile Device Managment),也就是所謂的移動設備管理,目的就是讓企業可以方便的管理 iPhone、iPad等移動設備。具體的作法是經過在系統中安裝配置文件(Profiles)的方式實現各類功能,設備管理,設備安全,獲取設備信息,設備配置,備份和恢復等幾類功能,能夠根據不一樣應用場景實現不少具體小功能。post

經過 Safari 瀏覽器獲取iOS設備UDID步驟

蘋果公司容許開發者經過iOS設備和Web服務器之間的某個操做(其實就是MDM的獲取設備信息功能),來得到IOS設備的UDID(包括其餘的一些參數)。如下爲簡要概述: 一、在你的Web服務器上建立一個.mobileconfig的XML格式的描述文件; 二、用戶在全部操做以前必須經過某個點擊操做完成.mobileconfig描述文件的安裝; 三、服務器須要的數據,好比:UDID,須要在.mobileconfig描述文件中配置好,以及服務器接收數據的URL地址; 四、當用戶設備完成數據的手機後,返回提示給客戶端用戶;ui

20190507-Device-registration-process-ota_developer_flow_chart.jpg

具體流程可參考文章:

經過Safari瀏覽器獲取iOS設備UDID(設備惟一標識符)-天狐博客

具體後臺開發代碼可參考:

shaojiankui/iOS-UDID-Safari: iOS-UDID-Safari,(不能上架Appstore!!!)經過Safari獲取iOS設備真實UDID,use safari and mobileconfig get ios device real udid

添加 UDID 到證書

TODO

IPA 包重簽名

TODO

從 Safari 安裝 IPA 包

TODO

總結

其實,這個做爲一個創新的安裝 App 的方式,不掉包! 已是企業證書沒法比的,並且,不須要用戶到設置裏點擊驗證證書! 徹底在 Safari 裏完成整個安裝流程,確實是舉足輕重的一步,將來將怎麼樣發展?期待吧!

  • 2019.05.26 更新 由於以前比較忙部分文章內容沒有給出方案,博主想打算繼續寫完時,發現已經有同志完成了,超級簽名-原理/機制/技術細節-徹底解析 - 掘金,因此,本文就不在重複給出方案啦(固然,能夠本身根據實現須要定製本身的簽名流,之後有機會作這一塊在給你們分享吧),你們有什麼不明白的,討論區一塊兒交流~

參考


  • 若有疑問,歡迎在評論區一塊兒討論!
  • 若有不正確的地方,歡迎指導!
> 注:本文首發於 [iHTCboy's blog](https://iHTCboy.com),如若轉載,請注來源
相關文章
相關標籤/搜索