应用程序更新,NSURL和文档目录
我在app store中有一个应用程序,它使用Core Data来保存大部分数据。 例外是存储图像。 我将子目录中的图像存储到Documents目录,并将核心数据存储中相应对象属性中的NSURL引用存储到该图像中。
我们已经注意到,当一个更新到应用程序商店,这些图像没有find,因此不显示,使用与以前版本的应用程序存储的引用。 现在,我怀疑问题在于,因为我们使用开发设备进行testing,所以这个问题会传播,因为开发应用程序使用的应用程序目录中的目录与App Store创build/使用的不同。 我注意到应用程序中应用程序的应用程序商店目录与在Xcode中debugging版本时创build的应用程序目录之间的区别。 因此,存储在核心数据中的URL指向错误的应用程序文件夹。 这是一个很难debugging,因为我不能下载一个较旧的应用程序版本,一旦新版本已经在商店发布。
所以我有几个问题。 我可以保证下载相同应用程序版本的人员的Applications子目录相同,这对非开发设备来说是非问题吗?
我应该存储相对图像的URL或string来表示这些资源的位置,或者我应该罚款存储最终是绝对url?
非常感谢,菲利普
您应该使用相对URL来存储对文件的引用。 应用程序更新后,绝对url可能会更改
在应用更新期间保存的文件
当用户下载应用程序更新时,iTunes将更新安装到新的应用程序目录中。 然后将用户的数据文件从旧的安装移到新的应用程序目录,然后删除旧的安装。 在更新过程中,保证以下目录中的文件被保留:
- APPLICATION_HOME /文档
- APPLICATION_HOME /库
尽pipe其他用户目录中的文件也可能被移动,但更新后不应该依赖它们。
我觉得你要找的是以下几点:
NSString *appDocumentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];