【问题标题】:iOS File Storage: Solution for Not Backing UpiOS 文件存储:不备份的解决方案
【发布时间】:2012-04-07 18:22:08
【问题描述】:

与许多开发人员一样,我的 iOS 应用程序因包含备份到 iCloud 的可下载内容而被拒绝。我一直在寻找这个问题的明确答案,但一直没有找到。

Apple 说您应该为您的文件实现“不备份”属性,但是,他们也声明 (https://developer.apple.com/library/ios/#qa/qa1719/_index.html):

新的“不备份”属性仅适用于 iOS 5.0.1 或更高版本。在 iOS 5.0 和更早版本上,应用程序需要将其数据存储在 /Library/Caches 中以避免备份。由于此属性在旧系统上会被忽略,因此您需要确保您的应用符合您的应用支持的所有 iOS 版本的 iOS 数据存储指南。

我的应用支持 iOS 4.0 及更高版本。这是否意味着如果我想保持对 iOS 4.0-5.0 的支持,我别无选择,只能将所有内容放入 Caches 文件夹中?或者,我可以只添加“不备份”属性并将文件保存在 /Documents 中吗?如果我必须将内容保留在 Caches 文件夹中,是否可以防止这些文件在存储空间不足的情况下被清除?最后,是否有任何开发人员将文件放入 Caches 文件夹并知道它们多久被清除一次?

任何建议或帮助将不胜感激。非常感谢!

【问题讨论】:

  • 我添加了不备份标志,但最终导致整个文档文件夹不被备份。用户是否仍然可以接受不生成任何其他文件?

标签: ios file backup storage icloud


【解决方案1】:

关注的领域是iOS 5.0,它支持iCloud,但不识别“不备份”属性。在这种情况下,文档目录中的应用程序的所有数据很可能会备份到 iCloud。对于 5.x 以下的 iOS 版本:

  • iCloud 备份无效。
  • “不备份”标志无关紧要。它不会在编译过程中产生任何警告。

因此,可以将数据保存在文档目录中,并在所有版本的内容(文件/文件夹)中适当添加“不备份”标志。问题仅限于 5.0 版。

【讨论】:

    【解决方案2】:

    不,你说的不对。我已经用这种方式解决了你同样的问题。我将我的数据库和目录图像保存在目录 Documents/.. 中标记那些 As 不按照 Apple 的建议进行备份。这样,对于更新到 5.x 或更高版本的设备,文件不会备份到 iCloud;对于其他人来说,没有任何变化,因为不支持 iCloud。

    这是一种最佳做法,因为与用户无关的文件我们不会在 iCloud 中备份。您不想重新下载的所有其他文件必须保存在文档中,将其标记为不备份。如果您将其保存在 Caches 文件夹中,则在您关闭应用程序时会在短时间内将其删除,并且必须在再次打开时重新下载。

    【讨论】:

    • iOS 5.0.0 支持 iCloud,如果我支持早期版本,该应用是否仍会获得批准?
    • 当然,我像你一样支持4.0。
    • 对于低于 5 的 iOS,请不要更改任何内容,因为这些文件未存储在 iCloud 中……您可以提供支持。
    • 是的,我知道 iOS 4.x 没有什么好担心的,但它的 5.0.0 让我感到困惑。
    • 5.x 支持 iCloud 并且不备份...less 没有变化!
    【解决方案3】:

    我想你可以找到类似的问题:

    What is suitable location for creating sqlite file?

    根据我的想法,最好将文件存储在具有新目录而不是文档目录的库中..

    【讨论】:

    • 缓存目录它一直被删除...如果您想永久存储文件而不将其移动到 iCloud 中,您必须将其保存在 Documents 中并将其标记为不备份。没有办法。这是最佳实践developer.apple.com/library/ios/#qa/qa1719/_index.html
    • 如果我支持早期版本的 iOS,我的应用是否仍会获得批准,还是应该将最低版本提高到 5.0.1?
    猜你喜欢
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多