Je suis en train d’essayer pour nous les navigateurs SQLite de voir mes objets Core Data. Je ne suis pas en mesure de trouver où les données de base enregistrent leur fichier SQL. J'ai regardé dans le dossier des documents de l'application, mais il n'y a rien.
Savez-vous où les données de base dans IOS 10 (simulateur) enregistrent ses fichiers SQLite?
Je l'ai testé sur XCode 8 Swift 3 OS macOS Sierra
IOS 10
Dans votre Appdelegate.swif t
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
print(urls[urls.count-1] as URL)
return true
}
1. La constante .documentDirectory
indique que nous recherchons un répertoire de documents}
2. La constante .userDomainMask
pour limiter notre recherche au sandbox de notre application.
sortie
file:///Users/Ashok/Library/Developer/CoreSimulator/Devices/F629F99F-C745-46EB-8A11-01BC9FF1E592/data/Containers/Data/Application/3B373C93-71A2-46E9-8AF7-EF407C39429F/Documents/
Cliquez sur Aller -> Aller au dossier -> Coller le chemin -> Appuyez sur Entrée
Puis cliquez sur Bibliothèque -> Application Support -> filename.sqlite
Edité
OU
ouvrez votre terminal et tapez find ~ -name 'HitTest.sqlite'
et appuyez sur enter.
Ashoks-MacBook-Pro:Desktop Ashok$ find ~ -name 'HitTest.sqlite'
/Users/Ashok/Library/Developer/CoreSimulator/Devices/F629F99F-C745-46EB-8A11-01BC9FF1E592/data/Containers/Data/Application/3B373C93-71A2-46E9-8AF7-EF407C39429F/Documents/HitTest.sqlite
À partir de la sortie ci-dessus, vous pouvez voir clairement le chemin de votre base de données sqlite
Vous pouvez utiliser DB Browser for SQLite pour ouvrir.
Essayez ceci, je ne l'ai pas vérifié sur iOS 10, mais il fonctionne dans toutes les versions précédentes.
Product> Scheme> Edit Scheme> Run> Arguments
Ajouter cet argument dans "Arguments passés au lancement"
-com.Apple.CoreData.SQLDebug 1
À chaque démarrage de l'application, le chemin d'accès à la base de données sera imprimé Voir Cet argument ressemble à ceci
Swift 3.x
Recherchez didFinishLaunchingWithOptions dans votre fichier AppDelegate et ajoutez cette ligne.
let path = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true)
print("\(path)")
Étant donné que l'emplacement du fichier Core Data de votre application est modifiable, vous pouvez utiliser un navigateur SQLite tel que SQLiteFlow pour en rechercher un, afin de parcourir le contenu de votre fichier Core Data. La raison est simple, il peut gérer les changements d'emplacement de fichier SQLite. Du document SQLiteFlow:
Gérer les modifications de nom de fichier ou de répertoire de la base de données. Cela permet à SQLiteFlow de fonctionner correctement avec votre base de données SQLite dans un simulateur iOS.
Pour XCODE 8.0 (iOS 10): -
Le chemin d'accès au magasin persistant .sqlite est le suivant:
/Users/Ashish/Library/Developer/CoreSimulator/Devices/"YourDeviceId"/data/Containers/Data/Application/"Application Id"/Library/Application Support/"FileNamePassedInPersistentContainer.sqlite"