ios - 节省重要值(value)

标签 ios security in-app-purchase

将我的应用想象为一个列表管理器。第一次启动时,您有一个空列表。您可以免费添加任意数量的内容,但如果您想要更多列表,则必须购买应用内购买。我有两种类型的 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/

相关文章:

security - 创建一个经过身份验证的用户可以访问但匿名用户不能访问的安全 Orchard CMS 页面

security - 您可以从命令行读取敏感输入吗?

security - 将 DropBox 中的 OAuth 凭据安全地存储在数据库中以供以后使用

ios - 从 iOS 上没有 IAP 的版本升级后,为用户帐户保留 IAP

ios - UITableViewCell EditingStyle Delete 无法正常工作

iphone - 应用程序在 [TestFlight takeOff : @""] in iOS 6. 1.2 上崩溃

ios - 如何在 SwiftUI 中自定义文本

ios - Swift Firebase 访问子快照数据

ios - 将应用内集成到 iOS 应用程序时出现问题

iphone - 应用程序内购买无法正常工作。它给出 "Can not connect to itunes"