更新iOS应用程序是否删除库目录文件?

我将保存文件保存在我的iPad应用程序的私人目录中,即在使用时返回的文件:

paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); documentsDirectory = [paths objectAtIndex:0]; documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"Private Documents"]; 

请注意,我也附加了一个子目录。 当我更新应用程序,用户告诉我,他们在应用程序的进展正在被破坏。 每次更新应用程序时,这个NSLibraryDirectory中的文件是否被破坏? 如果是这样,我应该使用NSDocumentDirectory吗?

另外,有没有办法进一步更新我的应用程序来补救这一点,而不会破坏我所有的当前用户的保存文件? 它似乎并不是这样。

您应该将它们保存在Documents文件夹中,它在更新中保持不变。

Monotouch: documentsDirectory = environment.specialfolder.personal;

Objective-C: NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

当用户下载应用程序更新时,iTunes将更新安装到新的应用程序目录中。 然后将用户的数据文件从旧的安装移到新的应用程序目录,然后删除旧的安装。 以下目录中的文件将保证在更新过程中保留:

APPLICATION_HOME /文档

APPLICATION_HOME /库

尽pipe其他用户目录中的文件也可能被移动,但更新后不应该依赖它们。

这是由苹果官方提供的。 请参阅此链接: iOS开发人员库 – 应用程序更新期间保存的文件

我也想添加这个信息作为一个大型networking游戏的个人经验。 你不能100%地依靠你的“文件”和“图书馆”文件夹永远在那里。 事实上,你不能依靠你的应用程序文件夹在更新后仍然在设备上的相同位置。

让我再解释一下。 当你在你的设备上安装一个应用程序,真正的path将是/ var / mobile / Applications / [某些class id] / [你的app] .app / …我们不确定谁定义了你的app的class id (无论是iOS还是应用程序商店),但是在更新游戏时,此ID可能会发生变化,从而导致您的应用程序位于不同的文件夹中,因此您的旧文件不再存在。 我们的QA也经历过它和我们的用户。

我不会详细了解我们如何发现这个问题,以及我们如何设法解决这个问题(私人公司的东西,通常的东西…),但是如果你正在做一个影响吨的应用程序,你需要考虑它的用户,并可能会更新几次。 它可能已经被修复,但有一个备份计划总是好的。