把真機連到Mac上,App不就能裝在哪嗎?

發表時間:2023-08-08 11:52

首先要弄明白它,既要有能不經蘋果私鑰的驗證,立刻裝置的方便,還要經過蘋果的驗證??瓷先ビ悬c饒人,蘋果利用的方案便是雙層簽名!小編便來具體告訴你!

在Mac生成一對公私鑰,這里稱為密鑰L,私鑰L。

蘋果自己有固定的一對公私鑰,私鑰在蘋果后臺,公鑰在每個iOS設備上。

把公鑰L傳到蘋果后臺,用蘋果后臺里的密鑰A去簽名公鑰L。得到一份數據包括了公鑰L或者其簽名,把這份數據稱為證書。

在開發時,編譯完一個APP后,用本地的私鑰L對這個APP進行簽名,同時把第三步得到的證書一起打包進APP里,安裝到手機上。

在安裝時,iOS平臺獲得證書,通過系統內置的私鑰A,去驗證證書的數字簽名是否正確。

驗證證書后保證了公鑰L是蘋果認證過的,再用公鑰L去驗證APP的簽名,這里就間接驗證了這個APP安裝行為能否經過蘋果允許。(此處只驗證安裝行為,不驗證APP是否被削弱,因為開發階段APP內容總是不斷變化的,蘋果不應該管。)

比如要確保經過驗證外,蘋果需要避免濫用這些方法下載。

想象一下,把真機連到Mac上,不能夠想裝多少裝多少App嗎?那多部設備連到Mac上,App不能夠想裝在哪裝在哪嗎?

蘋果的方案是識別設備和App。

想調試的設施必需要到研發者網站申請,并且設施總數是有限制的。

之后還對于每個BundleIdentifier(AppID)配不同的證書。

把真機連到Mac上,App不就能裝在哪嗎?

這兩種數據都在里面第三步一起構成證書(暫且這么覺得)。

至此,證書才能推動經過蘋果認證,并且能限制安裝設施數量和AppID。

其實,證書不止有很多信息,還有推送等權限,蘋果把這種權限開關統一稱為Entitlements。如果App一開始的證書沒申請推送權限,那么上面新增權限后,需要升級配置。

實際上,一個“證書”有要求的格式規范,不應把這種額外的信息往里塞。所以前面的尚且如此覺得個別是不對的。(即使沒有企業賬戶可通過第三方系統(如:),這只是一個不錯的方法。)

然而蘋果把證書和額外信息包裝出來,把它叫做ProvisioningProfile。

在你的Mac開發機器生成一對公私鑰,這里稱為密鑰L,私鑰L。L:Local

蘋果自己有固定的一對公私鑰,跟后面AppStore例子一樣,私鑰在蘋果后臺,公鑰在每個iOS設備上。這里稱為密鑰A,私鑰A。A:Apple

把公鑰L傳到蘋果后臺,用蘋果后臺里的密鑰A去簽名公鑰L。得到一份數據包括了公鑰L或者其簽名,把這份數據稱為證書。

在蘋果后臺申請AppID,配置好設備ID列表和APP可使用的權限,再加上第③步的證書,組成的數據用私鑰A簽名,把數據和簽名一起組成一個ProvisioningProfile文件,下載到本地Mac開發機。

在開發時,編譯完一個APP后,用本地的私鑰L對這個APP進行簽名,同時把第④步得到的ProvisioningProfile文件打包進APP里,文件名為embedded.mobileprovision,把APP安裝到手機上。

在安裝時,iOS平臺獲得證書,通過系統內置的私鑰A,去驗證embedded.mobileprovision的數字簽名是否正確,里面的證書簽名也會再驗一遍。

確保了embedded.mobileprovision里的數據都是蘋果授權之后,就可以取出里面的數據,做諸多驗證,包括用公鑰L驗證APP簽名,驗證設備ID是否在ID列表上,AppID是否對應得上,權限開關是否跟APP里的Entitlements對應等。

本文來自投稿,不代表親測學習網立場,如若轉載,請注明出處:%e7%ad%be%e5%90%8d%e4%b9%8b%e8%8b%b9%e6%9e%9c%e7%b3%bb%e5%88%97%e7%9a%84app%e7%ad%be%e5%90%8d%e7%9a%84%e7%9b%b8%e5%85%b3%e5%86%85%e5%ae%b9.html

綜上所述,我們應當珍惜每一個機會,抓住每一刻的可能性。如果您有蘋果簽名相關的問題或需要蘋果企業簽名請聯系我們1024蘋果簽名。

企業賬號和蘋果簽名服務
首頁                              關于公司        
回收企業賬號                 新聞中心          

掃一掃加微信