如何协同自动生成的iOS应用程序?

时间:2011-05-04 04:59:29

标签: iphone xcode ios code-signing application-loader

问候,

我正在编写一个Web服务器脚本,可以创建自定义iOS应用程序(基本上可以交换徽标和其他一些东西)。 Web服务器自定义先前上载的“shell”.ipa并重新压缩整个容器以将其发送到用户的浏览器。即:我们在Web服务器上自定义以前上传的.ipa,让用户下载它以提交到App Store。

下一步是对整个.ipa进行重新编码 - 因为我们更改了.IPA内容,用户必须使用自己的签名身份 - 这样他才能将其实际上传到App Store。

据我所知,有一个“CodeResources”文件,它包含了bundle中每个资源文件的某种哈希值,而且可执行文件也包含某种嵌入式签名。要生成这些,您必须在用户的计算机上使用“codesign”实用程序,然后使用Application Loader将其提交到App Store。到目前为止正确吗?

我想知道的是:

  1. 有没有办法在服务器上对.ipa进行编码(让用户事先上传他的证书),这样他就没有额外的工作要做了?
  2. 如果1)不可能,是否有某种工具允许重新编码.ipa而没有太多麻烦? Xcode似乎需要一些项目设置工作才能进行一些代码签名 - 如果可能的话。
  3. 是否有其他方法可以为用户设置.ipa文件的编码 - 可能无需手动手动执行?
  4. 提前致谢!

2 个答案:

答案 0 :(得分:4)

Xcode使用codesign命令行实用程序来创建CodeResources文件夹和数字签名,您可以自己调用它来签署Xcode之外的应用程序包。如果服务器运行Mac OS X,您可以在服务器上自动执行此操作;如果你真的很聪明,你可能会弄清楚如何使用openssl自己创建签名(签名证书等都是标准的东西)。或者,如果您可以指望安装了开发工具的用户,请为他们提供一个自动签名的应用程序。

这是a blog entry describing some of the process(尽管用例略有不同)。

答案 1 :(得分:3)

我不想回答我自己的问题,但是我想在这么久之后关闭它。

我们最终使用Xcode的目标和方案来缓解许多不同应用的生成。由于我们有合理数量的应用程序变体,现在看来似乎没问题。

代码签名是一团糟,Apple不断改变其背后的技术流程 - 因此它是一个移动目标,需要大量的黑客攻击和反复试验工作。