我应该在哪里存储需要为给定的appleID持久化的数据?

时间:2013-08-29 18:08:20

标签: iphone ios icloud keychain data-storage

这个问题的答案可能是iCloud存储,但我使用它来获得非常轻量级的数据,并认为将iCloud用于此目的可能是极端的。我们有一个应用内订阅应用。在我们免费提供应用程序之前,在用户通过应用程序内订阅订阅内容之前,不会向其提供任何内容。

一些评论表明人们认为我们试图通过说免费来欺骗他们然后说他们必须订阅。我们希望将应用程序列为订阅价格以避免这种误解,但在第一年过后,为应用程序订阅提供继续。我们计划将初始发布日期存储在持久存储中,以便我们确定何时开始要求订阅收据。

1)我们希望使用钥匙串存储,因为即使用户从他/她的设备中删除应用程序然后重新安装,此信息仍将保留。问题是如果用户获得新设备但未从加密备份恢复,则初始化值将丢失。

2)如果我们使用我们的服务器为它们存储这个值,那么似乎没有办法将它绑定到那个appleID;因此被排除在外。

3)回到iCloud,为此添加iCloud支持似乎很多,我相信用户仍然必须启用iCloud才能使用。

有谁知道这个数据持久性问题的解决方案?感谢帮助!

1 个答案:

答案 0 :(得分:0)

是的,nsubiquitouskeyvaluestore是让它与新设备同步的方法。结合使用钥匙链将应用程序删除后存储在设备上,将nsuserdefaults用于快速简便的无约束访问是最佳选择。 Apple还有一种方法可以立即阅读实际应用购买的收据,但它仅适用于iOS 7.解决方案应有条件地依赖来自nsbundle.mainbundle URL的收据数据(如果可用)。