繁体   English   中英

IO代码签名澄清

[英]IOs code signing clarification

据我所知,有4种方法可以在IO上分发应用程序:

  1. 发展
  2. 特设
  3. 企业
  4. 应用商店

我理解发展的分配方式是如何运作的。 您需要向Apple提交证书申请,并为您颁发证书。 然后使用此证书对您的应用程序进行签名。

但是,目前还不清楚Ad Hoc,Entreprise和App Store证书的工作原理。 特别是:

  • Ad Hoc可以安装在各种设备上,但是,您无需在配置文件中指定设备。 您是否需要提交特殊请求以获取Ad Hoc证书,以及设备级别的执行如何运作?
  • 同样,据我所知,可以使用企业证书
    在不同设备上安装应用程序(您无需提前指定)。 看起来Enterprise与App Store非常相似
    证书,即我看不出它们之间的区别。 证书的安全检查如何适用于Enterprise?

我的直觉是Apple作为证书颁发机构,但是使用不同的根证书签署所有这些类型的证书,即开发人员请求使用Developer Apple根证书签名,Enterprise使用Enterprise Apple Root证书签名。 然后,在设备上安装期间,检查根证书的类型并强制执行相应的决定。 我对吗?

答案在于配置配置文件而不是证书或其权限。

没有Ad Hoc证书这样的东西。 只有分发证书和开发证书。 对于企业帐户也是如此,其证书完全相同(除了出处类型的帐户)。 所以Ad Hoc,App Store和Enterprise都是分发证书。 您的所有证书都由相同的权限签署:Apple全球开发者关系证书颁发机构,因此他们不能拥有不同的根CA.

不同之处在于配置文件本身,这些只是Apple签署的plists。 iDevices信任WWDR证书链的某些部分(根CA?),如果签名检出,则解释配置文件,并决定是否可以安装或运行给定的应用程序。

配置文件说明谁可以运行什么以及在哪些设备上运行。 它们由Apple签署,因此设备可以验证他们所说的内容。

我可以看到的配置文件类型之间的差异是:

企业简介有

<key>ProvisionsAllDevices</key>
<true/>

特设有

<key>ProvisionedDevices</key>
<array>
  UDIDs! You do, in fact, need to specify them for Ad Hoc!
</array>

App Store配置文件似乎没有特殊的配置信息。 事实上,我不确定它们是否真的安装在设备上。

命令security cms -D -i your.mobileprovision对于探索配置文件非常有用。

我创建的维恩图是为了简化对iOS配置文件的理解。 我创建的维恩图是为了简化对iOS配置文件的理解。 请参阅此处的Google绘图文档: https//docs.google.com/drawings/d/1Td19Lf94Lep3h7jFD2mYdO564Y_LiWBaFaartDE8riU/edit? usp =sharing

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM