适用于iOS的iOS多个版本

时间:2011-04-14 09:33:50

标签: xcode ios project-management

实际上,我的iOS应用程序在同一个项目中包含多个版本,在静态类中使用#define进行更改。

例如:

#import "AppVersion.h"

//...

if (MYAPP_VERSION == kMyAppVersionFree) {
   //Limited features
}
else if (MYAPP_VERSION == kMyAppVersionFull) {
   //No limit !
}

每次我想编译时,我都要编辑我的代码以更改#define MYAPP_VERSION,并更改项目名称,以便能够发布“MyApp”和“MyApp Free”可执行文件......

问题:

是否可以将其定义为“编译变量”? 每次我想编译2个版本时,我都不想编辑我的代码

如何创建2个项目,使用完全相同的源(许多类),但使用不同的App Name和不同的info.plist(相对于上一个问题,不同的“编译变量”)?

我要求使用不同的info.plist,因为我的“免费版”不支持iTunes文件共享,但我的“完整版”确实...

我不知道我是否能很好地解释这个问题...(对不起我的英语......)

有什么想法吗?您如何管理项目中的版本?

提前致谢

1 个答案:

答案 0 :(得分:22)

您需要为各种版本定义目标。

单击项目的根目录(蓝色xcode图标)。您将在表格中看到您的项目设置。在左侧,您将看到一个“TARGETS”标题,其中包含一个孩子,即您项目的名称。

您可以右键单击目标并复制它。一旦复制,您可以重命名它,然后单独配置它的设置。其中一个项目设置是GCC预处理器值。您可以根据目标定义LITE或FULL变量,然后在代码中使用#ifdefs进行条件编译。

您可以为不同的目标添加不同的pList文件。只需右键单击pList文件,包含或排除每个目标的文件。