iOS應用簽名(下)

image.png

描述文件

前面的文章我們已經(jīng)介紹了簡單的應用簽名但是這種簽名方式并不能解決應用濫用的問題,所以蘋果又加了兩個限制.第一限制在蘋果后臺注冊過的設備才可以安裝.第二限制簽名只能針對某一個具體的APP.并且蘋果還想控制App里面的iCloud/PUSH/后臺運行/調(diào)試器附加這些權限,所以蘋果把這些權限開關統(tǒng)一稱為Entitlements(授權文件).并將這個文件放在了一個叫做Provisioning Profile(描述文件)文件中.描述文件是在AppleDevelop網(wǎng)站創(chuàng)建的(在Xcode中填上AppleID它會代辦創(chuàng)建),Xcode運行時會打包進入APP內(nèi).
所以我們使用CSR申請證書時,我們還要申請一個東西!! 就是描述文件!!流程如下

image.png

這個描述文件里面就是 可以安裝的設備有哪些.. APP的ID是什么.. 權限是些什么!
在開發(fā)時,編譯完一個 APP 后,用本地的私鑰M對這個APP進行簽名,同時把從蘋果服務器得到的 Provisioning Profile 文件打包進APP里,文件名為embedded.mobileprovision,把 APP 安裝到手機上.
image.png

我們可以利用$security cms -D -i embedded.mobileprovision命令查看Provisioning profile內(nèi)容,這些Xcode創(chuàng)建的Profile文件都存放在~/Library/MobileDevice/Provisioning Profiles/目錄下
image.png

注意! 每次我們新建項目其實會生成一個描述文件!選擇運行到手機上!! 我們只需要編譯一下!在APP包里面就可以看到.
image.png

那么為了便于我們查看信息! 我們可以通過Xcode來查看!!
image.png

當然,Provisioning profile本身也是通過簽名認證的,所以別想著你可以更改里面的東西來達到擴充權限\設備的目的.只有老老實實的去網(wǎng)站向Apple申請一份權限更多\設備更多的profile孙蒙。

整體的流程

首先我們總結一下剛才的一些名詞

  • 證書:內(nèi)容是公鑰或者私鑰,由認證機構對其簽名組成的數(shù)據(jù)包!我們開發(fā)可以使用鑰匙串訪問看到
    image.png
  • P12:就是本地私鑰,可以導入到其他電腦
  • Entitlements:權限文件,包含了APP一些權限的plist文件
  • CertificateSigningRequest:CSR文件包含了本地公鑰的數(shù)據(jù)文件
  • Provisioning Profile:描述文件,包含了證書/Entitlements等數(shù)據(jù),并由蘋果后臺私鑰簽名的數(shù)據(jù)包.

流程如下:

  • 第 1 步對應的是 keychain 里的 “從證書頒發(fā)機構請求證書”,這里就本地生成了一對公私鑰,保存的 CertificateSigningRequest 里面就包含公鑰,私鑰保存在本地電腦里.
  • 第 2 步向蘋果申請對應把 CSR 傳到蘋果后臺生成證書.
  • 第 3 步證書下載到本地.這時本地有兩個證書.一個是第 1 步生成的私鑰,一個是這里下載回來的證書,keychain 會把這兩個證書關聯(lián)起來,因為他們公私鑰是對應的,在XCode選擇下載回來的證書時,實際上會找到 keychain 里對應的私鑰去簽名.這里私鑰只有生成它的這臺 Mac 有,如果別的 Mac 也要編譯簽名這個 App 怎么辦?答案是把私鑰導出給其他 Mac 用,在 keychain 里導出私鑰,就會存成 .p12 文件,其他 Mac 打開后就導入了這個私鑰.


    image.png
  • 第 4 步都是在蘋果網(wǎng)站上操作泵喘,配置 AppID / 權限 / 設備等,最后下載 Provisioning Profile 文件弊知。
  • 第 5 步 XCode 會通過第 3 步下載回來的證書(存著公鑰),在本地找到對應的私鑰(第一步生成的)粱快,用本地私鑰去簽名 App秩彤,并把 Provisioning Profile 文件命名為 embedded.mobileprovision 一起打包進去叔扼。所以任何本地調(diào)試的APP,都會有一個embedded.mobileprovision(描述文件)從App Store下載的沒有.

APP簽名的數(shù)據(jù)

這里對 App 的簽名數(shù)據(jù)保存分兩部分

  • 1.Mach-O 可執(zhí)行文件會把簽名直接寫入文件里


    MachOView查看
  • 2.其他資源文件則會保存在 _CodeSignature 目錄下在APP包里。


    image.png

至此關于iOS應用簽名的原理就介紹完了.下篇文章將介紹iOS應用重簽名技術.
由于知識水平有限如有錯誤及不足,歡迎大家留言區(qū)評論指正.

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漫雷,一起剝皮案震驚了整個濱河市瓜富,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌珊拼,老刑警劉巖食呻,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澎现,居然都是意外死亡仅胞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門剑辫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來干旧,“玉大人,你說我怎么就攤上這事妹蔽∽得校” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵胳岂,是天一觀的道長编整。 經(jīng)常有香客問我,道長乳丰,這世上最難降的妖魔是什么掌测? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮产园,結果婚禮上汞斧,老公的妹妹穿的比我還像新娘。我一直安慰自己什燕,他們只是感情好粘勒,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屎即,像睡著了一般庙睡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上技俐,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天乘陪,我揣著相機與錄音,去河邊找鬼虽另。 笑死,一個胖子當著我的面吹牛饺谬,可吹牛的內(nèi)容都是我干的捂刺。 我是一名探鬼主播谣拣,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼族展,長吁一口氣:“原來是場噩夢啊……” “哼森缠!你這毒婦竟也來了?” 一聲冷哼從身側響起宾茂,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤片林,失蹤者是張志新(化名)和其女友劉穎费封,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡果复,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡彤侍,死狀恐怖曙博,靈堂內(nèi)的尸體忽然破棺而出蒸眠,到底是詐尸還是另有隱情,我是刑警寧澤藕各,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布池摧,位于F島的核電站,受9級特大地震影響激况,放射性物質(zhì)發(fā)生泄漏作彤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一乌逐、第九天 我趴在偏房一處隱蔽的房頂上張望竭讳。 院中可真熱鬧,春花似錦浙踢、人聲如沸绢慢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胰舆。三九已至逻杖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間思瘟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工闻伶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滨攻,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓蓝翰,卻偏偏與公主長得像光绕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子畜份,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

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