簡體   English   中英

了解iOS中的配置文件和證書

[英]Understanding Provisioning profiles and certificates in iOS

我是否了解配置文件,證書是否正確(開發期間)?

  1. 在設備上安裝時,應用程序使用xcode的開發人員證書進行簽名? 證書應存在於供應配置文件中(存儲在IPad / IPhone中),並且安裝設備的deviceid也應存在於供應配置文件中。
  2. 因此,當設備未連接到您的開發人員mac時單擊應用程序時,應用程序的簽名證書應與配置文件中的一個(設備上存在)匹配,並且設備ID也應與配置文件中的設備ID匹配,僅然后應用程序將運行。
  3. 當設備連接到運行xcode的mac並且你想要調試時,存儲在鑰匙串中的公鑰+私鑰開始起作用,xcode嘗試使用證書解鎖存儲在鑰匙串中的公鑰+私鑰,從而識別mac,並執行上面的項目符號,如果這也是真的,那么你可以成功調試

首先,在Xcode中選擇配置文件具有誤導性; 在Xcode中構建實際上與配置文件無關! 實際發生的事情是Xcode只是將配置文件中的公鑰證書與您的鑰匙串中的公鑰證書匹配,然后使用私鑰對可執行文件進行簽名。 這是沼澤標准的Mach-O可執行簽名。 這也是為什么他們在Xcode 5中將其更改為更清晰的原因。 這也是配置文件上的錯誤(未找到簽名身份)來自 - 這意味着Xcode無法找到與配置文件中的任何公鑰對應的私鑰。

您的個人開發者證書是標准的PKI內容; 您的Mac以Apple不知道您的私鑰的方式向Apple發送證書請求(類似於SSL證書請求)。 Apple生成證書,鑰匙串將其與原始請求進行匹配,為您提供證書的公鑰和私鑰。 為單個開發人員創建配置文件時,會列出該開發人員的公鑰。 創建團隊配置文件時,將包含所有選定團隊成員的公鑰。 這允許團隊成員簽署可執行文件,但簽名者的名稱將是團隊名稱而不是個人。

當iOS去啟動任何可執行文件時,它首先檢查簽名。 如果簽名由Apple App Store簽名,則運行。

如果沒有,則檢查已安裝的配置文件。 配置文件包括:1。開發人員證書列表2.應用程序ID 3.授予的權利(例如iCloud,Game Center等)4。設備UDID列表5.整個事情由Apple包裝並簽名。

檢查配置文件以確保它是由Apple的密鑰簽名(使用Apple的公鑰)。 然后驗證當前設備的UDID是否在列表中。 它還驗證應用程序ID是否匹配(盡管允許使用通配符)。 然后,它根據有效的開發人員證書公鑰列表檢查Mach-O簽名。 如果它們中的任何一個匹配,則可執行文件運行並被授予列出的權利。 如果沒有,則被阻止。

我強烈建議在文本編輯器中打開.mobileprovision文件; 你會學到很多東西!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM