适用于付费应用的iOS应用内购买

时间:2015-02-08 04:35:07

标签: ios in-app-purchase

我创建了一个付费应用的应用。现在我想让它免费,以便更多用户可以下载应用程序并在应用程序购买中使用以限制某些功能。但有些用户已付款购买我的应用。如何在app中为新用户实施购买同时保持对旧用户的完整功能访问?

4 个答案:

答案 0 :(得分:1)

您可以通过阅读App Store receipt来完成此操作。收据包含原始购买的版本号和日期。

有两个主要注意事项:首先,这仅适用于iOS 7及更高版本。其次,Apple不包含解析收据的代码(因此用户不容易理解我理解)。但是,有一些源库,虽然使用一个常见的库将不太安全。

答案 1 :(得分:1)

如果您连接到服务器以注册用户信息,您始终可以创建一个在应用启动时执行的API,以验证用户是否为完全访问权限用户。

但我担心你的情况不是上述情况。

在这种情况下,您需要将数据(在此上下文中使用某些加密密钥)与iCloud同步,并且在启动应用程序时,您可以验证用户的类型。

与钥匙串相比,使用iCloud中的数据更安全,因为它涵盖了设备格式方案。但绝对不是万无一失。

其他解决方案可以使用Apple Purchase Receipt来验证之前购买的版本。但这只是从iOS7开始支持。

查看一些开源库以了解收据的解析: https://github.com/rmaddy/VerifyStoreReceiptiOS

因此,结合多种策略是您问题的唯一答案。

答案 2 :(得分:0)

这是一个简单的示例,但是如果您正在使用服务器上的数据库(而不是手机本身),那么您不能为计划销售的每个功能使用布尔值,而只是对于当前在数据库中的所有用户,将该布尔值设置为true。这假设是真的意味着他们已经购买了这个功能,虚假意味着他们还没有购买它。 您可以在发布更新的应用程序后运行此查询一次,然后在此之后的每个用户对您要销售的这些功能的默认值为false。

答案 3 :(得分:0)

这种情况没有完美的解决方案。

建议1:

推出最后一次付费更新。在此更新中,使用钥匙串存储这些IAP标志。然后在免费版本中,检查钥匙串中的这些标志。即使应用程序被删除并在以后使用免费版本重新安装,这也会有效。但是,如果设备被完全重置,无论是由于某些iOS版本更新还是用户,都将无法正常工作,除非还涉及备份和恢复。

建议2:

不是一个建议。但我已经看到AppStore上的类似应用程序刚推出免费版本。然后应用程序遭到以前用户的错误评论!