【问题标题】:Remove In-App Purchase from free app and increase the price从免费应用程序中删除应用程序内购买并提高价格
【发布时间】:2010-04-04 18:55:48
【问题描述】:

App Store 中应用程序的当前版本是免费的,并且功能非常有限。应用内购买可以解锁其他一切。

我决定删除应用内购买,只是让应用程序的价格与应用内购买相同。但是,如果我现在进行更新,那么那些拥有免费版本但尚未支付应用内购买费用的用户将获得免费更新为完整版本。

我已从应用程序中删除了我的单例类 PurchaseManager 的所有痕迹,因此此时,当我构建/运行它时,所有功能都已解锁。在这一点上,我如何确保免费版用户不只是将更新升级为完整版?

也许有一种方法可以测试该应用是通过更新还是通过购买获得的?这样,如果是通过更新,我会看看是不是没有 IAP 的免费版本,然后强制用户购买 IAP 继续玩。

有什么想法吗?

【问题讨论】:

  • 不能指定更新价格吗?所以如果你想更新(到完整版),你必须付费。
  • 那么支付了第一个版本的应用内购买的用户将需要再次付费才能更新。我试图避免这种情况。

标签: iphone app-store in-app-purchase


【解决方案1】:

保证在第一个版本中设置了用户默认值。如果 objectForKey: 返回 nil,则它从未设置,这意味着第一个版本从未运行。在这种情况下,我将是否购买应用内购买的用户默认设置为“是”。

上面只运行了一次,保证了demo的用户继续使用demo直到他们购买了应用内购买(价格与游戏第二版相同),并且完整版的用户从v1.0 按计划有完整版。

【讨论】:

  • 有趣的方法。因此,您保留所有 IAP 功能,但只向从未升级的免费版本用户展示。唯一的缺点是必须在未来版本中支持 IAP。至于仅存在于第一个版本中的 NSUserDefaults 值,我想一个简单的解决方案是在后续版本中重命名一些默认值。因此,较新版本的应用程序将使用“username2”而不是“username”,如果定义了“username”,则很明显用户拥有的是较早版本。
  • 我认为这是你能做的最好的事情。但这并不是万无一失的。如果有人从手机上卸载应用程序,然后安装更新(我相信)你的 NSUserDefault 设置将消失。它看起来像是新购买的,因此用户将获得所有功能。如果他们将第二部手机添加到帐户中,也会出现同样的问题。
【解决方案2】:

没那么容易。推送当前应用的小更新,并记录所有激活应用内用户的设备 ID。

在您的网站上发布博客,要求用户发送他们的设备 ID 和电子邮件,以补偿应用内购买的费用。您可以从收集的设备 ID 中交叉验证这一点。

我知道这很痛苦。大多数首先在 Cydia 上发布他们的应用程序然后在应用程序商店正式发布的人都是这样做的。例如,快照。

【讨论】:

  • 你这样做会损失很多钱,因为苹果会拿走 30%。我不会推荐这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多