可以将下载的图像/文件添加到我的应用程序捆绑?(Can downloaded images/file

2019-09-17 19:50发布

我有一个应用程序,允许我下载字符(图像),声音等。当用户选择哪个字符下载我可以存储在我的应用程序包的目录? 如果没有,哪里来存储我的内容(数据)的最佳地点? 我在想的文件目录,但后来我看到的地方,苹果现在要保存在高速缓存目录中的数据。

谢谢您的帮助。

Answer 1:

我可以存储在我的应用程序包的目录?

不,你不能修改程序包。

如果没有,哪里来存储我的内容(数据)的最佳地点?

  • 如果您的应用程序必须支持的iOS 5.0或更早版本,您将需要存储在您的应用程序的数据Caches目录。 但是,请记住这些文件可以在较低的空间的情况下被删除,以便您的应用程序将需要适度降低,如果您的应用程序数据被删除。

  • 由于iOS版5.0.1的,你可以存储在文件目录和数据文件它们标记为“不备份” 。 通过举报的文件,你的应用程序与指导方针是应用程序有责任确保只有用户数据,而不是应用程序数据备份到iCloud和iTunes,避免苹果可能拒绝遵守。 在这种情况下,该文件将不能在低空间的情况下删除。

  • 由于iOS的5.1,你可以存储你的数据文件中的文件目录,并使用两种NSURLIsExcludedFromBackupKeykCFURLIsExcludedFromBackupKey文件属性从备份中排除文件。 无论这些API优于标记他们为“不备份”。 在这种情况下,您的应用在App Store规范,并在文件中不会低空间的情况下被删除。



Answer 2:

我知道,这是一个相当长时间的讨论,但你应该读它。 :)

在iOS的数据存储指南状态:

为确保备份尽可能有效,一定要根据以下原则来存储您的应用程序的数据:

  1. 只有文件和其他数据是用户生成的,或者说不能用,否则你的应用程序中重新创建,应存放在/ Documents目录,将被iCloud的自动备份。

  2. 数据可以再次下载或再生应存放在/图书馆/缓存目录。 你应该把在高速缓存目录中的文件的例子包括数据库缓存文件和下载内容,比如通过杂志,报纸和地图应用。

  3. 这只是临时使用的数据应该存储在/ tmp目录。 虽然这些文件没有备份到iCloud,记得要删除这些文件,当你与他们这样做,他们不继续消耗用户的设备上的空间。


如果你有一个OS X或Unix背景,很容易理解苹果的地位,这样的目录都无法保证多长时间其中的数据将会持续。

事实上,在应用程序的沙箱tmp目录是不一样的根/ tmp目录,不应该有所作为您怎么看这个目录有关。

如果你从过去这些目录被删除从未观察到的文件,这是不能保证它不会改变未来。 尤其当变化是根据文档。 这是一个普遍规律。


更改/苹果的文档中的差距:

迟至2011年6月29日苹果公司关于/文档文件说:

使用此目录存储用户文档和应用程序数据文件。

这是很清楚的。 难怪开发商的不满,对于文档目录的规则在iOS 5中已经改变,没有任何合适的替代。

关于/图书馆/缓存:

使用此目录写你想要的应用程序的启动之间或应用程序更新坚持任何应用程序特定的支持文件。 您的应用程序一般是用于添加和删除这些文件负责。 它也应该能够重新创建这些文件,必要的,因为iTunes的设备的全面恢复过程中删除它们。


应用程序审查拒绝

开发人员报告说,存储在文件目录中的任何/一些/多数据应用正在由应用程序审查拒绝。

这是不太可能的应用程序审查小组已经详细说明哪些文件被存储在哪个目录和那些它们是用户生成与该可以再次下载或再生数据的知识。 一些开发商已成功报道在响应应用程序审查团队,他们的应用程序是如何存储数据,以及如何在按照规则的解释。

什么是由iTunes和iCloud的备份

在应用程序的主目录一切都进行备份,以除外:

  • 应用束本身(的.app)
  • / tmp目录
  • /图书馆/缓存目录

其他文件中明确指出,应用程序支持目录也由iTunes(大概的iCloud)备份。 在讨论一些开发商提出,应用程序支持目录会更安全(=更持久的)替代缓存。 对我来说,似乎应用程序审查会打击存储的大量应用支持具有相同的热情作为文档目录的数据,因为它是所有关于iCloud中存储。

在行为变化的iOS 5

随着iOS 5的的,/图书馆/缓存可以被清除而如果设备出现低磁盘空间警告你的应用程序没有运行。

不再有一个目录,您的应用程序可以存储在文件:

  • 没有备份到iTunes / iCloud的
  • 不能以被清除的危险


Answer 3:

下载的内容不应该被存放在按照苹果的指导方针的文件目录:

Only documents and other data that is user-generated, or that cannot otherwise be recreated by your application, should be stored in the <Application_Home>/Documents

使用/图书馆/缓存目录,而不是

Data that is used only temporarily should be stored in the <Application_Home>/tmp directory. 


文章来源: Can downloaded images/files be added to my app bundle?