Prevenir la copy de security en iCloud, ¿sigue el código correcto?

Estoy descargando muchos files de audio y video y los guardé en mi directory de inicio. Ahora quiero "evitar la copy de security en iCloud", así que agregué el siguiente código para la URL de cada file

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { 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; } 

¿Alguien puede decirme que este código funcionará para todas las versiones de IOS? De lo contrario, sugiera la forma correcta de hacerlo. Gracias

¿Alguien puede decirme que este código funcionará para todas las versiones de IOS?

No, no lo hace. En su nota técnica al presentar la bandera "no hacer copys de security" , Apple claramente declara que

El nuevo atributo "no realizar copys de security" solo será utilizado por iOS 5.0.1 o posterior.

También le dicen lo que necesita hacer para las versiones anteriores de iOS:

En iOS 5.0 y versiones anteriores, las aplicaciones necesitarán almacenar sus datos en <Application_Home>/Library/Caches para evitar tener una copy de security. Dado que este atributo se ignora en sistemas más antiguos, deberá asegurar que su aplicación cumpla con las Pautas de almacenamiento de datos de iOS en todas las versiones de iOS compatibles con su aplicación.

Puede usar este código para iOS 5.1 o posterior

 - (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; }