2013-10-13 15 views
0

我有一个Mac OS X应用程序与IAP。 IAP物品是可消费的,并且它们中的大量物品可以在很短的时间内使用,而不是一次使用,而是以小块使用。所以,基本上我不太可能将这些项目的消耗保存在我的服务器上,因为如果我这样做了,我的应用程序需要几乎不断地与服务器通信,只是为了更新小项目的消耗。如何在本地保存易损件IAP物品?

我已经设法将这些消耗品数据存储在本地位于用户应用程序容器文件夹中的文件上。我也使用过某种加密方式,因此用户无法轻松地为商品添加数量。

我的问题是:这种方法可靠吗?我最关心的是用户进行购买,然后以某种方式销毁我在本地保存的数据;这个丢失的物品永远不能被检索。当用户卸载或更新我的应用时,应用的容器文件夹中的数据是否会丢失?

另一方面,我无法在我的服务器上保存购买内容,并在用户丢失文件时恢复它们,因为我永远不知道用户从购买后已使用了哪些数量的产品。

回答

0

您可以使用钥匙串。它由具有数据存储/回溯API的Apple安全容器预定义。

+0

我实际上尝试过Keychain,但是因为我发现的所有例子都是针对iOS的,所以我无法在Mac上使用它:我可以将数据存储在Keychain上,但用户可以轻松访问并更改它。我知道我做错了什么,但我无法弄清楚这个问题。所以,我放弃了使用钥匙串。 – DARKMATTER

+0

所以你基本上可以实现你自己的加密保护服务。有很多图书馆这样做。检查这个http://stackoverflow.com/questions/1276798/crypto-library-suitable-for-objective-c你可以将用户的数据存储在iCloud中。 –

+0

是的,我可以加密数据。我主要关心的是在哪里存储这些加密数据?例如,如果我的应用程序被卸载或更新,我不希望这些数据丢失。如果用户卸载或更新我的应用程序,将存储在容器文件夹中的数据或您建议的iCloud数据会丢失吗? – DARKMATTER