gpt4 book ai didi

ios - 在 iOS 中使用 CloudKit 在 iCloud 中保留收据

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:58 25 4
gpt4 key购买 nike

#1

我正在开发其中包含非续订订阅的 iOS 应用程序。我想让订阅在用户的所有设备上可用,并让用户恢复购买。

如 Apple 文档中所述:

For non-renewing subscriptions, use iCloud or your own server to keep a persistent record.

我不使用我自己的服务器,因为我的应用程序目前仅适用于 iOS。所以 iCloud 似乎是更简单的解决方案。

在观看和阅读了很多关于 iCloud 的 WWDC 视频和文档之后,对我来说最好的解决方案似乎是 CloudKit,因为键值存储限制为 1MB,我有很大的机会获得比这个更大的总数据大小用户(例如,经过一年的不同购买之后)。

问题是:到目前为止我说得对吗?

#2

我正在使用 RMStore 库进行购买。正如文档中所说,RMStore 没有对 iCloud 的事务持久性的引用实现,我在互联网上找不到任何示例,所以我必须自己从头开始。

我面临的第一个问题是:如果在用户购买订阅后将收据同步到 iCloud 时出现问题怎么办?例如:用户购买了订阅,出现了一些错误将它同步到 iCloud,关闭应用程序,就是这样。 这是真实情况吗?对于非续订订阅,Apple 不会在任何地方存储收据,因此我全权负责为我的用户交付和保存收据。 我是否应该在交易完成后立即将收据保存在 NSUserDefaults 或 Keychain 中,以便能够在用户下次启动应用程序时将同步数据与本地数据进行比较?或者也许我不应该在收据同步之前“完成交易”?我找不到 Apple 的任何指南......

#3

下一个明显的问题是:用户能否清除我应用程序的 iCloud 私有(private)存储空间?用户能否以某种方式删除 iCloud 收据中存储的内容,从而删除有关其购买的所有信息? 如果是 - 我应该如何处理?如果这种情况是真实的,我无法恢复他的购买并为他打开应用程序的功能,直到他再次购买订阅。

提前谢谢你。

最佳答案

  1. CloudKit 不限于 1MB。一个记录是有限的。但如果一条记录中的数据超过 1MB,则应考虑重构。如果它只是某种数据 block ,那么您应该将其保存在 CKAsset 中。为此,限制要高得多。

  2. 无论您使用何种技术,同步都将是一个问题。对此进行改进的一种方法是注册开始购买标志,然后进行购买,然后设置购买标志。然后,如果记录保持在“开始购买”状态,您就知道出了点问题,您可以在 App Store 中查看购买是否成功。

  3. 您应该在您的应用中添加恢复购买功能

关于ios - 在 iOS 中使用 CloudKit 在 iCloud 中保留收据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29318321/

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