如何从付费版本构build免费版本而不复制Xcode 4项目?

我听说过有可能通过使用目标和条件编译指令来构build应用程序的不同变体而不重复Xcode项目

IF !FREE_VERSION [self loadGreatFeature]; ELSE [self loadBoringFeature]; 

所以:

  • 如何设置Xcode 4,以便能够区分build筑/归档免费或付费版本的项目?

  • 如何告诉Xcode 4在付费版本中包含一些图像和其他资源,但不包含免费版本(反之亦然)?

  • 如何告诉Xcode 4build立免费或付费版本? (不要一直build造这两个,因为这会减缓发展)

  • 这种方法有哪些注意事项?

我知道重复Xcode项目有什么要注意的地方:一旦我修复了这两个版本中的一个bug,我就必须在另一个版本中做同样的事情。 同样的做出改进和修改。

在Xcode中打开项目并在Project Navigator中select顶层项目 。 你应该看到你的项目的目标列表。

为您的应用的免费版本创build一个新的目标。 一个简单的方法来做到这一点是控制点击一个当前的目标是类似于你想要的和复制它。

select你的新目标。 在“ 构build阶段”选项卡中,您可以控制将哪些源文件构build为此目标的一部分以及为其复制哪些资源。 在“ 构build设置”选项卡中search预处理器macros,并为所有构buildconfiguration添加一个新项,例如MYAPPLITE = 1。 然后你可以在你的代码中进行条件编译,如下所示:

 #ifdef MYAPPLITE [self loadBoringFeature]; #else [self loadGreatFeature]; #endif 

最后,从“产品”菜单中select“ 编辑scheme… ”。 应该已经为新的目标创build了一个新的scheme。 如果需要,可以在“ pipe理scheme”表格中对其进行重命名。 你可以在这里控制build立,运行,存档等新的目标的具体设置。

要在build立免费版本或付费版本之间切换,只需更改活动scheme。

唯一真正的警告是,你需要保持你的新目标的设置是最新的。