实际上,我的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文件共享,但我的“完整版”确实...
我不知道我是否能很好地解释这个问题...(对不起我的英语......)
有什么想法吗?您如何管理项目中的版本?
提前致谢
答案 0 :(得分:22)
您需要为各种版本定义目标。
单击项目的根目录(蓝色xcode图标)。您将在表格中看到您的项目设置。在左侧,您将看到一个“TARGETS”标题,其中包含一个孩子,即您项目的名称。
您可以右键单击目标并复制它。一旦复制,您可以重命名它,然后单独配置它的设置。其中一个项目设置是GCC预处理器值。您可以根据目标定义LITE或FULL变量,然后在代码中使用#ifdefs进行条件编译。
您可以为不同的目标添加不同的pList文件。只需右键单击pList文件,包含或排除每个目标的文件。