iOS 超級簽名之描述文件的實(shí)現(xiàn)過程
簡介
因?yàn)樽罱髽I(yè)簽掉得太嚴(yán)重了,上頭要求實(shí)現(xiàn)超級簽進(jìn)行游戲下載。故有了此文章,記錄一下過程。
簽名原理其實(shí)很簡單,超級簽名的技術(shù)就是使用個人開發(fā)者賬號,將用戶的設(shè)備當(dāng)作開發(fā)設(shè)備進(jìn)行應(yīng)用分發(fā)。這也導(dǎo)致成本非常高,一個開發(fā)者賬號最多只能注冊一百臺設(shè)備,然而一個賬號的價(jià)格為99美元。不過目前超級簽分發(fā)的應(yīng)用穩(wěn)定性很高,不用再像企業(yè)簽?zāi)菢咏?jīng)常掉簽。
新建 .mobileconfig 描述文件
該描述文件用于獲取用戶設(shè)備的UDID,用戶通過某個點(diǎn)擊操作下載此文件,安裝后服務(wù)器會收到該用戶設(shè)備的 UDID 回調(diào)事件。
<?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>https://[你的服務(wù)器地址].com/resource/uploadUUID.do</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>xxx.xxx.com</string> <!--組織名稱--> <key>PayloadDisplayName</key> <string>查詢設(shè)備UDID</string> <!--安裝時(shí)顯示的標(biāo)題--> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadUUID</key> <string>c156f2f8-fc42-4260-8fc5-8644861d8293</string> <!--自己隨機(jī)填寫的唯一字符串,http://www.guidgen.com/ 可以生成--> <key>PayloadIdentifier</key> <string>xxx.xxx.profile-service</string> <key>PayloadDescription</key> <string>本文件僅用來獲取設(shè)備ID</string> <!--描述--> <key>PayloadType</key> <string>Profile Service</string> </dict> </plist>
注冊開發(fā)者設(shè)備及簽名包體
由于時(shí)間太趕,這里注冊開發(fā)者設(shè)備及簽名包體采用的都是三方提供的服務(wù),因此沒有細(xì)節(jié)提供,但是怎樣去做還是可以說一下的。
我們可以借助Spaceship
工具完成注冊新的開發(fā)者設(shè)備和更新Provisioning Profile
,簽名包體可以用Sigh
框架,具體實(shí)現(xiàn)請自行搜索。
最后用戶下載的方式與企業(yè)簽的一樣,使用itms-services
協(xié)議進(jìn)行下載。
ssl 簽名 .mobileconfig 配置文件
我看了很多文章,都是用開發(fā)者證書去簽名的,可是我弄了好久,死活從“未簽名”變成了“”尚未驗(yàn)證“,當(dāng)時(shí)一度絕望了好長時(shí)間。從 iPhone 配置實(shí)用工具 2.2 到 iPhone 配置實(shí)用工具 3.5,皆不成功。
配置文件是可以使用的,雖然說安裝時(shí)會提示紅色字“尚未驗(yàn)證”,看起來不太安全之外,一切安好??墒且凶非蟀?,別人能做到的東西,那就是肯定能做的。
ssl 證書簽名配置文件是知道的,可是向后端人員要證書文件的時(shí)候一度受到了困擾,所以前期擱置了好久,直到其它的方法都被我試過了,都不行之后,只好繼續(xù)調(diào)研 ssl 證書簽名配置文件。
踩完無數(shù)的坑之后,這里介紹一種親測可用的方法,使用 ssl 證書進(jìn)行配置文件的簽名。我是看這篇文章實(shí)現(xiàn)的為iOS的mobileconfig配置文件進(jìn)行簽名。
很簡單,需要三個文件,三行命令,完成。
$ openssl smime -sign -in unsigned.mobileconfig -out signed.mobileconfig -signer mbaike.crt -inkey mbaike.key -certfile ca-bundle.pem -outform der -nodetach $ openssl rsa -in mbaike.key -out mbaikenopass.key $ openssl smime -sign -in unsigned.mobileconfig -out signed.mobileconfig -signer mbaike.crt -inkey mbaikenopass.key -certfile ca-bundle.pem -outform der -nodetach
這里耗時(shí)主要是在等運(yùn)維人員提供相關(guān)證書文件,千萬別給錯了,否則很難 Debug。
下載描述文件后不能自動跳轉(zhuǎn)到安裝界面
在 iOS 12.2 上蘋果做了改動,下載完后需要用戶手動進(jìn)行安裝。點(diǎn)擊 設(shè)置 —— 已下載描述文件,會自動彈出描述文件安裝界面,點(diǎn)擊右上角安裝即可。
官方說明點(diǎn)這兒在 iPhone 或 iPad 上安裝配置描述文件。
利用 .mobileprovision 跳轉(zhuǎn)到已下載描述文件
這是為了方便用戶不需手動找描述文件并安裝,可以直接跳過去,省去用戶操作。
- 從蘋果開發(fā)者網(wǎng)站中下載對應(yīng)的發(fā)布描述文件;
- 把發(fā)布描述文件部署在服務(wù)器;
- web 訪問服務(wù)器的發(fā)布描述文件,如:
http://***.com/embedded.mobileprovision
; - Done。
當(dāng)執(zhí)行第三步后,會自動跳轉(zhuǎn)至描述文件。
參考文獻(xiàn)
SSL Converter - Convert SSL Certificates to different formats
mobileconfig文件的簽名和認(rèn)證(signed、verified)
通過Safari瀏覽器獲取iOS設(shè)備UDID(設(shè)備唯一標(biāo)識符)
總結(jié)
以上所述是小編給大家介紹的iOS 超級簽名實(shí)現(xiàn)之描述文件的實(shí)現(xiàn)過程,希望對大家有所幫助,也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
舉例講解iOS開發(fā)中拖動視圖的實(shí)現(xiàn)
這篇文章主要介紹了舉例講解iOS開發(fā)中的拖動視圖實(shí)現(xiàn),代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-10-10iOS中UIActivityIndicatorView的用法及齒輪等待動畫實(shí)例
UIActivityIndicatorView活動指示器最常見的用法便是用來制作那個程序中的齒輪轉(zhuǎn)動的等待效果,接下來我們回來簡單整理iOS中UIActivityIndicatorView的用法及齒輪等待動畫實(shí)例:2016-05-05淺談iOS開發(fā)如何適配暗黑模式(Dark Mode)
這篇文章主要介紹了淺談iOS開發(fā)如何適配暗黑模式(Dark Mode),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09IOS用AFN發(fā)送字符串形式的Json數(shù)據(jù)給服務(wù)器實(shí)例
本篇文章主要介紹了IOS用AFN發(fā)送字符串形式的Json數(shù)據(jù)給服務(wù)器實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04詳解iOS多線程之2.NSThread的加鎖@synchronized
這篇文章主要介紹了詳解iOS多線程之2.NSThread的加鎖@synchronized,有需要的小伙伴可以參考下。2016-11-11關(guān)于iOS 11的一些新特性適配實(shí)踐總結(jié)
iOS 11 為整個生態(tài)系統(tǒng)的 UI 元素帶來了一種更加大膽、動態(tài)的新風(fēng)格。下面這篇文章主要給大家總結(jié)介紹了關(guān)于iOS 11的一些新特性適配實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11IOS Xcode調(diào)試常用命令和斷點(diǎn)整理
這篇文章主要介紹了IOS Xcode調(diào)試常用命令和斷點(diǎn)整理的相關(guān)資料,這里對IOS Xcode調(diào)試常用命令進(jìn)行了總結(jié),需要的朋友可以參考下2016-12-12