如何更新iOS应用程序,但文件除外

时间:2013-04-08 11:53:51

标签: iphone ios xcode settings sandbox

我正在制作我的第一个iOS应用。我有一个问题。在我的应用程序中,我想在Settings.plist中保存应用程序的当前状态:已完成的级别,已达到的分数,资金,应用程序内购买等。问题是,如何放置此plist,以便在用户更新应用程序时,他/她不会丢失这些设置。我读到了关于应用程序沙箱,但我不明白 它是如何工作的,我如何从Xcode管理它。

2 个答案:

答案 0 :(得分:2)

您应该将这些设置存储在 NSUserDefaults 中。安装新的应用程序版本时会保留它们,因此您不会遇到任何问题。

答案 1 :(得分:0)

两点:

a)当您通过提交相同应用的新版在应用商店中更新应用后,旧版本创建的文件不会丢失。因此,您可以在应用程序的文档或库目录中存储您喜欢的任何内容,并期望它在更新后仍然存在。 iTunes / Caches目录不会被iTunes备份或恢复,因此不要在其中放置任何您无法重新创建的目录。如果您提交的是不同版本的应用程序(不是更新,而是新的应用程序,因此您在应用程序商店中有两个独立的应用程序,可能是免费的和付费的),我无法知道新版本是否可以访问第一个版本创建的文件。

b)用户可以轻松阅读,删除或更改您在Documents /或Library /中创建的任何文件。它可以通过他/她的Mac上的应用程序完成,例如iExplorer(可从macroplant.com下载)。因此请注意,如果文件是人类可读的,即.plist文件,用户可以更改它以提高他/她的分数,获得更多消耗品等等。您可以通过加密数据或以某种方式模糊含义或通过某种校验和方案来防止这种情况,这样您至少可以检测到它已被更改。任何这些措施当然都涉及并发症,可能不值得麻烦。

BTW ...如果你正在开发一个使用数据文件的应用程序,iExplorer是一个很棒的调试工具。我没有既得利益,只是我已经学会了如何使用它并希望它继续得到支持。可能还有其他应用程序可以执行相同的操作,但是这个应用程序非常有用且快速且易于使用。