适用于iOS的iOS多个版本

ing*_*ham 15 xcode ios

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

例如:

#import "AppVersion.h"

//...

if (MYAPP_VERSION == kMyAppVersionFree) {
   //Limited features
}
else if (MYAPP_VERSION == kMyAppVersionFull) {
   //No limit !
}
Run Code Online (Sandbox Code Playgroud)

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

题:

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

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

我要求一个不同的info.plist,因为我的"免费版"不支持iTunes文件共享,但我的"完整版"确实...

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

任何的想法 ?您如何管理项目中的版本?

提前致谢

Red*_*ing 22

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

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

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

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