Pregunta

Estoy desarrollando una aplicación para iPhone que utiliza la base de datos SQLite incorporada. Estoy tratando de ver y abrir la base de datos a través de la herramienta de línea de comando sqlite3 para poder ejecutar SQL arbitrario contra ella.

Cuando ejecuto mi aplicación en el simulador, el archivo .sqlite que crea se encuentra en ~ / Library / Application Support / iPhone Simulator / User / Applications / .

¿Cómo puedo ver ese archivo en el iPhone físico?

¿Fue útil?

Solución

En Xcode seleccione window- > organizer y expanda el nodo al lado de su aplicación en la sección de aplicaciones de su teléfono. Seleccione la flecha negra que apunta hacia abajo junto a los datos de la aplicación y guarde el archivo en cualquier lugar de su escritorio. Su base de datos sqlite debería estar allí en alguna parte.

En cuanto a cómo volver a recuperarlo en el teléfono una vez que hayas terminado, no tengo idea.

Otros consejos

Instrucciones para Xcode 6.0.1

  1. Xcode > Abrir > YourProject
  2. Xcode > Producto > Ejecutar
  3. Xcode > Ventana > Dispositivos
  4. (Columna 1 - seleccionar) Dispositivos > YourDeviceName
  5. (Columna 2 - seleccionar) Aplicaciones instaladas > YourAppName
  6. (Columna 2 - seleccionar) Cog en la lista 'Aplicaciones instaladas'
  7. (Ventana emergente - seleccionar) Descargar Contenedor ...
  8. Guardar en la ubicación
  9. Haga clic derecho en 'YourAppName.xcappdata'
  10. Seleccione 'Mostrar contenido del paquete'
  11. AppData > Documentos > YourDatabase.sqlite

ingrese la descripción de la imagen aquí

En XCode 4, hace lo mismo que sugirió Lounges, lo que guardará la estructura completa del archivo para su aplicación en el destino que elija. Cambie el nombre del archivo .xcappdata que se guarda en .sqlite para que pueda abrirlo haciendo doble clic, luego puede encontrar el archivo desde el dispositivo.

Este funciona si liberas tu iPhone. No sé por qué alguien tendría algún problema con el desbloqueo de su teléfono, ya que lo he estado usando para el desarrollo durante bastante tiempo y no encontré problemas, tampoco lo es. poco común para que sqlite funcione de manera diferente en el dispositivo vs simulador:

  1. Jail rompe tu teléfono (hay tutoriales en toda la web)
  2. Establezca su nivel de usuario de Cydia en desarrollador
  3. Instala sqlite3 en tu teléfono: ve a cydia > gestionar > fuentes > cydia / telesphoreo > sqlite3
  4. ssh en su teléfono usando iphone tunnel root ssh contraseña: " alpine " ;
  5. Escriba which sqlite3 para asegurarse de tenerlo instalado
  6. navegue hasta la ubicación de su base de datos ... un punto de interrupción en su código debería decirle dónde está ubicado ... en mi código, se parece a esto

    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex: 0]; 
    NSString *pathName = [documentsDirectory stringByAppendingPathComponent:filename];
    return pathName;
    

    Tenga en cuenta que si ejecuta esto en el simulador ... obtendrá una ubicación como la siguiente: / Users / admin / Library / Application Support / iPhone Simulator / 6.0 / Applications / 42302574-7722-48C1-BE00-91800443DA7C / Documents / email-524200.edb

En el dispositivo se verá así: /var/mobile/Applications/FB73857F-A822-497D-A4B8-FBFB269A8699/Documents/email-523600.edb

Luego simplemente escriba sqlite3% dbname% y puede ejecutar sentencias sql directamente en su teléfono ... sin copiarlo o lo que sea.

Exactamente igual que en el simulador. Existen muy pocas diferencias (importantes) entre el dispositivo y el simulador, y el acceso a los archivos y la carga de la biblioteca en su mayor parte no forman parte de ellos.

Tu pregunta sigue siendo un poco vaga. " Ver " ¿En qué sentido? ¿Creas la base de datos SQLite? ¿Cómo? ¿Lo ha colocado manualmente en el área del sistema de archivos del simulador? ¿Quizás estás preguntando cómo hacer eso en el iPhone?

La forma más fácil es crear una base de datos vacía con la herramienta de línea de comandos sqlite3, tenerla como un recurso en su aplicación y luego copiarla en la carpeta de documentos del entorno limitado de su aplicación. Puede obtener la ruta a su carpeta de recursos mediante el método pathForResource: ofType: de NSBundle, luego tome la ruta a su carpeta Documentos a través de NSSearchPathForDirectoriesInDomains () para la carpeta NSDocumentsDirectory en NSUserDomainMask, luego copie el archivo a través de los métodos de NSFileManager.

De lo contrario, puede usar las funciones de SQLite para crear una nueva base de datos desde cero al proporcionar los comandos SQL adecuados para definir su esquema.

La forma más fácil de hacerlo es utilizar iExplorer para descargar el archivo desde su aplicación. y luego use SQLite Professional solo lectura para leer el archivo. Incluso aunque no sea en tiempo real, al menos es gratis. :-)

El método de Contenedor de descarga es el que mejor me pareció. Sin embargo, debe tener cuidado de que algunas veces, si intenta enviarlo por correo electrónico o adjuntarlo desde la aplicación, el archivo que se envía esté vacío.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top