使用Xcode(在iOS上开发)我想创建第二个项目,它与第一个项目相同,但有些类是不同的。
确切地说,我正在创建一个iPhone应用程序,我想提供免费版和高级版。实际上,项目的代码是相同的,但改变了一些类。
问题是我不想支持两个项目。如果我修改了一个类,那么我必须在另一个项目上修改相同的更改。这是非常多余的。
此外,该项目被推送到远程GIT存储库。
最后一点,使用与项目相关联的ID来识别iOS应用程序。
那么,我需要两个不同的项目吗?
哪个是在Xcode中共享类的两个iOS App项目的最佳解决方案,但更改了两个类?
由于
答案 0 :(得分:17)
我想提供免费版和高级版。
在这种情况下,您无需在两个项目中创建两个应用程序:您需要的只是高级版本的第二个目标。这是link that explains how to create and manage multiple targets in Xcode。
该过程归结为向项目添加目标,为其定义单独的属性plist,可选地为条件编译设置预处理器符号,并将该符号用于#ifdef
部分类中不需要的免费版。
管理免费和高级产品的另一种常见方法是免费提供单个版本,并允许用户通过应用内购买将其升级到高级版。
答案 1 :(得分:6)
您只需要创建两个目标。因此,您只需修改一个代码库,完美!
This tutorial将引导您完成(甚至使用精简/付费版本作为示例)。
答案 2 :(得分:0)
付费版本的重复目标,并将其命名为免费版
在付费目标中定义宏名称PaidApp=1
,然后将此行代码放在applicationDidfinishLaunching的开头。
#ifdef PaidApp
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"adDisabled"];
#endif
当免费应用运行目标时,如果有人购买付费应用功能,则设置@" adDisabled"为1(默认值为@" adDisabled"将为0)