Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Setting the do not backup attribute in different iOS versions
@interface NSFileManager (DoNotBackup)
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL;
@end
#import "NSFileManager+DoNotBackup.h"
#include <sys/xattr.h>
@implementation NSFileManager (DoNotBackup)
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
if (&NSURLIsExcludedFromBackupKey == nil) { // iOS <= 5.0.1
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
} else { // iOS >= 5.1
NSError *error = nil;
[URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error];
return error == nil;
}
}
@end
@interface NSFileManager (DoNotBackup)
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL;
@end
#import "NSFileManager+DoNotBackup.h"
#include <sys/xattr.h>
@implementation NSFileManager (DoNotBackup)
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
if (&NSURLIsExcludedFromBackupKey == nil) { // iOS <= 5.0.1
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
} else { // iOS >= 5.1
return [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil];
}
}
@end
@Sandeep28

This comment has been minimized.

Show comment Hide comment
@Sandeep28

Sandeep28 Oct 4, 2013

please let me know how to use this function in my application ??

please let me know how to use this function in my application ??

@joshluongo

This comment has been minimized.

Show comment Hide comment
@joshluongo

joshluongo Apr 2, 2014

Usage Example:

[[NSFileManager defaultManager] addSkipBackupAttributeToItemAtURL:yourFileNSURL];

Usage Example:

[[NSFileManager defaultManager] addSkipBackupAttributeToItemAtURL:yourFileNSURL];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment