iOS证书和配置文件关系

时间:2012-05-16 20:15:17

标签: ios certificate provisioning flash-builder

是的,是的,这是另一种。我知道所有的一般要点,什么是什么,如何产生等等。

只是有些东西让我烦恼。基本上,证书和配置文件的关系是什么?我没能找到合适的答案。我问的原因是我一直认为,因为当我们创建配置文件时,我们将其与开发(用于开发配置)或分发(用于adhoc和appstore配置)证书相匹配,这意味着配置文件与证书相关联。

但是最近,使用Flash Builder,在编译我的Flex应用程序时,我注意到它不是这种情况,或者有一些我不理解的内容。基本上,我注意到我可以选择我的开发证书并使用adhoc配置,并且应用程序编译得很好并运行良好。我一直认为我不能这样做,因为我只能使用adhoc配置和分发证书。如果特殊配置与分发证书挂钩,那怎么可能呢?我不认为它真的与FB有关,因为最后我通过iTunes和iOS设备安装应用程序,它仍然有效,所以它必须是Apple的东西。

实际上,只要我不为AppStore分发,我就可以选择我想要的任何证书/配置文件的组合,并且应用程序仍然可以在设备上编译和运行,只要appid和udids很好。显然,adhoc和appstore配置会禁用(调试)进程附件,并针对推送等目标使用不同的服务服务器,但除此之外,它还可以。为什么iOS Provisioning门户网站中存在这种可见匹配,某些配置文件属于证书?

这是否意味着证书只是分离问题的方式(开发人员与公司/分销商)。在iOS Provisioning Portal中,只有Team Agents可以创建分发证书和adhoc配置文件,但是一旦生成,Agent似乎可以处理开发人员的adhoc配置文件,并且他可以使用他的开发证书对其进行签名。

我遇到了正确捆绑所有问题的问题,但仍然有意义。互联网,帮助!

1 个答案:

答案 0 :(得分:4)

用几句话很难回答你的问题,因为它是一个非常有用的问题,导航到代码签名的几个方面(看起来你可能也有缓存问题)但你的问题归结为两个问题 -

  1. 证书/配置文件/密钥在创建IPA文件期间扮演什么角色?
  2. 设备在执行IPA时如何验证IPA?
  3. 让我们假设您正在使用Xcode并拥有Enterprise Apple Developer帐户,并且从头开始使用“keychain”实用程序来创建CSR。在执行CSR创建时,会创建两个实际添加到计算机钥匙串的密钥(私钥和公钥)。生成并保存在本地计算机上的CSR包含您以加密形式提供的所有信息(包括您的公钥) - 使用您的私钥加密

    {您的姓名+您的电子邮件+您的公钥} =>使用您的私钥加密=> CSR

    现在,当您将编码后的CSR和未加密版本的公钥发送给Apple时,他们可以确定您的身份,并确保您的CSR是由您发送的 - 因为只有您拥有私钥使用您的公钥对他们可以成功解码的信息进行编码。

    如果CSR验证成功,Apple将获取您的CSR并创建开发人员证书并允许您下载它。这基本上是由Apple签署的“公证”证书,证明您是经过验证的开发人员。可以把它想象成使用苹果私钥签名的文件,你可以用苹果的公钥解码。此时,您的身份和苹果身份已经过身份验证。

    接下来,当您创建配置文件时,您必须选择所需的配料 - udids,dev certs等

    (UDIDS + Dev证书+应用标识符+权利)=>供应资料

    接下来,您下载此配置文件将其添加到Xcode(使用Xcode组织器),我们完成了!

    现在您已拥有用于创建签名IPA文件的所有组件(密钥,配置文件,证书),XCode会介入并执行验证/后台检查。 Xcode验证这一点的方法是检查嵌入在所选移动配置文件中的每个开发人员证书。它会检查您的钥匙串中是否有私钥/公钥用于每个嵌入式开发人员证书(在配置文件中)。然后,它允许您使用具有匹配键的任何证书执行签名过程 - 即在您的钥匙串中具有匹配键的开发证书。您现在拥有签名的IPA。希望能够解释在IPA创建过程中如何将事物联系在一起。当签署的IPA执行时,这些如何一起发挥作用是故事的第二部分:)