从单个Xcode项目中有效地构建两个版本的Iphone应用程序?

时间:2010-03-10 03:54:09

标签: iphone xcode version-control

我想制作我的应用的付费和免费版本。我想构建一些东西,以便我可以使用尽可能少的更改来构建一个版本或另一个版本。就源代码而言,可以通过在某处具有BOOL常量isFreeVersion并根据需要引用它来轻松实现。

但我应该如何设置其他所有内容?显然,App ID必须更改,这将需要更改XCode中的一些构建设置。将此保持在最低限度的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用预处理程序标志(在Xcode构建设置中)在两者之间切换。可以使用简单的预处理程序指令(例如#if IS_FREE_VERSION ... #endif)以类似于if语句的方式在源代码中使用该标志。这将帮助您避免构建脚本。

这种方法的缺点是,默认情况下,每次构建时,最后一个构建产品都会被覆盖。

答案 1 :(得分:1)

就版本控制而言,我不会推荐 using branches,除非构建两个版本的影响意味着两组资源之间的重要代码更改。

如果你只能拥有一组来源(使用BOOL常量),那意味着其余的必须通过构建脚本来管理,这将是:

  • 获取参数以了解是否必须构建可执行文件的免费版本或付费版本(没有参数意味着它同时构建)
  • 使用一个或另一个XCode构建设置,具体取决于它必须构建的版本。