如何在不重复Xcode 4项目的情况下从付费版本构建免费版本?

时间:2011-12-10 12:13:54

标签: iphone ios xcode xcode4 conditional

我听说有传言说可以通过使用目标和条件编译指令(例如

)来构建应用程序的不同变体而无需复制Xcode项目
IF !FREE_VERSION 
[self loadGreatFeature];
ELSE
[self loadBoringFeature];

所以:

  • 如何设置Xcode 4以区分构建/存档项目的免费或付费版本?

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

  • 如何告诉Xcode 4构建免费的OR付费版本? (不想一直构建它们,因为这会减慢开发速度)

  • 这种方法的注意事项是什么?

我知道重复Xcode项目有什么警告:一旦我修复了任何一个版本中的错误,我必须在另一个版本中执行相同的操作。同样需要进行改进和修改。

1 个答案:

答案 0 :(得分:20)

在Xcode中打开您的项目,然后在 Project Navigator 中选择顶级项目。您应该看到项目的目标列表。

为应用的免费版本创建新目标。一种简单的方法是按住Control键并单击与您想要的类似的当前目标并复制它。

选择新目标。在构建阶段选项卡中,您可以控制将哪些源文件构建为此目标的一部分以及为其复制哪些资源。在构建设置标签中搜索预处理器宏,并为所有构建配置添加新的,例如MYAPPLITE = 1。然后,您可以在代码中使用以下内容进行条件编译:

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

最后,从“产品”菜单中选择编辑方案... 。应该已经为您的新目标创建了一个新方案。如果需要,您可以在管理方案表中重命名。您可以在此处控制构建,运行,存档等新目标的特定设置。

要在构建免费版本或付费版本之间切换,只需更改活动方案即可。

唯一真正需要注意的是,您需要更新新目标的设置。