gpt4 book ai didi

iphone - iCloud 使用户可以访问 "steal"应用内消耗品

转载 作者:太空狗 更新时间:2023-10-30 03:38:03 25 4
gpt4 key购买 nike

在我的应用中,用户购买存储在 Core Data 中的消耗品,比方说手提箱。当用户首次安装该应用程序时,我会赠送他们一份免费赠品让他们开始使用。如果不设置至少一个手提箱,该应用程序将无法运行。

但是如果用户先在他们的 iPhone 上安装该应用程序,然后在他们的 iPad 上安装并同步两者,他们现在有 2 个手提箱。如果他们在任一设备上卸载该应用程序,然后重新安装并同步它,他们就多了一个应用程序,而且他们可以无限期地这样做。

我可以看到两个解决方案,但似乎都不对:

  1. 当用户首次与 iCloud 同步时,向 NSUbiquityKeyValueStore 添加一个值。首次启动时检查此值。如果为零,则创建免费赠品,如果不是,则同步数据。但这会产生一个问题。如果用户在首次启动时禁用 iCloud 或没有互联网连接怎么办。该应用程序会创建免费赠品,然后在 iCloud 可用时同步副本,他们可以根据需要多次执行此操作。

  2. 以某种方式匹配每个应用程序的默认项目。我有匹配 objectID 或时间戳的想法,但这些会有所不同,我不确定如何处理它。

有人知道我能做些什么吗?

编辑:

使用预打包的数据库加上 migratePersistentStore:toURL:options:withType:error: 似乎是可行的方法。如果对我有用,将发布带有代码的答案。

最佳答案

如果您不验证收据并跟踪用户在您自己的服务器上拥有的消耗品,那您就错了。您基本上是在相信用户是正派和诚实的,这通常不是一个好主意。

当您使用应用内消费品时,您应该在服务器上的某处记录用户购买的商品。这样,每次您的应用程序启动时,它都可以向服务器验证是否存在预期数量的消耗品。

关于iphone - iCloud 使用户可以访问 "steal"应用内消耗品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com