应用程序删除后的iOS App持久设置

时间:2012-01-25 14:46:09

标签: objective-c ios xamarin.ios settings icloud

我们正在创建一个应用程序,如下所示:

  • 用户以2个免费“令牌”
  • 开头
  • 用户可以通过$ .99应用内购买购买一包10个代币

我们已使用NSUserDefaults实现了此功能,以节省令牌数量。

有没有办法让我们的免费2令牌设置持久?即使他们删除了应用程序?现在你可以删除应用程序并重新安装以再次获得2个令牌。 iOS 5有NSUbiquitousKeyValueStore用于保存设置到iCloud,还有更好的吗?

如果不是,我们将不得不使用网络服务...

注意:此应用程序在MonoTouch中,但可能与问题无关。此外,在我们的应用程序中,用户无需重新安装该应用程序以获得另外2个令牌(没有其他设置或游戏进度会丢失)。

3 个答案:

答案 0 :(得分:6)

只是我的2c,因为@Almo已经涵盖了大部分内容,应该得到学分: - )

NSUbiquitousKeyValueStore具有优势属于用户,例如几个设备将共享相同的免费令牌。 OTOH可能不是你想要的东西......

卸载后保留数据会违反应用程序的沙盒。有办法做到这一点,比如你可以添加图片/照片/联系人/ ......,但不太可能被“Apple批准”,而且很可能很容易被黑客攻击。

所以我也建议你使用网络服务。一个简单的方法是验证服务(例如,使用设备的MAC地址,因为设备唯一标识符正在消失),如果没有找到应用程序数据(安装和重新安装),如果它是一个已知的设备(没有令牌) (得到令牌)。

如果付费令牌可重复使用(可以通过重新安装包含它们作为数据的备份来重新播放),那么您可能希望使用Web服务跟踪它们。不可重复使用的令牌不会受此影响(并且可能更容易处理)。

答案 1 :(得分:6)

您可以将令牌设置为钥匙串。如果用户卸载应用程序并再次安装,则可以从Keychain恢复令牌。

sskeychain

答案 2 :(得分:1)

即使你试图让设置持久化,我也不认为在重新安装过程中找到它并删除它也不会那么困难。如果你想防止偶然作弊,也许那很好。但如果这是您的收入来源,我建议您使用网络服务。

编辑补充:我对iCloud没有任何经验。这也许是有意义的。