【问题标题】:Create two iOS Apps in Xcode在 Xcode 中创建两个 iOS 应用程序
【发布时间】:2017-01-18 22:32:55
【问题描述】:

使用 Xcode(在 iOS 上开发)我想创建第二个项目,它与第一个项目相同,但有些类不同。

没错,我正在创建一个 iPhone 应用程序,我想提供免费版本和高级版本。实际上,项目的代码是相同的,只是改变了一些类。

问题是我不想支持两个项目。如果我修改一个类,那么我必须在另一个项目上修改相同的更改。这是非常多余的。

此外,项目被推送到远程 GIT 存储库。

最后一点,iOS 应用程序是使用与项目关联的 ID 来识别的。

那么,我需要两个不同的项目吗?

在 Xcode 中创建两个 iOS 应用项目共享类但更改两到三个类的最佳解决方案是什么?

谢谢

【问题讨论】:

    标签: iphone ios xcode projects


    【解决方案1】:

    我想提供免费版和高级版。

    在这种情况下,您不需要在两个项目中创建两个应用程序:您只需要为您的高级版本创建第二个目标。这是link that explains how to create and manage multiple targets in Xcode

    这个过程归结为向项目添加一个目标,为它定义一个单独的属性 plist,可选地为条件编译设置一个预处理器符号,并使用该符号来 #ifdef 免费中不需要的类的部分版本。

    另一种管理免费与高级产品的常用方法是免费提供一个版本,并让用户通过应用内购买将其升级为高级版。

    【讨论】:

      【解决方案2】:

      您只需创建两个目标。所以你只需要修改一个代码库,完美!

      This tutorial 将引导您完成(甚至使用精简版/付费版本作为示例)。

      【讨论】:

        【解决方案3】:
        1. 复制付费版目标并命名为免费版

        2. 在付费目标中定义宏名PaidApp=1,然后将这行代码放在applicationDidfinishLaunching的开头。

          #ifdef PaidApp
          [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"adDisabled"];
          #endif
          
        3. 免费应用运行目标时,如果有人购买付费应用功能,则将@"adDisabled" 的值设置为1(@"adDisabled" 默认值为0)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-23
          相关资源
          最近更新 更多