iOS超級(jí)簽名原理

蘋果超級(jí)簽名原理

原帖:https://blog.csdn.net/wei371522/article/details/94401276
蘋果超級(jí)簽比企業(yè)簽的優(yōu)勢(shì)在不會(huì)掉簽拂玻,安裝后永久使用馅而。

一.首先介紹下已經(jīng)實(shí)現(xiàn)超級(jí)簽名的第三方公司

1.蒲公英
2.亙古科技
3.云打包

二.最終要實(shí)現(xiàn)的效果

三.具體原理

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

優(yōu)點(diǎn):

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

缺點(diǎn):

單開發(fā)者賬號(hào)的iPhone設(shè)備數(shù)量只有100個(gè)歧匈,導(dǎo)致分發(fā)成本非常高(99美元/1年/100個(gè)設(shè)備)
開發(fā)者賬號(hào)需要預(yù)先寫入安裝設(shè)備的UDID,在工具鏈不通的情況下砰嘁,獲取用戶的UDID相對(duì)困難和繁瑣件炉,而且手動(dòng)寫入U(xiǎn)DID不存在商用可行性勘究,當(dāng)然目前這個(gè)缺點(diǎn)被解決了

整體架構(gòu)

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


整體架構(gòu)

1.設(shè)備安裝描述文件后,會(huì)向服務(wù)器發(fā)送設(shè)備的UDID斟冕。
2.服務(wù)器收到UDID后口糕,將UDID注冊(cè)到某個(gè)開發(fā)者賬號(hào)下。
3.再生成簽名用的描述文件磕蛇,給IPA簽名走净。
4.然后iPA傳Server,使用itms-services方式讓用戶下載孤里。

Apple Developer Center 自動(dòng)化工具
接下來的關(guān)鍵點(diǎn)就是如何在獲取到用戶的UDID之后,秒級(jí)完成注冊(cè)新的開發(fā)者設(shè)備+更新Provisioning Profile的橘洞。 這里我們需要借助開源工具(Spaceship):

技術(shù)細(xì)節(jié)
使用配置文件獲取UDID
蘋果公司允許開發(fā)者通過IOS設(shè)備和Web服務(wù)器之間的某個(gè)操作捌袜,來獲得IOS設(shè)備的UDID(包括其他的一些參數(shù))。這里的一個(gè)概述:
1.在你的Web服務(wù)器上創(chuàng)建一個(gè).mobileconfig的XML格式的描述文件炸枣;
2.用戶在所有操作之前必須通過某個(gè)點(diǎn)擊操作完成.mobileconfig描述文件的安裝虏等;
3.服務(wù)器需要的數(shù)據(jù),比如:UDID适肠,需要在.mobileconfig描述文件中配置好霍衫,以及服務(wù)器接收數(shù)據(jù)的URL地址;
4.當(dāng)用戶設(shè)備安裝描述文件后侯养,設(shè)備會(huì)回調(diào)你設(shè)置的URL敦跌,如果你的URL返回302跳轉(zhuǎn)的話,Safari瀏覽器會(huì)跳轉(zhuǎn)到你所給的地址逛揩;
5.mobileconifg寫法

 <!--參考:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/ConfigurationProfileExamples/ConfigurationProfileExamples.html-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <dict>
            <key>URL</key>
            <string>http://dev.skyfox.org/udid/receive.php</string> <!--接收數(shù)據(jù)的接口地址-->
            <key>DeviceAttributes</key>
            <array>
                <string>UDID</string>
                <string>IMEI</string>
                <string>ICCID</string>
                <string>VERSION</string>
                <string>PRODUCT</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>dev.skyfox.org</string>  <!--組織名稱-->
        <key>PayloadDisplayName</key>
        <string>查詢?cè)O(shè)備UDID</string>  <!--安裝時(shí)顯示的標(biāo)題-->
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>3C4DC7D2-E475-3375-489C-0BB8D737A653</string>  <!--自己隨機(jī)填寫的唯一字符串-->
        <key>PayloadIdentifier</key>
        <string>dev.skyfox.profile-service</string>
        <key>PayloadDescription</key>
        <string>本文件僅用來獲取設(shè)備ID</string>   <!--描述-->
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>

獲取設(shè)備UDID的第三方庫(kù)
獲取UDID第三方庫(kù)

接下來就是獲取到UDID柠傍,注冊(cè)新的開發(fā)者設(shè)備+更新Provisioning Profile的
Apple Developer Center 自動(dòng)化工具:
Apple Developer Center

自動(dòng)簽名封包工具:
自動(dòng)簽名封包工具

OTA 分發(fā)應(yīng)用工具:
OTA分發(fā)應(yīng)用工具

Over-the-Air Profile Delivery Concepts(獲取設(shè)備UDID官方文檔):
獲取設(shè)備UDID官方文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辩稽,隨后出現(xiàn)的幾起案子惧笛,更是在濱河造成了極大的恐慌,老刑警劉巖逞泄,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件患整,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡喷众,警方通過查閱死者的電腦和手機(jī)各谚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侮腹,“玉大人嘲碧,你說我怎么就攤上這事「缸瑁” “怎么了愈涩?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵望抽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我履婉,道長(zhǎng)煤篙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任毁腿,我火速辦了婚禮辑奈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘已烤。我一直安慰自己鸠窗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布胯究。 她就那樣靜靜地躺著稍计,像睡著了一般。 火紅的嫁衣襯著肌膚如雪裕循。 梳的紋絲不亂的頭發(fā)上臣嚣,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音剥哑,去河邊找鬼硅则。 笑死,一個(gè)胖子當(dāng)著我的面吹牛株婴,可吹牛的內(nèi)容都是我干的怎虫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼督暂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼揪垄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逻翁,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤饥努,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后八回,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酷愧,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年缠诅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溶浴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡管引,死狀恐怖士败,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤谅将,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布漾狼,位于F島的核電站,受9級(jí)特大地震影響饥臂,放射性物質(zhì)發(fā)生泄漏逊躁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一隅熙、第九天 我趴在偏房一處隱蔽的房頂上張望稽煤。 院中可真熱鬧,春花似錦囚戚、人聲如沸酵熙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绿店。三九已至,卻和暖如春庐橙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背借嗽。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工态鳖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人恶导。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓浆竭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親惨寿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邦泄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355