【问题标题】:iOS App update new version delete files from Documents folderiOS App 更新新版本从 Documents 文件夹中删除文件
【发布时间】:2014-04-22 01:44:17
【问题描述】:

我编写了 iOS 应用程序的新版本 (1.0.1)。该应用程序的背景是它从服务器下载文件并存储在文档中。根据 Apple 指南,用户生成的任何文件都不应该备份到云端,因此我将它们标记为 NSURLIsExcludedFromBackupKey。但是现在当我使用 Adhoc 分发配置文件在设备上进行更新时,Documents 文件夹中任何用户生成的文件都将被删除。

有什么方法可以避免删除这些文件,因为这些是应用程序运行所必需的文件。

【问题讨论】:

  • 你有没有放任何代码来替换文件夹内容?
  • 不,这是一个正常的更新过程,我假设如果应用程序将被更新,那么它应该保留这些文件。如果可能的话,我是否需要编写任何自定义代码以避免在更新过程中被删除?
  • 如果您要将文件从捆绑包复制到文档文件夹,请检查文件是否存在,然后不要覆盖它。
  • 这些文件不是捆绑包的一部分,是从服务器下载的。
  • 您是否调试了应用程序,因为奇怪的是文件从文件夹中删除,因为它们没有被替换或文件夹没有被删除,检查它们是否在任何以编程方式覆盖的文件夹中。跨度>

标签: ios objective-c


【解决方案1】:

你似乎把事情搞反了。您应该备份用户生成的文件。您不应该备份的文件是可以通过重新下载或根据需要重新生成很容易替换的文件。

如果您将文件标记为从备份中排除,则意味着可以轻松替换该文件。

当您安装应用更新时,这些文件不会复制到更新的应用中。首次运行时,您的应用应检测到它们丢失并在需要时自动替换它们。

如果这些是无法自动替换的文件,则不要使用NSURLIsExcludedFromBackupKey 标记它们。

【讨论】:

  • 感谢您的建议,这很有意义。但问题是我通过将图像标记为 NSURLIsExcludedFromBackupKey (根据 Apple 的建议)将图像存储在 Documents 文件夹中,它可以是 100 个图像,最多可以使用 100 个 MB。更新后重新下载这些文件是不现实的,必须有某种方式存储在某处并更新应用程序而不重新下载它们?
  • 还有一点要提一下,没有 NSURLIsExcludedFromBackupKey 我不能存储这些文件,因为 Apple 的限制是你不能在我的文档中存储超过 10mb 的应用程序生成的文件以避免大量 icloud 备份。跨度>
  • 我遇到了与上一条评论中建议的完全相同的问题。 Apple 会阻止您备份大文件,如果此类文件未使用 NSURLIsExcludedFromBackupKey 标记,Apple 将拒绝您的应用程序。那么解决方案是什么?期望用户在应用更新时必须再次下载所有这些(大)文件是不公平的。它将阻止用户再次更新。感谢 Apple 的另一项令人沮丧的政策。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 2020-02-12
  • 2014-09-06
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
相关资源
最近更新 更多