两个版本的iOS应用程序 - 免费和付费 - 如何在XCode中有条件地更改项目ID?

ale*_*pro 10 iphone xcode ios

我的应用程序ID为com.mydomain.AppName,这是一个付费版本.

我决定推出免费版本,通过我的代码,我可以轻松添加广告/删除一些简单的#defined/#ifdef业务功能.

但是,我确实需要我的应用程序ID与免费版本不同.我如何有条件地为我的应用程序执行此操作(即#ifdef FREE_VERSION ...等)?

JSc*_*rry 16

这个问题在之前的帖子中得到了解答

基本思想是创建两个目标,然后使用#ifdefs或创建单独的文件来控制两个目标中的内容.创造另一个目标很简单.只需右键单击现有目标并复制它即可.为它提供免费应用程序所需的名称.

在您的情况下,您可能希望为免费和付费游戏设置不同的图标,因此创建两个图标文件夹 - 一个名为Free-Icons,另一个名为Paid-Icons.将它们放在项目文件夹中,并在导入时将它们附加到其中一个目标.

我复制了原始的Info.plist和Prefix.pch文件,并给它们不同的名称,但你可以使用相同的名称,只需将它们放在不同的文件夹中.您需要调整每个目标的构建设置以反映新名称.

您可能在免费应用中的内容也较少.只需选择仅在付费应用中和检查员中的声音和图片,将目标成员资格标记为付费应用.

您还需要编辑方案,以便构建两个版本.我刚刚为我正在进行的项目完成了这项工作,从开始到结束花了大约两个小时来找到需要更改的所有内容.我猜我现在可以在大约15分钟内添加另一个版本,因为我知道我在做什么.

这种做法比复制代码或在一个代码库中交换内容更好,因为您可以轻松地在目标之间来回切换,以确保在进行更改时一切正常.


Adi*_*dey 0

您可以通过拥有不同的 XCode 项目来实现这一目标 - 每种类型的应用程序依赖于通用代码(也称为库 XCode 项目)。一个 XCode 项目将用于付费应用程序,并且将具有不同的宏、设置函数。另一个 XCode 项目将是免费应用程序。这两个应用程序的项目都可以包含共享源 - 它将基于宏(付费免费)等进行编译。