【发布时间】:2012-06-16 10:00:36
【问题描述】:
我的应用程序被拒绝,因为我使用 Documents 目录来存储我从服务器下载的一些文件。
我从 Apple 的文档中读到了这个:https://developer.apple.com/library/ios/#qa/qa1719/_index.html,我找到了这个代码:addSkipBackupAttributeToItemAtURL -> NSString parameter?
我还读到此代码对 iOS 版本 >= 5.0.1 很有用。并且 iOS 版本
所以,我有两个问题:
首先,我需要在我的应用程序中使用文件(如数据库)。如果我在 iOS 想要的任何时候将这些文件存储在 Caches 目录中,就可以删除我的文件。所以我将文件存储在 Documents 目录中,即:
/Documents/db.db
/Documents/my.plist
之后,我将文件存储在该目录中,我为放入该目录中的每个文件调用方法 addSkipBackupAttributeToItemAtURL。但我不知道如何测试这种方法是否有效。
我在这里读到iOS 5.0.1 : How to verify that the folder is marked as "Do not back up" for iCloud?,如果我使用模拟器,我可以转到应用程序的目录并运行此命令
xattr -plxv com.apple.MobileBackup <file name>
知道文件是否被标记为不备份。
但是如果我在命令行中运行该命令,我会为每个文件得到这个结果:
xattr: my.plist: 没有这样的 xattr: com.apple.MobileBackup
所以,第一个问题是:我怎样才能确定我在 Documents 目录下的文件被正确标记为不被备份。我不想再次将我的应用上传到 AppStore 并且 Apple 的人再次将其丢弃。
其次,我的应用程序在 iOS 5 上运行。如果用户有 iOS 5.0,我不想检查每个文件并将其存储在 Caches 目录中,并且每次我需要使用该文件时检查“stills “ 那里。我有一个 500mb 的数据库,我不能每次都下载。
所以,第二个问题是:如果在“iOS 部署目标”中我选择了 5.1,而在 Build Settings > Base SDK 我也选择了 5.1,这意味着 iOS 版本 所以我不必担心与使用 iOS 5.0 的用户一起获取我的数据,对吧?
【问题讨论】: