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

时间:2011-09-27 13:40:13

标签: 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天内完成并运行(绝对不到一周)。

3 个答案:

答案 0 :(得分:1)

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

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

  • 使用不同的个人资料签名
  • 使用不同的plist:这意味着有不同的名字..
  • 使用不同的品牌形象。您只需要使用相同的名称命名图像,并在文件检查器中选择正确的目标。
  • 在XCode中单击构建。

我希望这会有所帮助

答案 1 :(得分:0)

一个非常晚的回复,但我采取的方法是创建白标IPA,然后创建一个脚本: 1.解压缩(将.ipa文件扩展名更改为.zip)。 2.更改资产。 更新info.plist(使用Plistbuddy命令) 再次拉链。 辞职代码。

请参阅此脚本作为起点:https://gist.github.com/catmac/1682965

答案 2 :(得分:0)

很晚才回答。但我会使用不同的.xcconfig文件和多个方案。方案名称可以是target/brand的组合。