2010-03-10 58 views
2

我想制作付费应用和免费版本的应用。我想要构造一些东西,以便我可以尽可能少地修改一个版本或另一个版本。就源代码而言,这很容易通过在某个地方使用BOOL常量isFreeVersion来实现,并根据需要引用它。从单个Xcode项目中有效构建Iphone应用程序的两个版本?

但是我应该如何设置其他所有东西?显然,应用程序ID将不得不改变,这将需要改变XCode中的一些构建设置。保持最低限度的最佳方式是什么?

+0

这似乎是这个问题的重复:http://stackoverflow.com/questions/549462/how-do-i-manage-building-a-lite-vs-paid-version-of-an-iphone -app – 2010-03-10 15:49:18

回答

1

就版本控制而言,I 不建议使用using branches,除非构建两个版本的影响意味着两组数据源之间的重要代码更改。

如果你只能有一组源(与你的BOOL常数),这意味着其余的必须通过建立脚本来管理,这将:

  • 带一个参数就知道它是否有建立免费版本或付费版本的可执行文件(无参数意味着它构建两者)
  • 使用一个XCode构建设置或其他,这取决于它必须构建的版本。
2

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

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

相关问题