En iOS 7, el directorio de documentos de los simuladores de iOS se puede encontrar en:
/Users/Sabo/Library/Application Support/iPhone Simulator/
Sin embargo, en iOS 8 Beta Simulator , no puedo encontrar el directorio correspondiente para iOS 8 en el directorio de arriba.
¿Dónde está la ruta del directorio de documentos para el simulador de iOS 8?
ios
ios8
ios-simulator
Puño de fuego
fuente
fuente
Respuestas:
en mi computadora, la ruta es:
~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/
NOTA: probablemente esos ID largos (es decir, UDID) sean diferentes en su computadora.
fuente
NSLog
debajo del código en algún lugar de "AppDelegate", ejecute su proyecto y siga la ruta. Esto le resultará fácil acceder a los documentos en lugar de buscar aleatoriamente dentro de "~ / Library / Developer / CoreSimulator / Devices /"C objetivo
NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
Swift
Si está usando Swift 1.2, use el código a continuación que solo se generará en desarrollo cuando use el Simulador debido al
#if
#endif
bloqueo:#if arch(i386) || arch(x86_64) let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString NSLog("Document Path: %@", documentsPath) #endif
Copie su ruta de "/ Users / ankur / Library / Developer / CoreSimulator / Devices / 7BA821 ..." vaya a " Finder " y luego " Ir a la carpeta " o command+ shift+ gy pegue su ruta, deje que la mac lo lleve a su directorio de documentos :)
fuente
Simplemente escriba el código a continuación en AppDelegate -> didFinishLaunchingWithOptions
Objective C
#if TARGET_IPHONE_SIMULATOR // where are you? NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); #endif
Swift 2.X
if let documentsPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.path { print("Documents Directory: " + documentsPath) }
Swift 3.X
#if arch(i386) || arch(x86_64) if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: \(documentsPath)") } #endif
Rápido 4.2
#if targetEnvironment(simulator) if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: \(documentsPath)") } #endif
Salida
/ Usuarios / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A / data / Containers / Data / Application / 25174F64-7130-4B91-BC41-AC74257CCC6E / Documentos
Copie su ruta de "/ Users / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A ..." vaya a "Finder" y luego "Ir a la carpeta" o comando + shift + gy pegue su ruta , deje que la mac lo lleve a su directorio de documentos
fuente
Recomiendo una buena aplicación de utilidad llamada SimPholders que facilita la búsqueda de archivos y carpetas mientras desarrolla su aplicación iOS. Tiene una nueva versión para trabajar con los nuevos simuladores denominada SimPholders2. Se puede encontrar en simpholders.com
fuente
A pesar de que aquí hay muchas respuestas, ninguna proporciona una comprensión de cómo ha cambiado la estructura de carpetas de los simuladores de iOS 8.3 y no proporcionan una forma rápida de encontrar los datos de la aplicación (carpeta de documentos).
Dado que iOS 8, las carpetas de almacenamiento de datos de una aplicación están separadas de los archivos ejecutables de la aplicación, mientras que iOS 7 y versiones inferiores tienen la misma estructura de carpetas, la única diferencia es el hecho de que todos los simuladores (diferentes tipos y versiones) son ahora en una carpeta grande.
Entonces, la ruta a un simulador de iOS 8,7,6 es la siguiente:
~/Library/Developer/CoreSimulator/Devices
Cada simulador ahora está contenido en una carpeta nombrada con un identificador único que cambia en cada reinicio de un simulador.
Puede encontrar el
Identifier
para cada uno de sus dispositivos y simuladores yendo aXcode > Window > Devices
(los primeros 3 o 4 caracteres del identificador son más que suficientes para recordar).Para encontrar aquel en el que ha instalado su (s) aplicación (es), eche un vistazo a su
Run scheme > devices
(pantalla 2).Ahora, después de identificar su simulador, dependiendo de su versión, la estructura de carpetas es muy diferente:
En iOS 8, el ejecutable y la carpeta de datos de una aplicación se encuentran en carpetas diferentes:
Ejecutable :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Bundle/Application/[appID]
Carpeta de datos :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/
Carpeta de documentos :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/Documents
En iOS 7 y debajo, la estructura de carpetas es la misma que antes, solo recuerde que ahora todos los simuladores están en la misma carpeta (ver arriba).
fuente
Si su aplicación usa CoreData, un truco ingenioso es buscar el nombre del archivo sqlite usando terminal.
find ~ -name my_app_db_name.sqlite
Los resultados mostrarán las rutas de archivo completas a cualquier simulador que haya ejecutado su aplicación.
Realmente desearía que Apple simplemente agregara un botón al menú de archivo del Simulador de iOS como "Revelar la carpeta Documentos en el Finder".
fuente
Es correcto que debemos buscar en la ruta ~ / Library / Developer / CoreSimulator / Devices /.
Pero el problema que veo es que la ruta cambia cada vez que ejecuto la aplicación. La ruta contiene otro conjunto de ID largos después de la cadena de la aplicación y eso sigue cambiando cada vez que ejecuto la aplicación. Básicamente, esto significa que mi aplicación no tendrá datos en caché cuando se ejecute la próxima vez.
fuente
Con iOS 9.2 y Xcode 7.2, el siguiente script abrirá la carpeta Documentos de la última aplicación instalada en el último simulador utilizado;
cd ~/Library/Developer/CoreSimulator/Devices/ cd `ls -t | head -n 1`/data/Containers/Data/Application cd `ls -t | head -n 1`/Documents open .
Para crear un script fácil de ejecutar, colóquelo en una aplicación de Automator con "Ejecutar script de shell":
fuente
Con la adopción de CoreSimulator en Xcode 6.0, los directorios de datos son por dispositivo en lugar de por versión. El directorio de datos es ~ / Library / Developer / CoreSimulator / Devices // datos donde se pueden determinar a partir de 'xcrun simctl list'
Tenga en cuenta que puede eliminar de forma segura ~ / Library / Application Support / iPhone Simulator y ~ / Library / Logs / iOS Simulator si no planea tener que volver a Xcode 5.xo anterior.
fuente
actualización: Xcode 11.5 • Swift 5.2
if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path { print(documentsPath) // "var/folder/.../documents\n" copy the full path }
Vaya a su Finder presione command-shift-g (o Ir> Ir a la carpeta ... debajo de la barra de menú) y pegue esa ruta completa "var / carpeta /.../ documentos" allí y presione ir.
fuente
Tratar
~/Library/Developer/CoreSimulator/Devices/
fuente
Enfrenté el mismo problema cuando almacené la ruta completa usando CoreData. Al recuperar la ruta completa, devuelve un valor nulo porque el UUID de la carpeta del documento es diferente cada vez que se reinicia la aplicación. La siguiente es mi resolución:
fuente
¿Dónde está el directorio de documentos para el simulador de iOS 8?
Es posible que haya notado que el iPhone Simulator ha cambiado con Xcode 6, y con él, por supuesto, la ruta al directorio de documentos de sus aplicaciones simuladas. A veces es posible que debamos echarle un vistazo.
Encontrar esa ruta no es tan fácil como antes, es decir, Biblioteca / Soporte de aplicaciones / Simulador de iPhone / 7.1 / Aplicaciones / seguido de un número críptico que representa su aplicación.
A partir de Xcode 6 y iOS 8, lo encontrará aquí: Biblioteca / Desarrollador / CoreSimulator / Dispositivos / número críptico / datos / Contenedores / Datos / Aplicación / número críptico
http://pinkstone.co.uk/where-is-the-documents-directory-for-the-ios-8-simulator/
fuente
en Appdelegate, ponga este código para ver Document and Cache Dir:
#if TARGET_IPHONE_SIMULATOR NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString* cachePath = [cachePathArray lastObject]; NSLog(@"Cache Directory: %@", cachePath); #endif
en registro:
Directorio de documentos: / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Documents /
Directorio de caché: / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Library / Caches
fuente
Si te gusta ir a las carpetas de la aplicación para ver qué está pasando y no quieres tener que pasar por UUDID laberínticos, hice esto: https://github.com/kallewoof/plget
y usándolo, hice esto: https://gist.github.com/kallewoof/de4899aabde564f62687
Básicamente, cuando quiero ir a la carpeta de alguna aplicación, lo hago:
$ cd ~/iosapps $ ./app.sh $ ls -l total 152 lrwxr-xr-x 1 me staff 72 Nov 14 17:15 My App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/BD660795-9131-4A5A-9A5D-074459F6A4BF lrwxr-xr-x 1 me staff 72 Nov 14 17:15 Other App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/A74C9F8B-37E0-4D89-80F9-48A15599D404 lrwxr-xr-x 1 me staff 72 Nov 14 17:15 My App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/07BA5718-CF3B-42C7-B501-762E02F9756E lrwxr-xr-x 1 me staff 72 Nov 14 17:15 Other App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/5A4642A4-B598-429F-ADC9-BB15D5CEE9B0 -rwxr-xr-x 1 me staff 3282 Nov 14 17:04 app.sh lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/69F7E3EF-B450-4840-826D-3830E79C247A lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/976D1E91-DA9E-4DA0-800D-52D1AE527AC6 lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/473F8259-EE11-4417-B04E-6FBA7BF2ED05 lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/CB21C38E-B978-4B8F-99D1-EAC7F10BD894 lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.otherapp-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/DE3FF8F1-303D-41FA-AD8D-43B22DDADCDE lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-7-1_iPad-Retina.dr -> simulator/4DC11775-F2B5-4447-98EB-FC5C1DB562AD/data lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-8-0_iPad-2.dr -> simulator/6FC02AE7-27B4-4DBF-92F1-CCFEBDCAC5EE/data lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-8-0_iPad-Retina.dr -> simulator/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-8-1_iPad-Retina.dr -> simulator/414E8875-8875-4088-B17A-200202219A34/data lrwxr-xr-x 1 me staff 158 Nov 14 17:15 org.cocoapods.demo.pajdeg-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/C3069623-D55D-462C-82E0-E896C942F7DE lrwxr-xr-x 1 me staff 51 Nov 14 17:15 simulator -> /Users/me/Library/Developer/CoreSimulator/Devices
La
./app.sh
parte sincroniza los enlaces. Básicamente, es necesario siempre hoy en día, ya que las aplicaciones cambian el UUID para cada ejecución en Xcode a partir de 6.0. Además, desafortunadamente, las aplicaciones están por ID de paquete para 8.xy por nombre de aplicación para <8.fuente
Basado en la respuesta de Ankur pero para nosotros los usuarios de Swift:
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) println("Possible sqlite file: \(urls)")
Colóquelo dentro de ViewDidLoad y se imprimirá inmediatamente después de la ejecución de la aplicación.
fuente
Los simuladores se encuentran debajo:
~/Library/Developer/CoreSimulator/
Aquí, se enumeran como directorios con nombres UUID. Utilice ordenar por 'Fecha de modificación' para encontrar el último. Dentro, navegue hasta:
/data/Containers/Data/Application/
Aquí obtendrá una lista de todas las aplicaciones en ese dispositivo. Puede volver a ordenar esto para obtener la última aplicación.
NOTA: Xcode cambia el nombre del directorio cada vez que ejecuta la aplicación, así que no confíe en crear alias / atajos en el escritorio.
La forma más sencilla es utilizar la aplicación aquí , que hace todo automáticamente.
fuente
El directorio del simulador se ha movido con Xcode 6 beta a ...
~/Library/Developer/CoreSimulator
Navegar por el directorio de la carpeta Documentos de su aplicación es un poco más arduo, por ejemplo,
~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite
fuente
La mejor forma de encontrar la ruta es hacerlo mediante código.
Usando Swift, simplemente pegue el código a continuación dentro de la aplicación de la función en su AppDelegate.swift
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsPath = paths.first as String println(documentsPath)
Para el código Obj-C, busque la respuesta de @Ankur
fuente
Para Swift 3.x
if let documentsPath = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: " + documentsPath) }
fuente
iOS 11
if let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first { debugPrint("documentsPath = \(documentsPath)") }
fuente