web-dev-qa-db-fra.com

Emplacement du fichier de données de base iOS 10

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?

11
Idan Aviv

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

 enter image description here

Puis cliquez sur Bibliothèque -> Application Support -> filename.sqlite

 enter image description here

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.

24
Ashok R

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

10
Jitendra Modi

Swift 3.x

Recherchez didFinishLaunchingWithOptions dans votre fichier AppDelegate et ajoutez cette ligne.

let path = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true)
print("\(path)")
5
Chetan

É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.

0
Tim

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"

0
Nupur Sharma