首先,在Xcode中選擇配置文件是有誤導性的;在Xcode中編譯實際上與配置文件無關!實際發生的情況是,Xcode只是將配置文件中的公鑰證書與鑰匙串中的公鑰證書相匹配,然後使用私鑰簽署可執行文件。這是bog標準的Mach-O可執行文件簽名。這也是他們爲什麼在Xcode 5中將其更改得更加清晰的原因。這也是配置文件上的錯誤(未找到簽名身份)的原因 - 這意味着Xcode無法找到與配置文件中任何公鑰對應的私鑰。
你的個人開發者證書是標準的PKI東西;您的Mac會以Apple不知道您的私鑰(與SSL證書請求類似)的方式向Apple發送證書請求。 Apple生成證書,鑰匙串將其與原始請求進行匹配,爲您提供證書的公鑰和私鑰。爲單個開發人員創建配置文件時,會列出該開發人員的公鑰。創建團隊簡介時,包括所有選定團隊成員的公鑰。這允許團隊成員簽署可執行文件,但簽名者的名稱將是團隊名稱而不是個人。
當iOS啓動任何可執行文件時,它首先檢查簽名。如果簽名由Apple App Store簽名,則運行。
如果不是,它會檢查已安裝的設置配置文件。這些配置文件包括: 1.開發人員證書列表 2.應用程序ID 3.授予權限(例如iCloud,Game Center等) 4.設備UDID列表 5.整個事情結束並由Apple簽署。
檢查配置文件以確保它是由Apple的密鑰(使用Apple的公鑰)簽名的。然後驗證當前設備的UDID是否在列表中。它還驗證應用程序ID是否匹配(儘管允許使用通配符)。然後它根據有效的開發人員證書公鑰的列表檢查Mach-O簽名。如果它們中的任何一個匹配,則可執行文件運行並被授予列出的權利。如果沒有,則被阻止。
我強烈建議在文本編輯器中打開一個.mobileprovision文件;你會學到很多!
一個[輝煌的教程](http://escoz.com/blog/demystifying-ios-certificates-and-provisioning-files/)在您的業餘時間閱讀.. – Krishnabhadra 2013-03-06 03:55:35
所以你是在你的業餘時間,對? – Krishnabhadra 2013-03-06 04:21:37
不錯的教程:) – z22 2013-09-25 07:02:54