【问题标题】:Application update changes the /Library path应用程序更新更改 /Library 路径
【发布时间】:2014-08-30 11:06:29
【问题描述】:

我的应用程序更新有问题。在 1.0 版中,我下载了大量文件,这些文件的路径作为对象的属性保存在 coredata 中。 例如:/var/mobile/Applications/43543f-435435-etc.../Library/folder/image.png

在我尝试使用 testflight 测试更新或使用 iTunes 安装 1.1 版后,路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *applicationDirectory = [paths objectAtIndex:0];

现在返回不同的东西,比如

/var/mobile/Application/324dfd-325dfd..etc/

而且我的应用程序无法显示所有图像和数据,因为我下拉了保存在 coredata 对象上的路径。 但最让我吃惊的是,当我直接从xcode安装1.1版本时,它运行良好,没有任何改变。我该怎么办?我应该创建一个升级脚本来更改 coredata 中每个文件的库路径还是有更好的方法?

谢谢

【问题讨论】:

  • 这没有多大意义。您正在搜索 NSLibraryDirectory,但您将其分配给看起来可疑的 applicationDirectory
  • applicationDirectory 只是我稍后在系统中使用的变量名。
  • 我认为问题出在其他地方,这里会有 100 个这样的问题,这是我第一次看到它。我认为我们需要查看更多使用 applicationDirectory 的代码。
  • /var/mobile/Applications/bla-bla-bla/Library 是 applicationDirectory 变量。当我使用 iTunes 或 TestFlight 安装 .ipa 时,它会更改更新时的“bla-bla-bla”部分,但是当我使用 xcode 安装更新版本时它不会更新。这让我思考,我是否应该进行某种迁移。

标签: ios core-data ios7 core-data-migration nsdocumentdirectory


【解决方案1】:

我假设您将 完整路径 存储到 Core Data 对象中的文件。您应该从Library 文件夹中存储一个相对路径,该文件夹是您使用NSSearchPathForDirectoriesInDomains() 检索的。

这意味着您必须在运行时使用 Library 文件夹以及从 Core Data 检索到的相关元素来创建完整路径。

这将在应用升级后继续存在。

【讨论】:

  • 是的,我正在存储一个完整的路径.. 所以我在想现在最好的选择是什么
  • 存储相对路径。
猜你喜欢
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多