2011-01-10 13 views
7

Estoy teniendo dificultades para tratar de entender un problema en mi aplicación de iPhone.¿Abrir el archivo de base de datos sqlite dentro del simulador de iphone?

Tengo un método de configuración en mi base de datos sqlite que parece funcionar bien. Hago un NSLog cuando estoy configurando el valor y es correcto. Es una cadena con el valor "2010-10-10 12:13:14".

Cuando uso el método get en los mismos datos, resulta que el valor no es correcto. Devuelve 1.

¿Hay alguna manera de abrir el archivo de base de datos que está dentro del simulador de iPhone para que pueda ver cuáles son los datos reales almacenados en la base de datos del simulador?

¿Hay alguna forma de olfatear las llamadas sqlite entre mi simulador y el archivo real? Algo como Charles o Service Capture?

¡Muchas gracias!

+1

Posible duplicado de [¿Cómo ver los datos en el archivo sqlite que se ejecuta en la aplicación iphone?] (Http://stackoverflow.com/questions/4644158/how-to-view-the-data -in-sqlite-file-running-in-iphone-application) –

Respuesta

22

Si desea ver la base de datos que ha creado,

buscador Abrir -> pulse SHIFT + Comando + G -> "~/Library/Application Support/iPhone Simulator "luego ve.

Abierta 5.0 (según su versión del simulador) -> Aplicaciones-> seleccione la carpeta PGM

-> Documentos

enter image description here

A continuación se puede ver la base de datos

enter image description here

5

Para el simulador 6.1, la ubicación es diferente.

de inicio en:

~/Library/Application Support/iPhone Simulator/6.1/Applications/ 

Abrir la carpeta que representa la aplicación en el simulador. El nombre será similar esto:

0951F670-1DAC-9A39-450A-B8EEFFC0FFE1 

Si tiene varias carpetas, a continuación, puede hacer clic en cada carpeta y ver el icono de la aplicación hasta que encuentre la aplicación que busca. Alternativamente, desinstale todas las demás aplicaciones del simulador, excepto la que le interese.

Desde el interior de esta carpeta, haga clic aquí:

Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite 

El camino total debe tener este aspecto:

~/Library/Application Support/iPhone Simulator/6.1/Applications/<APP_ID>/Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite 
11

Desde IOS 8 lo ponen en una carpeta diferente:

Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/

Check this answer for more info

3
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSLog(@"path is %@",documentsDirectory); 

El código anterior imprimirá la ruta de su base de datos y la copiará. Vaya al buscador y elija ir a la carpeta del menú (Shift + Win + G) y pegue aquí la ruta, le dará la ruta exacta del archivo de datos del núcleo. Mantenga esta ventana abierta.

Siguiente paso Ir a Mozilla Firefox haz clic en la barra de menús, selecciona Herramientas -> Administrador de SQL. Abrirá una nueva ventana. En una nueva ventana, haga clic en abrir archivo y arrastre esa ruta del archivo coredata en la ventana actual y haga clic en abrir.

Nota: Debe tener instalado SQLite Manager en su Mozilla Firefox.

2

actualización: Hice una herramienta para automatizar este

Tanto para Android y el IOS, it's available here


vieja pregunta, pero Apple estar al nivel de cambiar la lógica ...

En macOs Sierra puede encontrar la ubicación de la base de datos emitiendo los siguientes comandos (¡el simulador debe ejecutarse durante el proceso!)

ps aux | grep 'CoreSimulator/Devices' 

El resultado debería mostrar el camino hacia el simulador, por ejemplo:

/Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/data/var/run/launchd_bootstrap.plist 

Vaya a la carpeta simulador ahora se encuentran:

cd /Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/Data/Application/ 

Esta carpeta contiene todo las aplicaciones simulador

De aquí si conoce el nombre de la base de datos, simplemente encuéntrelo, así:

find ./ -type f -name 'my_db.db’ 

¡Y viola! Usted tiene la ruta de la base de datos :)

Cuestiones relacionadas