超級簽名-原理/機(jī)制/技術(shù)細(xì)節(jié)-完全解析

簽名原理

簽名原理其實就一句話,使用了蘋果提供給開發(fā)者的Ad-Hoc分發(fā)通道博投,把安裝設(shè)備當(dāng)做開發(fā)設(shè)備進(jìn)行分發(fā)巡验。
既然簽名用是 Ad-Hoc ,那么 Ad-Hoc 所具有的優(yōu)劣勢也一并繼承了下來:

優(yōu)勢:

直接分發(fā)哥艇,安裝即可運行,不需要用戶做企業(yè)證書的信任操作
目前穩(wěn)定僻澎,不會有證書吊銷導(dǎo)致的業(yè)務(wù)風(fēng)險(后續(xù)蘋果政策風(fēng)險非常高)

缺點:

單開發(fā)者賬號的iPhone設(shè)備數(shù)量只有100個貌踏,導(dǎo)致分發(fā)成本非常高(99美元/1年/100個設(shè)備)
開發(fā)者賬號需要預(yù)先寫入安裝設(shè)備的UDID,在工具鏈不通的情況下窟勃,獲取用戶的UDID相對困難和繁瑣祖乳,而且手動寫入UDID不存在商用可行性,當(dāng)然目前這個缺點被解決了

整體架構(gòu)

接下來我們就看看整套機(jī)制是如何進(jìn)行的:


image.png

1.設(shè)備安裝描述文件后秉氧,會向服務(wù)器發(fā)送設(shè)備的UDID眷昆。
2.服務(wù)器收到UDID后,將UDID注冊到某個開發(fā)者賬號下。
3.再生成簽名用的描述文件亚斋,給IPA簽名作媚。
4.然后iPA傳Server,使用itms-services方式讓用戶下載帅刊。

技術(shù)細(xì)節(jié)

使用配置文件獲取UDID
蘋果公司允許開發(fā)者通過IOS設(shè)備和Web服務(wù)器之間的某個操作纸泡,來獲得IOS設(shè)備的UDID(包括其他的一些參數(shù))。這里的一個概述:

1.在你的Web服務(wù)器上創(chuàng)建一個.mobileconfig的XML格式的描述文件厚掷;
2.用戶在所有操作之前必須通過某個點擊操作完成.mobileconfig描述文件的安裝弟灼;
3.服務(wù)器需要的數(shù)據(jù)级解,比如:UDID冒黑,需要在.mobileconfig描述文件中配置好,以及服務(wù)器接收數(shù)據(jù)的URL地址勤哗;
4.當(dāng)用戶設(shè)備安裝描述文件后抡爹,設(shè)備會回調(diào)你設(shè)置的URL,如果你的URL返回302跳轉(zhuǎn)的話芒划,Safari瀏覽器會跳轉(zhuǎn)到你所給的地址冬竟;

Apple Developer Center 自動化工具

接下來的關(guān)鍵點就是如何在獲取到用戶的UDID之后,秒級完成注冊新的開發(fā)者設(shè)備+更新Provisioning Profile的民逼。 這里我們需要借助開源工具(Spaceship):

image.png

Spaceship公開了Apple Developer Center的API泵殴,而且執(zhí)行速度比解析開發(fā)者Web頁面快兩個數(shù)量級,從而在非常短的時間內(nèi)搞定Provisioning Profile拼苍。
這個框架解決了整套機(jī)制的關(guān)鍵問題笑诅,成為整個工具鏈的基石。其實某平臺早就完成了UDID獲取和應(yīng)用簽名分發(fā)的技術(shù)儲備疮鲫,只差這套API吆你。

下面是解析開發(fā)者Web頁面和直接訪問API的速度對比圖:


image.png

如何自動簽名封包

此處其實應(yīng)該有一萬個解決方案,通過命令行腳本/Python腳本/或者其他第三方都能實現(xiàn)俊犯。

這里推薦使用 Sigh 這個框架來解決這個問題妇多。


image.png

Sigh的用法和配置都非常簡單,一個純命令工具燕侠,豐富的配置選項(自行查閱文檔)者祖,活躍的社區(qū),完全夠用了绢彤。

直接上演示圖:

image.png

OTA 分發(fā)已簽名的應(yīng)用

emmmm 此處也應(yīng)該有一萬個解決方案咸包,那就選擇 AppDeploy 吧。入選原因非常簡單杖虾,這個框架有Logo(看臉的社會就是那么真實...)烂瘫。


image.png

可視化部署流程如下圖(同時支持命令行調(diào)用):


image.png

結(jié)語

通過開源社區(qū)的力量,我們成功搞清了整個機(jī)制上的關(guān)鍵技術(shù)點,必須要說fastlane團(tuán)隊非常優(yōu)秀的提供了工具鏈關(guān)鍵一環(huán)(Spaceship)坟比,從而使Ad-Hoc自動分發(fā)成為可能芦鳍。

蘋果對于App的分發(fā)審核管控可以說是非常嚴(yán)苛,這背后既有安全考慮葛账,也有壟斷利益柠衅。但無論如何,對于終端用戶都是利大于弊的措施籍琳,App審核保護(hù)了無數(shù)的手機(jī)用戶免受惡意程序的侵害菲宴。 個人強烈反對這種繞過審核的分發(fā)形式。同時我要指出趋急,分發(fā)平臺以這種情況繞過蘋果的審核是嚴(yán)重違反 APPLE 開發(fā)商計劃許可協(xié)議的3.3.3條款:

未經(jīng) Apple 預(yù)先書面核準(zhǔn)或依照第 3.3.25 條 (In-App Purchase API) 得到允許喝峦,應(yīng)用程序不可經(jīng)由 App Store、Custom App Distribution 或 TestFlight 以外的分銷渠道提供呜达、解鎖或激活附加的特征或功能谣蠢。

開源工具鏈
獲取設(shè)備UDID的第三方庫:https://github.com/shaojiankui/iOS-UDID-Safari
Apple Developer Center 自動化工具:https://github.com/fastlane/fastlane/tree/master/spaceship
自動簽名封包工具:https://github.com/fastlane/fastlane/tree/master/sigh
OTA 分發(fā)應(yīng)用工具:https://github.com/atelierdumobile/appdeploy

參考資料
Over-the-Air Profile Delivery Concepts(獲取設(shè)備UDID官方文檔):https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/OTASecurity/OTASecurity.html

APPLE 開發(fā)商計劃許可協(xié)議:https://download.developer.apple.com/Documentation/Apple_Developer_Program_License_Agreement/Apple_Developer_Program_License_Agreement_20181019_Chinese_Simplified.pdf

作者:YiiOS
鏈接:https://juejin.cn/post/6844903846284804103
來源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)查近,非商業(yè)轉(zhuǎn)載請注明出處眉踱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市霜威,隨后出現(xiàn)的幾起案子谈喳,更是在濱河造成了極大的恐慌,老刑警劉巖戈泼,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婿禽,死亡現(xiàn)場離奇詭異,居然都是意外死亡矮冬,警方通過查閱死者的電腦和手機(jī)谈宛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胎署,“玉大人吆录,你說我怎么就攤上這事∏砟粒” “怎么了恢筝?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長巨坊。 經(jīng)常有香客問我撬槽,道長,這世上最難降的妖魔是什么趾撵? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任侄柔,我火速辦了婚禮共啃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘暂题。我一直安慰自己移剪,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布薪者。 她就那樣靜靜地躺著纵苛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪言津。 梳的紋絲不亂的頭發(fā)上攻人,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音悬槽,去河邊找鬼怀吻。 笑死,一個胖子當(dāng)著我的面吹牛陷谱,可吹牛的內(nèi)容都是我干的烙博。 我是一名探鬼主播瑟蜈,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼烟逊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铺根?” 一聲冷哼從身側(cè)響起宪躯,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎位迂,沒想到半個月后访雪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡掂林,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年臣缀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泻帮。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡精置,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锣杂,到底是詐尸還是另有隱情脂倦,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布元莫,位于F島的核電站赖阻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏踱蠢。R本人自食惡果不足惜火欧,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苇侵,春花似錦离陶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哀军,卻和暖如春沉眶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杉适。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工谎倔, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猿推。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓片习,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹬叭。 傳聞我的和親對象是個殘疾皇子藕咏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

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

  • 摘抄自:超級簽名-原理/機(jī)制/技術(shù)細(xì)節(jié)-完全解析 超級簽名流程:演示 簽名原理: 所謂的超級簽名原理其實就是使用了...
    BigRoby閱讀 4,895評論 6 5
  • 由于蘋果的日益欺壓,蘋果的企業(yè)證書掉簽是越來越密集秽五,所以由此誕生了黑科技孽查,即所謂的超級簽名 超級簽名安裝流程演示 ...
    SapientiaWind閱讀 15,415評論 4 11
  • 超級簽名原理 簡單來說,就是把添加蘋果設(shè)備udid然后打包進(jìn)行真機(jī)測試的過程(如下面真機(jī)測試教程)坦喘,實現(xiàn)了自動化盲再!...
    大寶來巡山閱讀 382評論 0 1
  • 綜述: 設(shè)備安裝描述文件后,會向服務(wù)器發(fā)送設(shè)備的UDID瓣铣。(這個描述文件是獲取UDID的,需要在服務(wù)器配置) 服務(wù)...
    刃之劍閱讀 760評論 0 2
  • 摘抄自:超級簽名-原理/機(jī)制/技術(shù)細(xì)節(jié)-完全解析 蒲公英:超級簽名 shell腳本實現(xiàn)iOS包重簽名及代碼注入 反...
    瘋子擺攤賣回憶_595b閱讀 1,469評論 0 3