
p.jpeg
- 在你的 Mac 開發(fā)機(jī)器生成一對(duì)公私鑰,這里稱為公鑰L,私鑰L。L:Local
- 蘋果自己有固定的一對(duì)公私鑰,跟上面 AppStore 例子一樣,私鑰在蘋果后臺(tái),公鑰在每個(gè) iOS 設(shè)備上。這里稱為公鑰A,私鑰A。A:Apple
- 把公鑰 L 傳到蘋果后臺(tái),用蘋果后臺(tái)里的私鑰 A 去簽名公鑰 L。得到一份數(shù)據(jù)包含了公鑰 L 以及其簽名,把這份數(shù)據(jù)稱為證書。
- 在蘋果后臺(tái)申請(qǐng) AppID,配置好設(shè)備 ID 列表和 APP 可使用的權(quán)限,再加上第③步的證書,組成的數(shù)據(jù)用私鑰 A 簽名,把數(shù)據(jù)和簽名一起組成一個(gè) Provisioning Profile 文件,下載到本地 Mac 開發(fā)機(jī)。
- 在開發(fā)時(shí),編譯完一個(gè) APP 后,用本地的私鑰 L 對(duì)這個(gè) APP 進(jìn)行簽名,同時(shí)把第④步得到的 Provisioning Profile 文件打包進(jìn) APP 里,文件名為 embedded.mobileprovision,把 APP 安裝到手機(jī)上。
- 在安裝時(shí),iOS 系統(tǒng)取得證書,通過系統(tǒng)內(nèi)置的公鑰 A,去驗(yàn)證 embedded.mobileprovision 的數(shù)字簽名是否正確,里面的證書簽名也會(huì)再驗(yàn)一遍。
- 確保了 embedded.mobileprovision 里的數(shù)據(jù)都是蘋果授權(quán)以后,就可以取出里面的數(shù)據(jù),做各種驗(yàn)證,包括用公鑰 L 驗(yàn)證APP簽名,驗(yàn)證設(shè)備 ID 是否在 ID 列表上,AppID 是否對(duì)應(yīng)得上,權(quán)限開關(guān)是否跟 APP 里的 Entitlements 對(duì)應(yīng)等。

屏幕快照 2019-10-17 下午4.14.30.png

app可執(zhí)行文件.png

描述文件,簽名文件,frameworks.png
https://blog.csdn.net/olsQ93038o99S/article/details/99779465