react - realm wikipedia
¿Cómo encontrar mi archivo de reino? (21)
Encontrar un archivo de reino
Para Android
¿Cómo ver mi archivo Realm en el navegador Realm?
Para iOS
Si su aplicación está en el dispositivo
Asegúrese de que su dispositivo esté conectado y vaya a la ventana de dispositivos en el menú Xcode Ventana> Dispositivos (⌘⇧2). Allí podrá elegir su dispositivo y su aplicación de una lista de aplicaciones instaladas con permisos de depuración.
Después de seleccionar su aplicación, vaya al engranaje en la barra de herramientas en la parte inferior de la vista de tabla y seleccione "Descargar Contenedor ..." . Allí podrá extraer el archivo de la ubicación de los documentos a su Mac. Se guardará como un paquete xcappdata.
Cuando abre la ruta local en Finder, donde la guardó, puede aprovecharla seleccionando "Mostrar contenido del paquete" en el menú contextual del buscador, cuando selecciona el archivo. Se abrirá una nueva ventana de búsqueda, donde encontrará su Reino dentro de la siguiente ruta (por ejemplo): AppData / Documents / default.realm (El directorio ''/ private / var / mobile'' es la ruta, que es utilizada por iOS en el sistema de archivos del dispositivo.
Si tu aplicación está en el simulador
Vaya al directorio de su usuario:
/Users/<username>/Library/Developer/CoreSimulator/Devices/<simulator-uuid>/data/Containers/Data/Application/<application-uuid>/Documents/default.realm
Probablemente la forma más fácil de obtener la ruta actual del reino predeterminado es pausar el simulador e ingresar lo siguiente en la consola LLDB:
Objetivo-C
:
(lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL
Swift usando Realm Objective-C
:
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL
Swift usando Realm Swift
:
(lldb) po Realm.Configuration.defaultConfiguration.fileURL
O si tiene a mano una instancia de
RLMRealm
, puede usar:
(lldb) po myRealm.configuration.fileURL
Luego simplemente copie esta ruta, abra su terminal y escriba
open
[ruta pegada aquí]
NOTA: Algunas rutas tienen un espacio, así que asegúrese de usar "/" antes del espacio para escapar.
Portaherramientas SimPholders
Esta es probablemente la forma más rápida de encontrar el archivo de una aplicación en el simulador. Instalar SimPholders . Esto le permitirá acceder al directorio de documentos de su aplicación directamente desde su barra de menú.
Nota: Algunas personas han mencionado que SimPholders los ha llevado a la carpeta de la aplicación del simulador incorrecta, si ese es su caso, imprima la ruta de su reino siguiendo los pasos anteriores, imprimiendo su realm.path
He creado una base de datos por reino y no puedo encontrar el archivo ya que mi sistema operativo (Yosemite) no tiene una carpeta móvil en / private / var / mobile.
¿Cómo debo acceder a mi reino para ejecutar en el navegador?
Cruz publicado desde grupos de google
Respuesta actualizada al nuevo Reino:
Para Android:
consulte stetho y https://github.com/uPhyca/stetho-realm Video tutorial aquí: https://www.youtube.com/watch?v=9pFJz5VexRw
Para iOS (Swift)
Ya sea:
debugPrint("Path to realm file: " + realm.configuration.fileURL!.absoluteString)
o
Paso 1: Tener una constante llamada dev en alguna parte. Digamos archivo constante
public class Constants {
public static var dev: Bool = true
}
Paso 2: Cree otra clase llamada RealmFunctions.swift
import RealmSwift
func realmAndPath() -> Realm {
if Constants.dev {
// location of my desktop
let testRealmURL = NSURL(fileURLWithPath: "/Users/#####/Desktop/TestRealm.realm")
return try! Realm(fileURL: testRealmURL)
} else {
return try! Realm()
}
}
Paso 3: finalmente en su controlador de vista:
let realm = realmAndPath()
gracias a Stewart Lynch por la respuesta original
Una alternativa fácil para aplicaciones de simulador
Cree una carpeta / búsqueda inteligente en Finder. Otorga acceso fácil y rápido a todos sus archivos de dominio.
-
Abra la carpeta
/Users/$USER/Library/Developer/CoreSimulator/Devices
en Finder.Con terminal
open /Users/$USER/Library/Developer/CoreSimulator/Devices
-
Buscar
.realm
-
Cambie la búsqueda para buscar solo en la carpeta
"Devices"
.
- Guarde la búsqueda en su barra lateral (por ejemplo, como Reinos)
Cuando se ordena por fecha, esto le dará una lista rápida y fácil de hacer clic de los últimos archivos
.realm
Simulator modificados.
Aquí hay una solución fácil ... Me metí con esto por un tiempo. Debo señalar que este es un conjunto específico de instrucciones que usan Android Studio y el emulador AVD.
1) Inicie el emulador y ejecute su aplicación.
2) Mientras la aplicación aún se está ejecutando, abra el Monitor de dispositivo Android. (está en la barra de herramientas junto a los iconos del administrador de AVD y SDK)
3) Haga clic en la pestaña Explorador de archivos en el Monitor de dispositivo. Debería haber muchas carpetas.
4) Navegue por la siguiente ruta: Datos> Datos> Nombre del paquete > archivos> Default.Realm (o lo que sea que lo haya nombrado)
Ex. Si está utilizando uno de los proyectos de ejemplo de reino, la ruta sería algo así como Datos> Datos> io.realm.examples.realmgridview> archivos> default.realm
5) Resalte el archivo, haga clic en el icono del disquete en el área superior derecha "extraiga un archivo del dispositivo"
6) Guárdelo en el lugar que desee y listo.
El comando correcto (lldb) es:
Realm.Configuration.defaultConfiguration.path
.
El comando lldb correcto para Xcode 7, Swift 2.2+ es
po Realm.Configuration.defaultConfiguration.path!
En Herramientas -> Monitor de dispositivo Android
Y debajo del Explorador de archivos. Busca las aplicaciones. Y el archivo está bajo datos / datos.
En veloz
func getFilePath() -> URL? {
let realm = try! Realm()
return realm.configuration.fileURL
}
Encontré la forma más simple para iOS / macOS (para swift 3 Xcode 8.3)
override func viewDidLoad() {
// for swift 2.0 Xcode 7
print(Realm.Configuration.defaultConfiguration.fileURL!)
}
Luego, el código x registrará la ruta correcta, verifique la pantalla a continuación.
Ahora abra su Finder y presione ⌘ + ⇧ + G (comando + shift + G) y pegue la ruta que inicia sesión en su Xcode
Encontré mi archivo de reino emitiendo este comando en Terminal:
sudo find / -name "*.realm"
.
¡Espero que esto ayude!
He llevado esto un paso más allá. He creado un archivo rápido llamado RealmFunctions y en él he creado esta función.
import RealmSwift
func realmAndPath() -> Realm {
if dev {
// location of my desktop
return try! Realm(path: "/Users/slynch/Desktop/TestRealm.realm")
} else {
return try! Realm()
}
}
Ahora en mi controlador de vista principal, tengo una variable booleana global llamada dev
var dev: Bool = true // when in development mode
var dev: Bool = false // when I want to run on my device or upload to app stor.
Ahora, todo lo que tengo que hacer en mi código es
let realm = realmAndPath()
Entonces, cuando estoy en modo de desarrollo, puedo encontrar mi base de datos de dominio en mi escritorio y puedo abrir en el navegador de dominio.
Las respuestas anteriores faltan una forma de encontrar el archivo de dominio en la plataforma Android y créanme de esta manera le ahorrará mucho tiempo, que generalmente desperdiciamos en otros enfoques para obtener el archivo de dominio. Así que empecemos ...
Primero abra "Device File Explorer" en el estudio de Android (Ver -> Herramientas Windows -> Device File Explorer.
Esto abrirá el explorador de tu dispositivo.
ahora abra datos -> datos -> (your_app_package_name) -> archivos -> default.realm
default.realm es el archivo para el que estamos aquí. Ahora guarde este archivo en su ubicación y acceda al archivo desde el navegador del reino y obtendrá su base de datos.
NOTA: El enfoque mencionado se prueba en un teléfono no rooteado (uno + 3).
Lo que hice fue usar
let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")
y luego se crea en vista completa en mi escritorio y puedo hacer doble clic para iniciar el navegador Realm en él. Más tarde, puedo eliminar el parámetro y dejar que use la ubicación predeterminada cuando esté satisfecho de que todo funcione como se esperaba.
Objective-C -
[RLMRealmConfiguration defaultConfiguration].fileURL
NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);
Por ejemplo, / Users / "Your-user-name" / Library / Developer / CoreSimulator / Devices / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / data / Containers / Data / Application / E427BD21-2CB1-4F64-9ADF-8742FF731209 / Documents / /
Este es el comando más simple que puede ejecutar para obtener su ruta al archivo .realm. Verá el archivo .realm después de completar todas sus operaciones de lectura y escritura.
O
Puede abrir el código abierto openSim , alternativa de los simpholders para acceder al directorio de documentos de su aplicación directamente desde su barra de menú
Para aquellos que usan React Native y usan el reino predeterminado:
Realm.defaultPath
Para obtener la ruta DB para iOS, la forma más simple es:
- Inicia tu aplicación en un simulador
- Pausa en cualquier momento en el depurador
-
Vaya a la consola (donde tiene
(lldb)
) y escriba:po RLMRealm.defaultRealmPath
Tada ... tienes el camino a la base de datos de tu reino
Primero, reconozco que este es un hilo de Android, pero es el primer resultado de búsqueda para este problema en general.
Para abrir la base de datos de Xcode Simulator Realm creada más recientemente en Realm Browser, puede usar este script en Automator o escribirlo todo en el terminal. Al usar Automator, tengo acceso con un clic a mi reino actual.
cd ~/Library/Developer/CoreSimulator/Devices/
cd `ls -t | head -n 1`/data/Containers/Data/Application
cd `ls -t | head -n 1`/Documents
open -a ''Realm Browser'' ./default.realm
Instala Realm Browser. En Automator, haga clic en Nuevo, seleccione Ejecutar script de Shell, pegue el código, cambie el nombre de Realm Db, haga clic en Ejecutar para probar, guarde el archivo en algún lugar conveniente para acceder con un clic rápido.
No sé dónde encontré este consejo la primera vez, pero este hilo me recordó cómo estaba accediendo a mis datos en vivo en el pasado.
Si está utilizando el Realm DB predeterminado en el simulador:
po Realm().configuration.fileURL
Solo para tu aplicación está en el simulador de iOS
Entrar
console.log (Realm.defaultPath)
en el código, por ejemplo: App.js
Solución Swift 2.3
Solución más fácil que no se romperá con las actualizaciones de Realm
let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
print("App Path: /(dirPaths)")
El archivo .realm debe estar dentro de "Documentos"
Si obtiene el error del cuadro de diálogo ''Ingresar clave de cifrado'':
Estoy usando Swift 2.1 con Realm 0.96.2 y recibí este error al intentar abrir el archivo de base de datos:
''default'' no se pudo abrir. Puede estar encriptado o no está en un formato de archivo compatible. Si sabe que el archivo está encriptado, puede ingresar manualmente su clave de encriptación para abrirlo.
Descubrí que el uso de la versión preliminar del navegador Realm 0.96 solucionó el problema:
https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease