隨着蘋果對於企業分發證書的頻繁吊銷和日益收緊,代簽名行業也隨之迭代出了黑科技,即所謂的超級簽名。
從整個安裝流程上來看,超級簽名少了在設置裏面信任企業證書的步驟,體驗上要比企業分發更簡單和容易接受,同時分發價格也貴的離譜,不禁讓人好奇這新瓶裏面到底裝的是什麼酒。
今天就來幫大家解析一下其中的門門道道,以及這套機制的技術難點。
據說某分發平臺價格表,來源網絡,本人對圖片真實性不負責
簽名原理其實就一句話,使用了蘋果提供給開發者的Ad-Hoc分發通道,把安裝設備當做開發設備進行分發。
既然簽名用是 Ad-Hoc ,那麼 Ad-Hoc 所具有的優劣勢也一併繼承了下來:
優勢:
缺點:
接下來我們就看看整套機制是如何進行的:
蘋果公司允許開發者通過IOS設備和Web服務器之間的某個操作,來獲得IOS設備的UDID(包括其他的一些參數)。這裏的一個概述:
接下來的關鍵點就是如何在獲取到用戶的UDID之後,秒級完成註冊新的開發者設備+更新Provisioning Profile
的。 這裏我們需要藉助開源工具(Spaceship
):
Spaceship公開了Apple Developer Center的API,而且執行速度比解析開發者Web頁面快兩個數量級,從而在非常短的時間內搞定Provisioning Profile
。 這個框架解決了整套機制的關鍵問題,成爲整個工具鏈的基石。其實某平臺早就完成了UDID獲取和應用簽名分發的技術儲備,只差這套API。
下面是解析開發者Web頁面和直接訪問API的速度對比圖:
Cool!!!!!!! 非常棒!再次爲Spaceship鼓掌👏👏👏👏
此處其實應該有一萬個解決方案,通過命令行腳本/Python腳本/或者其他第三方都能實現。
這裏推薦使用 Sigh
這個框架來解決這個問題。
Sigh的用法和配置都非常簡單,一個純命令工具,豐富的配置選項(自行查閱文檔),活躍的社區,完全夠用了。
直接上演示圖:
emmmm 此處也應該有一萬個解決方案,那就選擇 AppDeploy
吧。入選原因非常簡單,這個框架有Logo(看臉的社會就是那麼真實...)。
可視化部署流程如下圖(同時支持命令行調用):
通過開源社區的力量,我們成功搞清了整個機制上的關鍵技術點,必須要說fastlane團隊非常優秀的提供了工具鏈關鍵一環(Spaceship),從而使Ad-Hoc自動分發成爲可能。
蘋果對於App的分發審覈管控可以說是非常嚴苛,這背後既有安全考慮,也有壟斷利益。但無論如何,對於終端用戶都是利大於弊的措施,App審覈保護了無數的手機用戶免受惡意程序的侵害。 個人強烈反對這種繞過審覈的分發形式。同時我要指出,分發平臺以這種情況繞過蘋果的審覈是嚴重違反 APPLE 開發商計劃許可協議的3.3.3條款:
未經 Apple 預先書面覈准或依照第 3.3.25 條 (In-App Purchase API) 得到允許,應用程序不可經由 App Store、Custom App Distribution 或 TestFlight 以外的分銷渠道提供、解鎖或**附加的特徵或功能。
獲取設備UDID的第三方庫:
Apple Developer Center 自動化工具:
自動簽名封包工具:
OTA 分發應用工具:
Over-the-Air Profile Delivery Concepts(獲取設備UDID官方文檔):developer.apple.com/library/arc…
APPLE 開發商計劃許可協議:download.developer.apple.com/Documentati…