Ich habe eine Datenbank nach Realm erstellt und kann die Datei nicht finden, da mein Betriebssystem (Yosemite) keinen mobilen Ordner in / private / var / mobile hat.
Wie soll ich auf meinen Realm zugreifen, um ihn im Browser auszuführen?
Cross gepostet von Google-Gruppen
Antworten:
Eine Realm-Datei finden
Für Android
Wie kann ich meine Realm-Datei im Realm-Browser anzeigen?
Für iOS
Wenn sich Ihre App auf dem Gerät befindet
Stellen Sie sicher, dass Ihr Gerät angeschlossen ist, und rufen Sie das Gerätefenster im Xcode-Menüfenster > Geräte (⌘⇧2) auf. Dort können Sie Ihr Gerät und Ihre App aus einer Liste installierter Apps mit Debugging-Berechtigungen auswählen.
Gehen Sie nach Auswahl Ihrer App zum Zahnrad in der Symbolleiste unten in der Tabellenansicht und wählen Sie „Container herunterladen…“ . Dort können Sie die Datei vom Dokumentenspeicherort auf Ihren Mac ziehen. Es wird als xcappdata-Bundle gespeichert.
Wenn Sie den lokalen Pfad im Finder öffnen, in dem Sie ihn gespeichert haben, können Sie darauf zugreifen, indem Sie im Kontextmenü des Finders „Paketinhalt anzeigen“ auswählen, wenn Sie die Datei auswählen. Ein neues Finder-Fenster wird geöffnet, in dem Sie Ihr Realm im folgenden Pfad finden (z. B.): AppData / Documents / default.realm (Das Verzeichnis '/ private / var / mobile' ist der Pfad, der von iOS auf dem verwendet wird Gerätedateisystem.
Wenn sich Ihre App im Simulator befindet
Gehen Sie in das Verzeichnis Ihres Benutzers:
/Users/<username>/Library/Developer/CoreSimulator/Devices/<simulator-uuid>/data/Containers/Data/Application/<application-uuid>/Documents/default.realm
Der wahrscheinlich einfachste Weg, den aktuellen Pfad des Standardbereichs abzurufen, besteht darin, den Simulator anzuhalten und Folgendes in die LLDB-Konsole einzugeben:
Ziel-C :
(lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL
Schnell mit Realm Objective-C :
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL
Swift mit Realm Swift :
(lldb) po Realm.Configuration.defaultConfiguration.fileURL
Wenn Sie eine
RLMRealm
Instanz zur Hand haben, können Sie Folgendes verwenden:(lldb) po myRealm.configuration.fileURL
Kopieren Sie dann einfach diesen Pfad, öffnen Sie Ihr Terminal und geben Sie
open
[Hier eingefügter Pfad] ein.HINWEIS: Einige Pfade enthalten ein Leerzeichen. Verwenden Sie daher "\" vor dem Leerzeichen, um es zu umgehen
Hilfstool SimPholders
Dies ist wahrscheinlich der schnellste Weg, um die Datei einer App im Simulator zu finden. Installieren Sie SimPholders . Auf diese Weise können Sie direkt über Ihre Menüleiste auf das Dokumentenverzeichnis Ihrer App zugreifen.
Hinweis Einige Leute haben erwähnt, dass SimPholders sie in den falschen Simulator-App-Ordner verschoben hat. Wenn dies bei Ihnen der Fall ist, drucken Sie Ihren Realm-Pfad aus, indem Sie die obigen Schritte ausführen und Ihren Realm.path ausdrucken
quelle
po RLMRealm.defaultRealmPath()
. Es heißtcalled object type 'NSString *' is not a function or function pointer
po [[RLMRealm defaultRealm]path]
Realm.Configuration.defaultConfiguration.fileURL
error: use of undeclared identifier 'Realm'
Ich habe den einfachsten Weg für iOS / macOS gefunden (für Swift 3 Xcode 8.3)
Dann protokolliert x-Code den richtigen Pfad. Überprüfen Sie den folgenden Bildschirm.
Öffnen Sie nun Ihren Finder und drücken Sie ⌘+ ⇧+ G(Befehl + Umschalt + G) und fügen Sie den Pfad ein , der sich bei Ihrem Xcode anmeldet
quelle
Realm.Configuration.defaultConfiguration.fileURL
stattdessenRealm.Configuration.defaultConfiguration.fileURL!
Eine einfache Alternative für Simulator-Apps
Erstellen Sie einen intelligenten Ordner / eine Suche im Finder. Ermöglicht einen schnellen und einfachen anklickbaren Zugriff auf alle Ihre Realm-Dateien.
Öffnen Sie den Ordner
/Users/$USER/Library/Developer/CoreSimulator/Devices
im Finder.Mit Terminal
open /Users/$USER/Library/Developer/CoreSimulator/Devices
Suchen nach
.realm
Ändern Sie die Suche so, dass sie nur im
"Devices"
Ordner angezeigt wird.Nach Datum sortiert erhalten Sie eine schnell und einfach anklickbare Liste der zuletzt geänderten Simulator-
.realm
Dateien.quelle
Hier ist eine einfache Lösung. Ich habe eine Weile damit herumgespielt. Ich sollte darauf hinweisen, dass dies eine spezielle Anleitung ist, die Android Studio und den AVD-Emulator verwendet.
1) Starten Sie den Emulator und führen Sie Ihre App aus.
2) Öffnen Sie den Android-Gerätemonitor, während die App noch ausgeführt wird. (Es befindet sich in der Symbolleiste neben den Symbolen für den AVD- und SDK-Manager.)
3) Klicken Sie im Geräte-Monitor auf die Registerkarte Datei-Explorer. Es sollte viele Ordner geben.
4) Navigieren Sie auf folgendem Pfad: Daten> Daten> Ihr Paketname> Dateien> Default.Realm (oder wie auch immer Sie es genannt haben)
Ex. Wenn Sie eines der Realm-Beispielprojekte verwenden, lautet der Pfad etwa Daten> Daten> io.realm.examples.realmgridview> Dateien> default.realm
5) Markieren Sie die Datei und klicken Sie oben rechts auf das Diskettensymbol "Datei vom Gerät ziehen".
6) Speichern Sie es an einem beliebigen Ort.
quelle
Was ich getan habe, war zu benutzen
und dann wird es in voller Ansicht auf meinem Desktop erstellt und ich kann doppelklicken, um den Realm Browser darauf zu starten. Später kann ich den Parameter entfernen und ihn den Standardspeicherort verwenden lassen, wenn ich überzeugt bin, dass alles wie erwartet funktioniert.
quelle
Ziel c -
[RLMRealmConfiguration defaultConfiguration].fileURL
Dies ist der einfachste Befehl, den Sie ausführen können, um Ihren Pfad zur .realm-Datei abzurufen. Sie sehen die .realm-Datei, nachdem alle Lese- und Schreibvorgänge abgeschlossen sind.
Oder
Sie können Open Source OpenSim , eine Alternative zu Simuldern , verwenden, um direkt über Ihre Menüleiste auf das Dokumentenverzeichnis Ihrer App zuzugreifen
quelle
Die obigen Antworten, bei denen es nicht möglich ist, die Realm-Datei auf der Android-Plattform zu finden, und glauben Sie mir, dass Sie auf diese Weise viel Zeit sparen, die wir normalerweise bei anderen Ansätzen zum Abrufen der Realm-Datei verschwenden. So lass uns anfangen...
Öffnen Sie zuerst "Device File Explorer" in Android Studio (Ansicht -> Tools Windows -> Device File Explorer.
Dadurch wird Ihr Geräte-Explorer geöffnet.
Öffnen Sie jetzt Daten -> Daten -> (Ihr_App_Paketname) -> Dateien -> default.realm
default.realm ist die Datei, für die wir hier sind. Speichern Sie nun diese Datei an Ihrem Speicherort und greifen Sie über den Realm-Browser auf die Datei zu. Sie erhalten dann Ihre Datenbank.
HINWEIS: Der erwähnte Ansatz wird auf einem Telefon ohne Rootberechtigung (eins + 3) getestet.
quelle
Wenn Sie die Standard-Realm-Datenbank im Simulator verwenden:
quelle
Aktualisierte Antwort auf das neueste Reich:
Für Android:
Kasse stetho und https://github.com/uPhyca/stetho-realm Video-Tutorial hier: https://www.youtube.com/watch?v=9pFJz5VexRw
Für IOS (Swift)
Entweder:
oder
Schritt 1: Haben Sie irgendwo eine Konstante namens dev. Sagen wir Konstante Datei
Schritt 2: Erstellen Sie eine weitere Klasse mit dem Namen RealmFunctions.swift
Schritt 3: Endlich in Ihrem View Controller:
Vielen Dank an Stewart Lynch für die ursprüngliche Antwort
quelle
realm.path
zurealm.configuration.fileURL!.absoluteString
Wenn der Dialogfeldschlüssel "Verschlüsselungsschlüssel eingeben" angezeigt wird:
Ich verwende Swift 2.1 mit Realm 0.96.2 und habe beim Versuch, die Datenbankdatei zu öffnen, folgende Fehlermeldung erhalten:
Es wurde festgestellt, dass die Verwendung der Vorabversion von Realm Browser 0.96 das Problem behoben hat:
https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease
quelle
Zunächst bestätige ich, dass dies ein Android-Thread ist, aber es ist das erste Suchergebnis für dieses Problem im Allgemeinen.
Um die zuletzt erstellte Xcode Simulator Realm-Datenbank im Realm-Browser zu öffnen, können Sie dieses Skript in Automator verwenden oder alles am Terminal eingeben. Mit Automator habe ich mit einem Klick Zugriff auf meinen aktuellen Bereich.
Installieren Sie den Realm Browser. Klicken Sie in Automator auf Neu, wählen Sie Shell-Skript ausführen aus, fügen Sie Code ein, ändern Sie den Namen der Realm-Datenbank, klicken Sie zum Testen auf Ausführen und speichern Sie die Datei an einem geeigneten Ort für den schnellen Klickzugriff.
Ich weiß nicht, wo ich diesen Tipp zum ersten Mal gefunden habe, aber dieser Thread hat mich daran erinnert, wie ich in der Vergangenheit auf meine Live-Daten zugegriffen habe.
quelle
Nur für Ihre App ist auf dem iOS Simulator
Eingeben
im Code zB: App.js.
quelle
Ich bin noch einen Schritt weiter gegangen. Ich habe eine schnelle Datei namens RealmFunctions erstellt und darin diese Funktion erstellt
Jetzt habe ich in meinem Hauptansichts-Controller eine globale boolesche Variable namens dev
Jetzt muss ich in meinem Code nur noch etwas tun
Im Entwicklungsmodus kann ich meine Realm-Datenbank auf meinem Desktop finden und im Realm-Browser öffnen.
quelle
Ich habe meine Realm-Datei gefunden, indem ich diesen Befehl im Terminal ausgegeben habe:
sudo find / -name "*.realm"
.Hoffe das hilft!
quelle
In Swift
quelle
Um den DB-Pfad für iOS zu erhalten, ist der einfachste Weg:
(lldb)
) und geben Sie Folgendes ein:po RLMRealm.defaultRealmPath
Tada ... du hast den Pfad zu deiner Realm-Datenbank
quelle
Der richtige (lldb) Befehl lautet :
Realm.Configuration.defaultConfiguration.path
.quelle
Für diejenigen, die React Native verwenden und den Standardbereich verwenden:
Realm.defaultPath
quelle
componentDidMount() { console.log(Realm.defaultPath) }
In meiner Komponente hat Realm für mich funktioniert. Überprüfen Sie anschließend die xcode-Konsole auf den Pfad.Klicken Sie unter Extras -> Android-Gerätemonitor auf
Und unter Datei-Explorer. Suche nach den Apps. Und die Datei befindet sich unter Daten / Daten.
quelle
Der richtige lldb-Befehl für Xcode 7, Swift 2.2+ lautet
po Realm.Configuration.defaultConfiguration.path!
quelle
path
sondernfileURL
: Realm.Configuration.defaultConfiguration.fileURL!po Realm.Configuration.defaultConfiguration.fileURL?.path
Schnelle 2.3-Lösung
Einfachere Lösung, die mit Realm-Updates nicht kaputt geht
Die .realm-Datei sollte sich in "Dokumente" befinden.
quelle