10

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

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

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

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

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

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

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

谢谢

4

3 回答 3

19

I want to offer a free version and a premium version.

In this case, you do not need to create two apps in two projects: all you need is a second target for your premium version. Here is a link that explains how to create and manage multiple targets in Xcode.

The process boils down to adding a target to the project, defining a separate properties plist for it, optionally setting up a preprocessor symbol for conditional compile, and using that symbol to #ifdef portions of your classes not needed in the free version.

Another common approach to managing free vs. premium offering is to provide a single version for free, and let users upgrade it to premium through an in-app purchase.

于 2013-04-15T16:12:09.990 回答
6

You just have to create two targets. So you'll only modify a single code base, perfect!

This tutorial will walk you through (and even uses lite/paid versions as it's example).

于 2013-04-15T16:13:20.200 回答
0
  1. 付费版本的重复目标并将其命名为免费版本

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

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

于 2016-12-29T12:18:12.637 回答