2014-02-12 24 views
3

在xcode中构建项目时,需要在构建设置中指定供应配置文件/证书对,并在导出存档时指定要使用的其他供应配置文件。请求这些信息两次的原因是什么?为什么应用程序签署了两次分发?

编辑澄清:我已经经历了一堆我生成的.ipa文件的内容,似乎有两个位置与签名/供应有关。 _CodeSign文件夹中的文档(似乎包含文件内容的加密哈希,以验证内容/源)以及.mobileprovision文件,这似乎是在构建文件导出时添加的。此时,我没有看到任何可以指示在构建设置中选择的配置文件的用途。

+0

我不确定你在说什么。在开发人员门户网站上创建供应配置文件时,请指定要使用的特定分发证书。配置文件只有一个证书... – Nyth

+0

这个问题似乎是无关紧要的,因为它实际上并不是一个编程问题。 – Almo

+0

@Almo对于iOS开发人员来说,这属于*实际的,可回答的问题,这是[iOS]软件开发*所特有的问题,因此应该将其视为主题。 – Caleb

回答

1

您可以在Xcode用于签署应用程序的版本设置中指定配置文件。例如,这使得您可以在开发期间在设备上运行您的应用程序。如果我没有记错,过去项目构建设置是您可以指定要使用的配置文件的唯一位置,所以您通常会将“调试”构建设置为使用您的开发配置文件,而您的发布构建使用分布配置文件。

在某些时候(Xcode 4,我认为),引入了应用程序存档以使开发人员更容易。您创建一个单独的档案,然后以不同的方式分发它包含的应用程序。您可以执行临时分发发送给您的测试人员,然后您可以使用完全相同的存档提交给应用商店,也可以创建企业版分发版,具体取决于您加入的程序的类型。但由于不同的分发方法需要不同的配置文件,因此Xcode会要求您提供分发时要使用的配置文件。

Xcode的归档功能是一个巨大的便利 - 它提交您的应用程序需要很多复杂性,并且还负责保存您分发的每个版本的符号文件,以便您可以理解任何崩溃日志你可能会收到。这是对开发人员需要以不同方式使用完全相同的应用程序版本的认可。如果您指定配置文件在两个不同的地方使用似乎有点奇怪,那就这样吧 - 这是一个可能在未来的Xcode版本中得到清理的粗糙边缘。

我不知道应用程序签名是如何工作的任何权威的信息,但我认为是这样的:

  • 提供配置文件包含您的证书(包括你的公钥),并使用Apple的私钥
  • 签署您使用与您的证书中的公钥对应的私钥签署您的应用
  • 设备使用Apple的公钥验证配置文件,然后使用您的公钥该配置文件来验证应用签名
  • 如果一切都匹配,设备将运行该应用;如果没有,应用程序将无法安装

忘记“应用程序二进制”和“ipa”分开签名 - 我认为这是一个红鲱鱼,并且iOS不太可能验证两个不同的签名。

+0

我打算做一些额外的测试,并且你所说的是我所期望的(这只是一个粗略的优势),但是如果归档的配置文件可以合法更改(即appstore vs ad-hoc/enterprise)配置文件在build-settings中指定的目的是什么? 澄清:如果应用程序二进制文件在构建设置中(而不仅仅是证书,如我所料)在配置文件中签名,那么如何避免不匹配问题更改ipa配置文件?还是忽略? – Nyth

+0

@Nyth我试着在我的回答中进一步解释一下。如果存在“不匹配问题”的可能性,那么您可以确定在这里有关于由此导致的错误的几百个问题。 – Caleb

0

不确定,但认为 - 第一次xCode只签署二进制应用程序,第二次整个.ipa档案。

相关问题