ios - 如何使用具有不同应用程序名称和 info.plist 的相同来源创建两个项目?

标签 ios xcode

实际上,我的 iOS 应用程序在同一个项目中包含多个版本,在 Static 类中用 #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 个项目,使用完全相同的源(许多类)但具有不同的应用程序名称和不同的 info.plist(并且,相对于上一个问题,不同的“编译变量")?

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

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

最佳答案

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

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

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

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

关于ios - 如何使用具有不同应用程序名称和 info.plist 的相同来源创建两个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661167/

相关文章:

ios - 如何摆脱表格单元格的选择样式,但仍然接收 setSelected/设置突出显示的单元格

ios - "directory not found for option"Flurry 分析库

ios - UITextfield 的 NSDictionary 元素

iphone - 该目标可能包括其自己的产品

iphone - 不能再使用带有 XCode 的 iPhone 进行测试,iPhone OS 是较新的版本

xcode - Mac os x/usr/bin/gcc 文件

objective-c - 表格单元格的背景色

ios - 意外行为文本 textFieldShouldBeginEditing/textFieldDidBeginEditing

ios - 为什么 UIBarButtonItems 最小尺寸时宽度为 0

ios - 从 Objective-C 对象生成 MD5 哈希