您的位置:極速下載站→ 資訊首頁 → 系統(tǒng)教程 → iPhone技巧 → 怎么解決ios應(yīng)用登錄不了的問題,你需要iOS超級簽名
時間:2019-08-19 14:35:16 作者:Bill 瀏覽量:65
怎么解決ios應(yīng)用登錄不了的問題,你需要iOS超級簽名
蘋果對于企業(yè)分發(fā)證書的頻繁吊銷,代簽名行業(yè)也隨之迭代出了黑科技。即所謂的超級簽名。
超級簽名安裝流程演示
從整個安裝流程上來看,超級簽名少了在設(shè)置里面信任企業(yè)證書的步驟,體驗(yàn)上要比企業(yè)分發(fā)更簡單和容易接受,同時分發(fā)價格也貴的離譜,不禁讓人好奇這新瓶里面到底裝的是什么酒。
今天就來幫大家解析一下其中的門門道道,以及這套機(jī)制的技術(shù)難點(diǎn)。
怎么解決ios應(yīng)用登錄不了的問題,你需要iOS超級簽名 圖一
image
據(jù)說某分發(fā)平臺價格表,來源網(wǎng)絡(luò),本人對圖片真實(shí)性不負(fù)責(zé)
簽名原理
簽名原理其實(shí)就一句話,使用了蘋果提供給開發(fā)者的Ad-Hoc分發(fā)通道,把安裝設(shè)備當(dāng)做開發(fā)設(shè)備進(jìn)行分發(fā)。
既然簽名用是 Ad-Hoc ,那么 Ad-Hoc 所具有的優(yōu)劣勢也一并繼承了下來:
優(yōu)勢:
直接分發(fā),安裝即可運(yùn)行,不需要用戶做企業(yè)證書的信任操作
目前穩(wěn)定,不會有證書吊銷導(dǎo)致的業(yè)務(wù)風(fēng)險(后續(xù)蘋果政策風(fēng)險非常高)
缺點(diǎn):
單開發(fā)者賬號的iPhone設(shè)備數(shù)量只有100個,導(dǎo)致分發(fā)成本非常高(99美元/1年/100個設(shè)備)
開發(fā)者賬號需要預(yù)先寫入安裝設(shè)備的UDID,在工具鏈不通的情況下,獲取用戶的UDID相對困難和繁瑣,而且手動寫入UDID不存在商用可行性,當(dāng)然目前這個缺點(diǎn)被解決了
整體架構(gòu)
接下來我們就看看整套機(jī)制是如何進(jìn)行的:
怎么解決ios應(yīng)用登錄不了的問題,你需要iOS超級簽名 圖二
整體架構(gòu)
設(shè)備安裝描述文件后,會向服務(wù)器發(fā)送設(shè)備的UDID。
服務(wù)器收到UDID后,將UDID注冊到某個開發(fā)者賬號下。
再生成簽名用的描述文件,給IPA簽名。
然后iPA傳Server,使用itms-services方式讓用戶下載。
技術(shù)細(xì)節(jié)
使用配置文件獲取UDID
蘋果公司允許開發(fā)者通過IOS設(shè)備和Web服務(wù)器之間的某個操作,來獲得IOS設(shè)備的UDID(包括其他的一些參數(shù))。這里的一個概述:
在你的Web服務(wù)器上創(chuàng)建一個.mobileconfig的XML格式的描述文件;
用戶在所有操作之前必須通過某個點(diǎn)擊操作完成.mobileconfig描述文件的安裝;
服務(wù)器需要的數(shù)據(jù),比如:UDID,需要在.mobileconfig描述文件中配置好,以及服務(wù)器接收數(shù)據(jù)的URL地址;
當(dāng)用戶設(shè)備安裝描述文件后,設(shè)備會回調(diào)你設(shè)置的URL,如果你的URL返回302跳轉(zhuǎn)的話,Safari瀏覽器會跳轉(zhuǎn)到你所給的地址;
Apple Developer Center 自動化工具
接下來的關(guān)鍵點(diǎn)就是如何在獲取到用戶的UDID之后,秒級完成注冊新的開發(fā)者設(shè)備+更新Provisioning Profile的。 這里我們需要借助開源工具(Spaceship):
怎么解決ios應(yīng)用登錄不了的問題,你需要iOS超級簽名 圖三
image
Spaceship公開了Apple Developer Center的API,而且執(zhí)行速度比解析開發(fā)者Web頁面快兩個數(shù)量級,從而在非常短的時間內(nèi)搞定Provisioning Profile。 這個框架解決了整套機(jī)制的關(guān)鍵問題,成為整個工具鏈的基石。其實(shí)某平臺早就完成了UDID獲取和應(yīng)用簽名分發(fā)的技術(shù)儲備,只差這套API。
下面是解析開發(fā)者Web頁面和直接訪問API的速度對比圖:
SpaceshipRecording
image
Cool。。。。。。 非常棒!再次為Spaceship鼓掌
如何自動簽名封包
此處其實(shí)應(yīng)該有一萬個解決方案,通過命令行腳本/Python腳本/或者其他第三方都能實(shí)現(xiàn)。
這里推薦使用 Sigh 這個框架來解決這個問題。