關於企業簽名的原理,蘋果采用的方案是雙層簽名:在 Mac 生成壹對公私鑰,蘋果自己有固定的壹對公私鑰,私鑰在蘋果後臺,公鑰在每個 iOS 設備上。把公鑰傳到蘋果後臺,用蘋果後臺裏的私鑰去簽名公鑰。得到壹份數據包含了公鑰以及其簽名,把這份數據稱為證書。
後來證書也就是我們現在所說的簽名證書,雙層簽名就是我們壹直使用的iOS企業簽名。在安裝時,iOS系統取得證書,通過系統內置的公鑰A,去驗證 embedded.mobileprovision的數字簽名是否正確,裏面的證書簽名也會再驗壹遍。確保了embedded.mobileprovision裏的數據都是蘋果授權以後,就可以取出裏面的數據,做各種驗證,包括用公鑰驗證APP簽名,驗證設備ID是否在ID列表上,AppID是否對應得上,權限開關是否跟APP裏的Entitlements對應等。
其實iOS企業簽名就是使用了蘋果的企業開發者賬號,生成我們上面說的證書,對APP應用進行雙層數字簽名,這樣可以直接跳過上架App Store,快速地安裝用戶的蘋果手機上,避免了上架App Store的煩惱,和蘋果官方漫長的審核周期以及嚴格的審核機制說再見 。