iOS应用程序是否在其捆绑包中具有写入权限?

Mr.*_*Boy 13 ios

我在我的iOS应用程序的.app包中保存了一些运行时生成的文件.在模拟器中它工作正常,在它崩溃的设备中:

可以在给定的着色器缓存路径中创建输出文件'/var/mobile/Applications/CB064997-B40E-4FE3-9834-B3217CE33489/SimedTest.app/Ogre3D/assets/RTShaderLib/cache/

有一个很好的概述我应该和不应该放置文件 - 如何使用文档,库和tmp等?

为了澄清,这些是在启动时创建的文件,它们预先计算一些数据以节省时间.如果它们不存在则会被创建,因此删除它们很好,但在应用程序运行时则不行.

ben*_*ado 18

捆绑包是只读的.你不想乱用它有两个原因:

  • 代码签名:签名通过捆绑包的内容进行验证; 如果你搞乱了捆绑,你就打破了签名.
  • 应用更新:通过使用新下载的应用包替换整个应用包,更新工作; 你所做的任何改变都会丢失.

你应该保存的东西:

  • 文档:如果您希望它保持并备份
  • 库/缓存:如果你只想缓存下载的数据,比如个人资料图片; 除非您使用特殊的do-not-delete标志指定,否则系统将自动删除系统.
  • tmp:临时文件,在您的应用未运行时删除

有关完整说明,请查看文件系统编程指南QA1719.