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

我们正在创build一个应用程序如下:

  • 用户从2个免费的“令牌”开始
  • 用户可以通过购买$ .99的应用程序购买一包10个代币

我们使用NSUserDefaults实现了这个NSUserDefaults来保存令牌的数量。

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

如果没有,我们将不得不使用一个Web服务…

注:这个应用程序是在MonoTouch,但可能无关的问题。 此外,在我们的应用程序,用户不会重新安装应用程序获得2个令牌(没有其他设置或游戏进度将失去)。

只是我的2c作为@Almo涵盖了大部分已经和应得到的学分:-)

NSUbiquitousKeyValueStore具有被用户使用的优点 ,例如多个设备将共享相同的自由标记。 OTOH,这可能不是你想要在你的应用程序中的东西…

卸载后保留数据违背应用程序的沙盒 。 有办法做到这一点,就像你可以添加图片/照片/联系人/ …,但不太可能是“苹果认可”,而且可能很容易破解。

所以我也build议你使用networking服务。 如果没有find应用程序数据(安装并重新安装),如果它是一个已知的设备(无令牌),或者不是,则简单的方法是使用服务进行validation(例如,使用设备的MAC地址,因为设备唯一标识符将会消失) (拿到令牌)。

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

您可以将标记设置为钥匙串。 如果用户卸载应用程序并重新安装,则可以从钥匙链中恢复令牌。

sskeychain

即使你试图使这个设置持续下去,我也不认为在重新安装的时候,他们很难find并删除它。 如果你想防止只是偶然的作弊,也许这很好。 但是,如果这是您的收入来源,我build议使用Web服务。

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