iOS - 帮助我了解多个目标和应用内升级/购买

Posted

技术标签:

【中文标题】iOS - 帮助我了解多个目标和应用内升级/购买【英文标题】:iOS - Help me understand multiple targets and in-app upgrades/purchases 【发布时间】:2012-07-27 17:29:26 【问题描述】:

好吧,伙计们,请放轻松。多年来,我一直在玩这个板,并得到了很多帮助,我什至无法开始思考没有它我会在哪里。所以感谢多年来的帮助!

我有一个典型的场景: 免费应用程序和付费应用程序。一年前我发布了我的免费版本,最近才发布了我的付费版本。我的目标是更新我的免费版本,使其能够升级到我的付费版本。经过研究,似乎我最好的选择是构建 2 个目标,然后使用 #ifdef 打开和关闭我想要限制的某些功能。

所以我继续复制我的付费目标,进行所有需要的 plist 更改并输入这样的代码...

#ifdef LITE_VERSION
    NSLog(@"Lite Version");
    [self loadAds];  
#endif

这很好用,我现在有一个带有广告的 Lite 目标和一个没有广告的付费目标。 (当然还有其他一些功能)

但现在我有点困惑从这里去哪里。 我是否使用 StoreKit 将升级按钮链接到我的付费版本?如果有,怎么做? 还是有更好的方法来实现这一点?

我知道有人提出并回答了类似的问题,但它们似乎都涵盖了编程部分,但没有涵盖除此之外的内容。

谢谢 梅林

【问题讨论】:

【参考方案1】:

#define 在编译时工作,因此如果您想要一个代码库来创建应用程序的单独版本 - 例如带有广告或功能有限的“免费”版本,以及完整的“付费”版本,它会很有用.

添加方法如下:

在您的项目中创建一个额外的目标(这将是“免费”版本) 在免费应用程序的编译选项中,在Other C Flags下,添加-DFREE_VERSION 与您最初的问题一样,使用定义来控制免费/付费版本中的内容。
#ifdef FREE_VERSION
[self showAds];
#endif

注意:要使用户能够在运行时购买/解锁功能(例如使用 StoreKit),您不能使用 #define 技术。

【讨论】:

以上是关于iOS - 帮助我了解多个目标和应用内升级/购买的主要内容,如果未能解决你的问题,请参考以下文章

ios IAP 内购验证

如何查看 ios 游戏内购消费订单?

iOS - 应用内购买 - 恢复按钮?

玩IOS游戏怎么内购

iOS内购丢单的解决方案

iOS 应用内购买不适用于真实账户,但可以使用沙盒