iOS - 是否有其他像 KeyChain 一样安全但在删除应用程序时被删除的东西?

iOS - Is there something else that is secure like KeyChain but gets deleted when app is deleted?

我的应用程序中有一些由 Apple 托管的 IAP。 IAP主要是图片。

为了跟踪用户是否购买了我的东西,我使用 KeyChain 来存储购买的 IAP 数组。

如果用户删除了应用。从 Apple 服务器下载的内容将被删除,但 keychain 中的数组将保持不变。当用户重新安装应用程序并点击解锁的 IAP 时,他们将看到一个空白的 imageViews。

这是我所知道的:

我想安全地存储一系列已购买的 IAP,这些 IAP 在应用被删除时也会被删除。

我该怎么做?是否有其他像 KeyChain 一样安全但在删除应用程序时被删除的东西?

非常感谢任何帮助。

也许这不是最优雅的方法,但我能想到的就是这些。 在 NSUserDefaults 中保留一个标志,例如 isFirstLaunch,并在您的应用首次启动时执行迁移任务:例如,如果是 FirstLaunch,则删除钥匙串中的所有 IAP。

迁移总是痛苦的,但希望能有所帮助。

但是您可以使用 NSKeyedArchiver 对您的对象进行编码,然后将它们存储在您的 NSUserDefaults 中。

存档: Swift

let data = NSKeyedArchiver.archivedDataWithRootObject(yourObject)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "yourKey")

ObjC

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:yourObject];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"yourKey"];

取消归档: Swift

NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKey"];
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];

ObjC

NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKey"];
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];

here