ios - 即使用户重新安装后也限制 iOS 应用程序

标签 ios swift in-app-purchase

我创建了一个应用程序,在首次启动时为用户提供 3 个硬币。
用户用完 3 个硬币后,他应该通过应用内购买购买无限的硬币。
问题是,如果用户不想购买无限的硬币,他可以删除该应用程序,重新安装该应用程序,然后他将再次拥有 3 个硬币。
而且他可以永远这样做,而无需购买 In -应用程序购买。

有没有一种简单的方法可以防止这种情况发生?即使删除应用程序后,我如何知道用户是否完成了应用程序内的硬币?

最佳答案

您可以通过两种不同的方式处理这个问题。

方法一:将标识符存储在钥匙串(keychain)中

  1. 首先检查 keychain 中的值如果用户已经安装 是否在此设备上安装该应用。
  2. 如果是首次安装,请提供免费硬币并将用户 ID/标志存储在钥匙串(keychain)中以识别将来的安装。

You will lose this keychain data, if user reset their device.

重置设备后,您将再次提供硬币,因为您的标志/标识符将不会出现在钥匙串(keychain)中。

如果你想避免这种情况,那么你必须采用第二种方法。

方法 2:在服务器上存储标识符

而不是将详细信息存储在设备钥匙串(keychain)上。您必须将其保存在您的服务器上。应用程序首次启动时,您必须检查您的服务器以提供详细信息。

This approach always works even user reset their device

关于ios - 即使用户重新安装后也限制 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967276/

相关文章:

ios - UIKit 和 GCD 线程安全

ios - SpriteKit : Finding unexpectedly nil while unwrapping, 无法实现多菜单场景

ios - 具有环绕但不滚动的 UIView 的水平列表

ios - 生产(订阅)中的错误域=SKErrorDomain 代码=2 "can not connect to iTunes Store"?

ios - 应用内购买弹出窗口不会立即显示,而是会出现延迟

Spring android 的 iOS 替代品

iphone - 在 iOS 上以编程方式获取列表 Internet 访问点

ios - phonegap 构建 ios 应用程序中的应用程序内购买集成

ios - 在 Swift 中为 Int 添加千位分隔符

swift - 您可以在 SwiftUI 中直接将 Publisher 用作 @ObjectBinding 属性吗?