iOS Sécurisation des données dans les sauvegardes iTunes


Exemple

Si nous voulons que nos données d'application soient protégées contre les sauvegardes iTunes, nous devons ignorer les données de notre application pour les sauvegarder dans iTunes.
Chaque fois qu'un appareil iOS est sauvegardé à l'aide d'iTunes sur macOS, toutes les données stockées par toutes les applications sont copiées dans cette sauvegarde et stockées sur l'ordinateur de sauvegarde.

Mais nous pouvons exclure nos données d'application de cette sauvegarde en utilisant la clé URLResourceKey.isExcludedFromBackupKey .
Voici la structure de répertoire de notre application: entrer la description de l'image ici
Remarque: les données généralement sensibles sont stockées dans le répertoire "Application Support".

Par exemple, si nous voulons exclure toutes nos données stockées dans le répertoire Application Support , nous pouvons utiliser les clés mentionnées ci-dessus comme suit:

    let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
    let baseURL = urls[urls.count-1];
    
    let bundleIdentifier = Bundle.main.object(forInfoDictionaryKey: "CFBundleIdentifier") as! String
    let pathURL = baseURL.appendingPathComponent(bundleIdentifier)
    let persistentStoreDirectoryPath = pathURL.path
    if !FileManager.default.fileExists(atPath: persistentStoreDirectoryPath) {
        do {
            try FileManager.default.createDirectory(atPath: path, withIntermediateDirectories: true, attributes: nil)  
        }catch {
            //handle error
        }
    }
    let dirURL = URL.init(fileURLWithPath: persistentStoreDirectoryPath, isDirectory: true)
    do {
        try (dirURL as NSURL).setResourceValue((true), forKey: .isExcludedFromBackupKey)
    } catch {
        //handle error
    }

De nombreux outils sont disponibles pour afficher les sauvegardes iTunes de toutes les données sauvegardées afin de vérifier si l’approche ci-dessus fonctionne ou non.
iExplorer est un bon outil pour explorer les sauvegardes iTunes.