有几种方法可以实现您想要的。为不同版本的应用程序使用多个存储库或分支不是一个好的选择。代码库可能会随着时间的推移而出现分歧,并且变得非常难以维护。
为了解决这个问题,我们更喜欢在 XCode 中使用单独的目标配置。
创建应用程序新版本的最简单方法:
- 复制当前目标
- 将其重命名为“XXX 内部”而不是“XXX 副本”(可选)
- 将捆绑标识符更改为与原始目标不同
- 将“XXX copy-Info.plist”文件重命名为更好的名称,并从目标的构建设置中更改 Info.plist 引用(可选)
现在您可以从目标的配置窗格更改任何配置。
为了区分正在运行的应用程序的版本,您可以在目标的构建设置中定义宏(例如 FREE=1),或者您可以检查代码中的当前标识符、应用程序名称等来设置当前版本。
typedef enum {
QWEAppStore,
QWEAppStoreFree,
} QWEAppVersion;
#ifdef FREE
#define QWECurrentVersion QWEAppStoreFree
#else
#define QWECurrentVersion QWEAppStore
#endif
然后在您的课程中使用它,例如:
- (IBAction)buttonTapped:(id)sender
{
if (QWECurrentVersion == QWEAppStore) {
// Do something
} else {
// Do something else
}
}