将我的应用想象为一个列表管理器。第一次启动时,您有一个空列表。您可以免费添加任意数量的内容,但如果您想要更多列表,则必须购买应用内购买。我有两种类型的 IAP:你可以一个一个地购买列表,作为消耗品(你不能转移到另一台设备),或者购买“无限列表”项目(非消耗品),它让你添加任意数量的列表,您的所有设备都将从中受益。请注意,如果您购买了第二个,我可能会禁用第一个。
为了处理这个问题,我在我的应用程序中使用了一个全局变量。该变量表示您可以拥有的最大列表数。首次启动时,值为“1”。如果您购买单个列表,则该值变为“2”,依此类推。如果您购买“无限包”,则该值设置为“-1”。因此,如果您当前的列表数量少于允许的数量,您可以添加新列表。
我需要以某种方式在本地保存此值,例如,如果用户购买了无限制套餐,他可以在返回应用程序时继续添加列表。
安全保存此值的最佳方法是什么?我通常使用 NSUserDefaults
但我不确定是否可以手动更改这些值。此外,在线存储它们不是一种选择,因为您可以离线使用该应用程序。
如果您认为我使用此变量处理 IAP 的方法不正确,请随时告诉我您将如何处理。谢谢。
最佳答案
您可以将其保存到 iOS Keychain 中。
有一个库可以帮助处理它:https://github.com/ldandersen/STUtils/tree/master/Security
因此,为了节省列表的数量,您可以像这样使用它
[STKeychain storeUsername:@"lists"
andPassword:@"1"
forServiceName:@"my_super_app"
updateExisting:YES
error:&error];
检索:
[STKeychain getPasswordForUsername:@"lists"
andServiceName:@"my_super_app"
error:&error];
关于ios - 节省重要值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752503/