4

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

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

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

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

有任何想法吗?

4

2 回答 2

1

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

以上只运行了一次,保证了demo的用户可以继续使用demo,直到购买了In-App Purchase(价格与游戏第二版相同),并且保证v1.0开始的完整版用户按计划有完整版。

于 2010-04-05T21:13:52.967 回答
0

没那么容易。推出一个小更新您当前的应用程序并记录所有激活应用程序内的人的设备 ID。

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

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

于 2010-04-05T17:04:35.690 回答