webentwicklung-frage-antwort-db.com.de

Speicherort der Kerndatendatei iOS 10

Ich versuche mit SQLite-Browsern meine Core-Data-Objekte zu sehen. Ich kann nicht finden, wo die Kerndaten ihre SQL-Datei speichern. Ich habe in den App-Dokumentenordner geschaut, aber da ist nichts. 

Wissen Sie, wo die Kerndaten in IOS 10 (Simulator) ihre SQLite-Dateien speichern?

11
Idan Aviv

Ich habe es auf XCode 8 Swift 3 OS macOS Sierra getestet

IOS 10

In Ihrer 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. Die Konstante .documentDirectory sagt, dass wir nach dem Dokumentverzeichnis suchen.

2. Die Konstante .userDomainMask, um unsere Suche auf die Sandbox unserer Anwendung zu beschränken.

Ausgabe

file:///Users/Ashok/Library/Developer/CoreSimulator/Devices/F629F99F-C745-46EB-8A11-01BC9FF1E592/data/Containers/Data/Application/3B373C93-71A2-46E9-8AF7-EF407C39429F/Documents/

Klicken Sie auf Gehe zu -> Gehe zu Ordner -> Pfad einfügen -> Drücken Sie die Eingabetaste.

enter image description here

Dann gehe zur Bibliothek -> Anwendungsunterstützung -> Dateiname.sqlite

enter image description here

Bearbeitet

ODER

Öffnen Sie Ihr Terminal und geben Sie find ~ -name 'HitTest.sqlite' ein und drücken Sie die Eingabetaste.

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

Von oben sehen Sie den Pfad Ihrer sqlite db deutlich.

Sie können DB Browser for SQLite zum Öffnen verwenden.

24
Ashok R

Probieren Sie es einfach aus, ich habe es nicht auf iOS 10 überprüft, aber es funktioniert in früheren Versionen

Produkt> Schema> Bearbeitungsschema> Ausführen> Argumente

Fügen Sie dieses Argument in "Argumente beim Start" hinzu.

-com.Apple.CoreData.SQLDebug 1

Jedes Mal, wenn die Anwendung gestartet wird, wird der Pfad zur Datenbank gedruckt Siehe Dieses Argument sieht folgendermaßen aus

10
Jitendra Modi

Swift 3.x

Suchen Sie nach didFinishLaunchingWithOptions in Ihrer AppDelegate -Datei und fügen Sie diese Zeile hinzu.

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

Da der Speicherort der Core Data-Datei Ihrer App änderbar ist, können Sie, nachdem Sie einen gefunden haben, einen SQLite-Browser wie SQLiteFlow verwenden, um den Inhalt Ihrer Core Data-Datei zu durchsuchen. Der Grund ist unkompliziert, er kann Standortänderungen von SQLite-Dateien verarbeiten. Aus dem SQLiteFlow-Dokument:

Behandeln Sie den Namen oder das Verzeichnis der Datenbankdatei. Dadurch kann SQLiteFlow mit Ihrer SQLite-Datenbank im iOS-Simulator arbeiten.

0
Tim

Für Swift 5

func getCoreDataDBPath() {
        let path = FileManager
            .default
            .urls(for: .applicationSupportDirectory, in: .userDomainMask)
            .last?
            .absoluteString
            .replacingOccurrences(of: "file://", with: "")
            .removingPercentEncoding

        print("Core Data DB Path :: \(path ?? "Not found")")
    }

Dies gibt den detaillierten Pfad zur SQLite-Datei (dbname.sqlite) an

print("CoreData path :: \(self.getCoreDataDBPath())")

Hinweis: Klicken Sie auf Gehe zu -> Gehe zu Ordner -> Pfad hier einfügen -> Eingeben

0
Hardik Thakkar

Für XCODE 8.0 (iOS 10): -

Der Pfad zum permanenten Speicher von .sqlite lautet: 

/Users/Ashish/Library/Developer/CoreSimulator/Devices/"YourDeviceId"/data/Containers/Data/Application/"Application Id"/Library/Application Support/"FileNamePassedInPersistentContainer.sqlite"

0
Nupur Sharma