2013-08-29 47 views
0

这个问题的答案可能是iCloud存储,但我使用这个数据的重量非常轻,并认为使用iCloud实现这一目的可能是极端的。我们有一个应用内订阅应用。在我们免费提供应用程序之前,不会向用户提供任何内容,直到用户通过应用程序内订阅订阅内容为止。我应该在哪里存储需要为给定的appleID保留的数据?

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

1)我们希望使用钥匙串存储,因为即使用户从他/她的设备上移除应用程序然后重新安装,这些信息仍会持续存在。问题是,如果用户获得新设备并且未从加密备份恢复它,则初始化的值将丢失。 2)如果我们使用我们的服务器为他们存储这个值,那么似乎没有办法将它与该appleID绑定;所以排除这种可能性。

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

有谁知道这个数据持久性问题的解决方案吗?帮助表示赞赏!

+1

@JustinMeiners,事实并非如此 - NSUserDefaults不同步。你可能会想'NSUbiquitousKeyValueStore' –

+0

@TomHarrington啊你是对的,我的坏 –

回答

0

是的,nsubiquitouskeyvaluestore是让它与新设备同步的方式。结合使用这两个keychain在应用程序被删除后存储在设备上,以及nsuserdefaults快速轻松地进行非限制访问是一种方法。 Apple还有一种方法可以读取实际购买的应用程序的收据,但它只适用于iOS 7.解决方案应有条件地依赖nsbundle.mainbundle url中的收据数据(如果可用)。

相关问题