2012-05-16 206 views
3

是的,是的,這是另一種。我知道所有的一般要點,什麼是什麼,如何生成等。iOS證書和配置文件關係

只是有一些東西讓我感到困擾。基本上,證書和配置文件的關係是什麼?我沒有找到適當的答案。我問的原因是我一直認爲,因爲當我們創建配置文件時,我們將它與開發(用於開發配置)或分佈(用於adhoc和appstore配置)證書相匹配,這意味着配置文件與證書綁定。

但是最近,在編譯我的Flex應用程序時,使用Flash Builder時,我注意到它不是這種情況,或者是我不明白的事情。基本上,我注意到我可以選擇我的開發證書並使用adhoc供應,並且應用程序編譯良好並且運行良好。我一直認爲我不能這樣做,因爲我只能使用adhoc配置和分發證書。如果特設配置與分配證書綁定,那麼這怎麼可能?我不認爲它真的是FB相關的,因爲最後我通過iTunes和iOS設備安裝應用程序,並且它仍然有效,所以它一定是Apple的事情。

實際上,只要我不分發給AppStore,我可以選擇任何需要的證書/配置文件組合,並且應用程序仍然可以編譯並在設備上正常運行,只要appid和udids都很好。很明顯adhoc和appstore供應已禁用進程附件(調試)並針對不同的服務服務器進行推送等操作,但除此之外,這樣做很好。爲什麼在iOS配置門戶中有這種可見的匹配,某些配置文件屬於證書?

這是否意味着證書只是分離問題的方式(開發人員與公司/分銷商)。在iOS Provisioning Portal中,只有Team Agents可以創建分發證書和特殊配置文件,但一旦生成,似乎代理可以向開發人員處理adhoc配置文件,並且可以使用他的開發證書對其進行簽名。

我在正確地捆綁所有東西時仍然有問題,並且仍然有意義。 Interwebs,幫助!

+0

難道它與我的開發和分發證書都使用相同的私鑰創建的事實有任何關係嗎?這將是奇怪的,然後私鑰將是主要因素,而不是證書... – rattkin

回答

4

很難用幾句話來回答你的問題,因爲它是一個非常加載的問題,導航到代碼簽名的幾個方面(看起來你可能也有緩存問題)但是你的問題歸結爲兩個問題 -

  1. 證書/配置文件/密鑰在創建IPA文件過程中起什麼作用?
  2. 當IPA執行時,設備如何驗證IPA?

假設您使用的是Xcode並擁有企業Apple開發人員帳戶,並且正在從「鑰匙串」實用程序開始創建CSR。在執行CSR創建時,會創建兩個實際添加到機器鑰匙串中的密鑰(私鑰和公鑰)。在您的本地機器上生成並保存的CSR將以加密形式提供您提供的所有信息(包括公鑰) - 使用您的私鑰加密

{您的名字+您的電子郵件+您的公鑰} =>使用您的私鑰加密=> CSR

現在,當您將編碼的CSR和未加密版本的公鑰的副本發送給Apple時,他們可以確定您的身份,並確保CSR是由您發送 - 因爲只有您擁有私鑰才能對他們可以使用公鑰唯一成功解碼的信息進行編碼。

如果CSR驗證成功,蘋果公司會拿走您的CSR並創建一個開發人員證書並允許您下載它。這基本上是由蘋果公司簽署的「公證」證書,證明您是一位經過驗證的開發人員。把它看作是使用蘋果私鑰簽名的文件,你可以使用蘋果公鑰進行解碼。此時您的身份和蘋果身份已通過身份驗證。

下,當您創建一個配置文件,您必須選擇它需要的成分 - 的UDID,開發證書等

(UDID的+開發證書+應用標識符+的權利除外)=>發放模板

接下來,您下載此配置文件將其添加到Xcode(使用Xcode組織者)Wheew我們完成了!

既然您擁有創建簽名IPA文件的所有要素(密鑰,配置文件,證書),XCode就會介入並執行驗證/背景檢查。 Xcode驗證這一點的方法是檢查嵌入在所選移動配置文件中的各個開發人員證書。它會檢查每個嵌入式開發人員證書(在配置配置文件中)是否在您的鑰匙串中具有私鑰/公鑰。然後,您可以使用任何具有匹配密鑰的證書執行簽名過程 - 即在您的鑰匙串中具有匹配密鑰的開發證書。您現在擁有簽名的IPA。希望解釋在IPA創建過程中,事情是聯繫在一起的。當簽署的IPA執行時,這些如何一起玩是故事的第二部分:)

+0

優秀的信息。 – Vignesh