Normalmente, el archivo de la tienda sqlite para las aplicaciones de datos principales se encuentra en
Biblioteca> Soporte de aplicaciones> Simulador de iPhone> 7.1 (o la versión que esté usando)> Aplicaciones> (La carpeta que contenga su aplicación)> Documentos
carpeta, pero no puedo encontrarla en IOS 8. Asumiría que simplemente agregarían una carpeta 8.0 dentro de la carpeta iPhone Simulator, pero no está allí. ¿Alguien ha podido localizarlo?
Respuestas:
Logré ubicar el archivo sqlite, y ahora está en esta ruta:
(números y letras) representa una carpeta que sería única para su aplicación / computadora, pero que se vería así: 779AE2245-F8W2-57A9-8C6D-98643B1CF01A
Pude encontrarlo yendo a appDelegate.m, desplazándome hasta el
método, y NSLogging la ruta de retorno, así:
Esto le dará su ruta única, haciéndolo más fácil para usted, porque es complicado ubicarlo con las 2 carpetas / cadenas de letras y números sin nombre.
Rápido 4.2:
fuente
xcrun simctl list
para obtener la lista de nombres de simuladores y sus UUID.Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/
ya no es cierto. Ahora encontrará el .sqlite y dos archivos relacionados enLibrary/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Library/Application Support/
Ninguna de las respuestas mencionó la forma más sencilla de obtener la ubicación del archivo DB.
Ni siquiera requiere que modifique su código fuente, ya que es un simple interruptor de tiempo de ejecución en XCode.
Elija Editar esquema ... junto al botón Ejecutar.
Seleccione Ejecutar / Argumentos y agregue las siguientes dos opciones:
Ejecute la aplicación y verá en los registros:
fuente
Prueba este sencillo paso de 3
Copie el siguiente código en
didFinishLaunchingWithOptions
suappdelegate.m
y agregue un punto de interrupción antes delNSLog()
O en Swift:
2.Abrir Finder-> Ir -> Ir a la carpeta y pegar la ruta copiada del paso 1
3. ¡¡¡Yah !!! Estás en tu Destino.
fuente
Si su aplicación usa Core Data, solo es cuestión de buscar el archivo sqlite en Terminal:
Los resultados mostrarán la ruta completa a las carpetas del simulador que contienen su aplicación.
fuente
alias myapp_simulator_db="find ~/Library/Developer/CoreSimulator/Devices -name MyApp.sqlite"
. Es útil cuando necesita ejecutar repetidamente este comando.Hackeé esta frase de una sola línea ( Gist ):
find ~/Library/Developer/CoreSimulator/Devices/ -name device.plist -exec sh -c "/usr/libexec/PlistBuddy -c \"print UDID\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print name\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print runtime\" '{}' | sed -n 's/com\.apple\.CoreSimulator.SimRuntime\.\(.*\)/\1/p'" \;
Esto imprime:
Actualizar:
Como alguien señaló aquí , también es posible ejecutar
xcrun simctl list devices
para obtener un resultado similar:fuente
Si está utilizando Swift , esto devolverá la ruta absoluta del directorio de documentos:
fuente
Escribí un script bash para encontrar la ubicación de la carpeta de la aplicación y la carpeta de datos de la aplicación dentro de un simulador, puede descargarlo aquí . Una vez que haya descomprimido el script, puede navegar a la carpeta en la que se encuentra el script y usarlo. Si lo llama sin opciones, le dará una lista de simuladores iOS instalados. Luego puede usar las opciones para encontrar su programa. Escritura:
encontrará la carpeta de la aplicación y la carpeta del área de inicio para su aplicación en el simulador de iPad Air iOS 8. He aquí un ejemplo:
Actualizar
Hay una actualización del script original que le permite buscar según el tipo de dispositivo usando una opción -d. También escribí otro script que crea una serie de carpetas con nombres razonables para que pueda encontrar su solicitud y los documentos de la solicitud. Este script creará una carpeta llamada iOS_SIMULATORS en su área de inicio y puede navegar fácilmente a su aplicación desde allí.
fuente
Pude ubicar la carpeta de simuladores con la siguiente salida de la consola:
en mi caso fue (Xcode 6 beta)
fuente
Según las respuestas de Michaels, esto es para Swift 3
fuente
Para Swift 3.0
puede obtener la ubicación de Coredata en Xcode 8.2
fuente
Después de nuevas actualizaciones de Xcode, descubrí que los archivos sql ahora están almacenados en una nueva carpeta,
/Library/Application Support
esta podría ser una situación única, pero si no encontró los archivos sql en la carpeta de documentos, búsquelos aquí:~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Library/Application Support/
antes de que se almacenara en la
Documents
carpeta:~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Documents/
fuente
Para SWIFT 3:
Copia y pega este código en didFinishLaunchingWithOptions
fuente
Para swift 3
fuente
Como James Snook , creé mi propio script para proporcionar un acceso más fácil a las aplicaciones del simulador. Creo que puede ser útil para muchas personas que llegan aquí, además de mí.
A diferencia de su script, el mío no es una herramienta de búsqueda, crea una estructura de carpetas completa (y legible por humanos) con todos los dispositivos / tiempos de ejecución, y coloca enlaces suaves a las aplicaciones en ellos.
Puedes conseguirlo en este Gist .
Ejecútelo cada vez que instale una aplicación en el simulador, o simplemente ejecútelo cada vez que vaya a buscar una aplicación por cualquier motivo (se actualizará y abrirá la carpeta de dispositivos en Finder).
fuente
Si no ha especificado ningún directorio, puede usar el siguiente código para imprimir el directorio predeterminado:
imprimir (NSPersistentContainer.defaultDirectoryURL ())
fuente
Porque
iOS 10.0+
puedes usarpersistentContainer.persistentStoreCoordinator.persistentStores.first?.url
He creado la función de utilidad que copia el archivo sqlite a la ubicación deseada (funciona solo para el simulador).
Puedes usarlo como
Si ya tiene acceso a los archivos sqlite, shm y wal, ejecute los comandos en la terminal para fusionar el archivo WAL en el archivo sqlite.
Después de ejecutar los comandos anteriores, puede ver los datos en su archivo sqlite.
Aquí está la definición de método de utilidad para rápido
por C objetivo
fuente
Swift 3.x
Ubique la función didFinishLaunchingWithOptions en su archivo AppDelegate y pegue este código allí.
fuente
Swift 4.x
fuente
Rápido 4.2
fuente
Puede utilizar el siguiente código.
Imprimirá la ubicación del almacenamiento persistente de datos centrales, es decir, sqlite
fuente