Iphone iOS 5.0.1:如何验证文件夹是否标记为;“请勿备份”;为了iCloud?
我想设置Iphone iOS 5.0.1:如何验证文件夹是否标记为;“请勿备份”;为了iCloud?,iphone,ios,ios4,icloud,Iphone,Ios,Ios4,Icloud,我想设置不备份到文档目录中的我的文件夹 我找到了的代码,但如何验证文件夹是否已标记。根据您链接的文档,如果您将方法设置为在该页面上正确列出,则如果属性标记正确,该方法将返回YES。根据您链接的文档,如果您准确设置了该方法在该页面上的显示方式,则如果属性标记正确,该方法将返回YES。在模拟器中运行应用程序,然后使用终端针对相关文件运行此命令: xattr -plxv com.apple.MobileBackup <file name> xattr-plxv com.apple.Mob
不备份到文档目录中的我的文件夹
我找到了的代码,但如何验证文件夹是否已标记。根据您链接的文档,如果您将方法设置为在该页面上正确列出,则如果属性标记正确,该方法将返回YES
。根据您链接的文档,如果您准确设置了该方法在该页面上的显示方式,则如果属性标记正确,该方法将返回YES
。在模拟器中运行应用程序,然后使用终端针对相关文件运行此命令:
xattr -plxv com.apple.MobileBackup <file name>
xattr-plxv com.apple.MobileBackup
在模拟器中运行应用程序,然后使用终端对相关文件运行此命令:
xattr -plxv com.apple.MobileBackup <file name>
xattr-plxv com.apple.MobileBackup
对于iOS 5.1,在模拟器中运行应用程序,并在终端中运行以下命令:
xattr {filename}
如果项目正确标记为排除,则应看到以下内容:
com.apple.metadata:com_apple_backup_excludeItem
对于iOS 5.1,在模拟器中运行应用程序,并在终端中运行以下命令:
xattr {filename}
如果项目正确标记为排除,则应看到以下内容:
com.apple.metadata:com_apple_backup_excludeItem
开放式模拟器
删除应用程序(应用程序审阅团队将代码运行1次,因此请确保您是从零开始的)
现在在模拟器中运行您的代码,您的代码将在硬盘上存储您的文件李>
开放式终端
cd/用户/(用户名)/库/应用程序支持/iPhone模拟器/(ios版)/应用程序
ls
您将看到一个随机文件夹名称列表,打开每个名称,直到找到您的应用程序文件夹
对于文件,单位为$(查找*);dodu-sk$文件;xattr-l$文件;回响完成
您将以..
(文件大小)(文件名)
(iCloud备份排除)
注意:如果未列出任何内容,则表示将备份文件(如果文件位于库或文档文件夹中)。。相反,如果您看到“com.apple.metadata:com\u apple\u backup\u excludeItem:com.apple.MobileBackup”,那么您就可以开始了
开放式模拟器
删除应用程序(应用程序审阅团队将代码运行1次,因此请确保您是从零开始的)
现在在模拟器中运行您的代码,您的代码将在硬盘上存储您的文件李>
开放式终端
cd/用户/(用户名)/库/应用程序支持/iPhone模拟器/(ios版)/应用程序
ls
您将看到一个随机文件夹名称列表,打开每个名称,直到找到您的应用程序文件夹
对于文件,单位为$(查找*);dodu-sk$文件;xattr-l$文件;回响完成
您将以..
(文件大小)(文件名)
(iCloud备份排除)
注意:如果未列出任何内容,则表示将备份文件(如果文件位于库或文档文件夹中)。。如果您看到'com.apple.metadata:com\u apple\u backup\u excludeItem:com.apple.MobileBackup',那么您就可以开始了。对于iOS 5.1或更高版本,这段代码对我来说很好
- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
NSURL *fileURL =
[NSURL fileURLWithPath:filePathString];
assert([[NSFileManager defaultManager]
fileExistsAtPath: [fileURL path]]);
NSError *error = nil;
BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool:YES]
forKey:NSURLIsExcludedFromBackupKey
error:&error];
return success;
}
对于iOS 5.1或更高版本,这段代码对我来说很好
- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
NSURL *fileURL =
[NSURL fileURLWithPath:filePathString];
assert([[NSFileManager defaultManager]
fileExistsAtPath: [fileURL path]]);
NSError *error = nil;
BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool:YES]
forKey:NSURLIsExcludedFromBackupKey
error:&error];
return success;
}
好啊但从我发现的文档中,重要的是:新的“请勿备份”属性将仅由iOS 5.0.1或更高版本使用。在iOS 5.0及更早版本上,应用程序需要将数据存储在/Library/cache中,以避免备份数据。由于此属性在较旧的系统上被忽略,您需要确保您的应用程序在您的应用程序支持的所有版本的iOS上都符合iOS数据存储指南。
因此,我需要将文件夹位置更改为library以获得Apple批准。您的应用程序可以检查操作系统版本并执行相应的操作。如果我错了,请纠正我。似乎有三种情况:5.0之前、5.0和5.0.1。对于5.0.1,您可以将文件夹标记为“脱机数据”。在5.0中,iCloud存在,但没有“请勿备份”解决方案,因此您必须将数据放入库/缓存中,并在其中清除:(.5.0之前没有iCloud,AFAIK数据不会从文档或缓存中清除,因此将数据放在缓存中也可能是安全的。@Michael我的理解是,对于5.0之前和5.0之前,您可以将数据放在脱机状态(可以下载或以其他方式重新创建的数据,但用户希望在脱机状态下可靠可用)在/Documents目录或/Library/Private Documents目录中。它将被备份到5.0版本,但这没关系。@NikolaiSander-您是否验证了它在5.0之前和5.0版本中是否可以通过苹果的批准?我已经为5.0.1设置了“不备份”标志,但我真的不想仅仅为5.0版本提供解决方案。好的。但是从文件I found重要提示:新的“请勿备份”属性将仅由iOS 5.0.1或更高版本使用。在iOS 5.0或更早版本上,应用程序需要将其数据存储在/Library/Caches中以避免备份。由于此属性在较旧的系统上被忽略,因此您需要确保您的应用程序符合应用程序支持的所有iOS版本上的iOS数据存储准则s、
因此,我需要将文件夹位置更改为library以获得Apple批准。你的应用程序可以检查操作系统版本并执行相应操作。如果我错了,请纠正我。似乎有三种情况:5.0之前、5.0之前和5.0.1。对于5.0.1,你可以将文件夹标记为“脱机数据”。在5.0中,iCloud存在,但没有“不备份”解决方案,因此您必须将数据放在库/缓存中,然后将其清除:(.5.0之前没有iCloud,并且AFAIK数据不会从文档或缓存中清除,因此在这里将数据放在缓存中可能也是安全的。@Michael我的理解是,对于5.0之前和5.0之前,您可以将数据放在脱机状态(可以下载或以其他方式重新创建的数据,但