对于给定的 AppleID,我应该在哪里存储需要持久保存的数据?
Posted
技术标签:
【中文标题】对于给定的 AppleID,我应该在哪里存储需要持久保存的数据?【英文标题】:Where should I store data that needs to persist for a given appleID? 【发布时间】:2013-08-29 18:08:20 【问题描述】:这个问题的答案可能是 iCloud 存储,但我将其用于非常轻量级的数据,并认为将 iCloud 用于此目的可能是极端的。我们有一个应用内订阅应用。在我们免费提供该应用但在用户通过应用内订阅订阅内容之前不会向其提供任何内容之前。
一些评论表明人们认为我们试图通过说免费然后说他们必须订阅来欺骗他们。我们希望将应用列为订阅价格以避免这种误解,但在第一年过去后,为他们提供应用内订阅以继续。我们计划将初始发布日期存储在永久存储中,以便我们可以确定何时开始要求订阅收据。
1) 我们希望使用钥匙串存储,因为即使用户从他/她的设备中删除应用程序然后重新安装,此信息也会保留。问题是如果用户得到一个新设备并且没有从加密备份中恢复它,那么初始化的值将会丢失。
2) 如果我们使用我们的服务器为它们存储这个值,那么似乎没有办法将它绑定到那个 appleID;所以排除了这种可能性。
3) 回到 iCloud,为此添加 iCloud 支持似乎很多,我相信用户仍然必须启用 iCloud 才能使其工作。
有人知道这个数据持久性问题的解决方案吗?感谢您的帮助!
【问题讨论】:
@JustinMeiners,这不是真的——NSUserDefaults 不同步。你可能在想NSUbiquitousKeyValueStore
@TomHarrington 啊,你是对的,我的错
【参考方案1】:
是的,nsubiquitouskeyvaluestore 是让它与新设备同步的方法。将其与钥匙串结合使用,以便在删除应用程序后存储在设备上,以及使用 nsuserdefaults 来快速轻松地进行无限制的访问,这是可行的方法。 Apple 现在还可以读取实际应用购买的收据,但它仅适用于 ios 7。解决方案应有条件地依赖来自 nsbundle.mainbundle url 的收据数据(如果可用)。
【讨论】:
以上是关于对于给定的 AppleID,我应该在哪里存储需要持久保存的数据?的主要内容,如果未能解决你的问题,请参考以下文章