从单个白标xcode项目自动化多个构建的最佳策略?

Ric*_*ich 9 xcode continuous-integration automated-deploy

我正在研究自动化构建过程的最佳方法.我有自己的想法(通过以前的非iOS项目的经验),但需要良好的论据支持和反对各种可能性.

目标:具有单一目标(想想白标)的单个xcode项目需要以1..N不同的风格(具体品牌)构建,具有最少的用户交互和最少的技术知识.对于AdHoc和/或AppStore.

从本质上讲,这将意味着指定每个构建; 包含Icons + Splashscreen的文件夹,包含品牌特定资源的捆绑包(大概是?)Info.plist,指定appname,bundle-id等.

需要遵守或澄清的问题;

  • 通过Idiot-Proof GUI手动构建单个品牌(选择git分支/标签,指定某个品牌,配置应用程序,例如启用IAP,服务器域名等 - 将写入info.plist)
  • 在以前的手动测试中,在plist中设置可执行文件名称不起作用?对不起,忘记了确切的问题..也许只是一个Xcode Debug buildconfig问题,与分发版本无关?
  • 代码签名?!?可以在运行中指定配置文件吗?有些品牌需要使用客户自己的个人资料构建.

我的个人感觉:Hudson或CruiseControl + Xcode插件.

Xcode解决方案似乎有很多文档,我已经看到了这个我正在进行的Flex项目的实际操作,几乎完全相同的白标/品牌要求.当然那是使用Ant脚本但没有任何行为配置值得尊重.这是我唯一不确定的地方......我怀疑它必须在某个地方进行硬编码,但这不是解决某些人的问题的答案.在手动构建时,希望能够通过GUI表单指定各种app-config设置(服务器URL,是支持Foo的功能,是显示的视图X等).我不确定将它变成典型的Hudson或CC配置是多么容易?

因此,已经提出的一个建议是编写一个OSX应用程序来构建我们的客户.理论上,用于输入所有必要元数据和应用程序设置的漂亮干净的非技术UI以及标有"Build"的大闪亮绿色按钮.但个人而言,我怀疑这种方法比传统的CI解决方案更灵活或更容易实现.

所以问题基本上是,什么是更可取的; 基于经典服务器,版本控制集成,CI方法还是自定义OSX实用程序?

无论我们采用哪种方式,几乎可以肯定是要求在2到3天(最多不到一周)内完成并运行.

Eva*_*azo 1

恕我直言,您可以使用 XCode 的不同目标解决所有问题。

每个目标都会共享代码,但它可以:

  • 使用不同的配置文件进行签名
  • 使用不同的 plist:这意味着有不同的名称..
  • 使用不同的品牌形象。您只需用相同的名称命名图像并在文件检查器中选择正确的目标即可。
  • 在 XCode 中一键构建。

我希望这有帮助