iOS 5.0.1: Comment vérifier que le dossier est marqué comme "Ne pas sauvegarder" pour iCloud?
Je veux mettre Do not back up
pour mon dossier qui est dans Document Directory
.
J'ai trouvé le code pour "Ne pas sauvegarder" , mais comment puis-je vérifier que le dossier est marqué.
5 réponses
Selon les docs vous que si vous définissez la méthode exactement comment ils ont listé sur cette page, la méthode retournera YES
si l'attribut est marqué correctement.
Pour iOS 5.1, exécutez l'application dans le simulateur, et exécutez la commande suivante dans le Terminal:
xattr {filename}
Vous devriez voir ce qui suit si l'article est correctement marqué pour l'exclusion:
com.apple.metadata:com_apple_backup_excludeItem
- simulateur ouvert
- supprimer l'application (l'application de l'équipe de révision exécute le code 1 temps, alors assurez-vous de partir de zéro)
- maintenant, exécutez votre code dans le simulateur, votre code stockera vos fichiers sur votre disque dur.
- ouvrir le terminal
- cd / Utilisateurs/(nom d'utilisateur)/Bibliothèque/support des applications/simulateur iPhone/(version ios) / Applications
- ls
- vous serez présenté avec une liste de noms de dossiers aléatoires, ouvrez chacun jusqu'à ce que vous trouviez votre application dossier
- for fichier in $(find *); ne du-sk $fichier; xattr -l $fichier; echo ; done
- , il vous sera présenté avec tous les fichiers de l'application dans le format de..
(Taille du fichier) (Nom du fichier)
(exclusion de sauvegarde iCloud)
Remarque: Si rien n'est répertorié, cela signifie que le fichier sera sauvegardé (s'il se trouve dans le dossier Bibliothèque ou Documents).. si au lieu de cela vous voyez ' com.Apple.métadonnées: com_apple_backup_excludeItem: com.Apple.MobileBackup ' alors vous êtes prêt à partir.
Exécutez l'application dans le simulateur, puis utilisez le Terminal pour exécuter cette commande sur les fichiers concernés:
xattr -plxv com.apple.MobileBackup <file name>
Pour iOS 5.1 ou version ultérieure, ce code fonctionne bien pour moi.
- (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;
}