0

可能重复:
通过应用内购买解锁完整版本的安全方式

保护在应用内购买后下载的内容不被复制到另一台设备的推荐方法是什么?典型的过程似乎是将内容复制到“应用程序支持”文件夹并在 NSUserDefaults 中设置一个标志。这两者都可以由通过 Finder 或类似设备访问 iOS 设备的人进行更新。如果我存储交易收据,也可以复制。

我可以潜在地使用 restoreTransactions 功能来验证设备何时在线,但这需要用户输入他们的密码,因此它不是静默背景检查,如果设备离线,显然将无法工作。

我很想在下载内容时使用设备 ID 将内容绑定到设备,但 Apple 建议不要使用此功能。

我错过了什么吗?

4

1 回答 1

0

正如您所提到的,将其保存在中的状态NSUserDefaults很容易编辑,但是将状态保存在 KeyChain 中会使用户更难更改下载的标志状态。

我将所有 IAP 下载状态保存在 KeyChain 中,确保您不能只将密钥设置为 true NSUserDefaults

在我们开发的游戏中,如果用户购买了游戏物品,我们还会检查服务器端(也包括收据检查)。

在阅读器中,我们通过一种基于名称和一些秘密内容的随机代码使 PDF 受密码保护;)

我的猜测是,这应该会让你不那么容易破解,但请记住,你也不能保持头脑清醒。但你绝对可以减慢它们的速度。

于 2013-01-16T13:17:24.797 回答