Ios 在同一个项目中构建免费和付费应用程序的最佳方法是什么?

Ios 在同一个项目中构建免费和付费应用程序的最佳方法是什么?,ios,ios7,xcode5,Ios,Ios7,Xcode5,我正在完成我的第一个申请,并研究了一些方法,以便在同一个项目中使用两个目标。很少有功能会减少免费版本并添加adbmob横幅。 接下来的各种教程中,致力于区分目标的是: 我研究了其他完成此任务的方法,这些方法都是旧线程,无法使其工作 我试图添加免费版本预编译器宏,但出现了许多错误。我还尝试在LLVM 5.1中的其他C标志中添加FREE_版本-自定义编译器标志 我不确定这些方法是否仍然有效,或者是否有更好的方法。是否有人有一种更为流行的方法来实现这一点,或者我可以使用我在主题开头引用的方法 您可以

我正在完成我的第一个申请,并研究了一些方法,以便在同一个项目中使用两个目标。很少有功能会减少免费版本并添加adbmob横幅。 接下来的各种教程中,致力于区分目标的是:

我研究了其他完成此任务的方法,这些方法都是旧线程,无法使其工作

我试图添加免费版本预编译器宏,但出现了许多错误。我还尝试在LLVM 5.1中的其他C标志中添加FREE_版本-自定义编译器标志

我不确定这些方法是否仍然有效,或者是否有更好的方法。是否有人有一种更为流行的方法来实现这一点,或者我可以使用我在主题开头引用的方法

您可以使用预处理器宏屏蔽只应在一个或另一个版本中运行的代码,并且可以使用用户定义的生成设置区分应用程序属性列表中的重要字段。提交时,只需确保在正确的构建方案中为每个版本生成存档即可


然而,苹果对“促销”越来越不友好了,所以如果你的免费版本要求用户考虑下载付费版本,它很可能会被拒绝(他们将引用指南2.9)。为了避免这种情况,您可以制作一个单一的免费版本并通过应用程序内购买进行升级,或者您可以小心确保免费版本不会将用户推向付费版本。

您需要更具体地说明“更好”的含义如果在使用预编译宏时出错,那么显然是做错了什么。这是经常使用的东西(我在每个项目中都有很多,包括在.pch和在xcconfig文件中定义的)。但是“发生了许多错误”并不是我们可以使用的描述。@RobertHarvey我的疑问是我使用的方法是否是“正确”的方法。如果它真的能在发送到苹果时起作用,它在以下方面是“正确的”:它正在起作用。你可以通过这种方式创建两个应用程序版本,然后提交给苹果。当然,它们必须有不同的包标识符。我们经常这样做。@DarkDust检查我添加宏时出现的几个错误中的一个,我注意到我添加的方式不对。出现的错误之一是:“错误:宏名称必须是标识符”。我添加了“-FREE\u VERSION”,而正确的应该是“FREE\u VERSION=1”。谢谢!非常感谢。我对我的主题发表了评论,它可以使用宏。非常有趣的是,你现在报告了我这个问题,我将首先发送付费版本,因为我仍然需要在免费版本中完成一些事情,所以我将看看是否使用应用内购买功能。谢谢你的提示!