ios xcode core-data ios8 xcode6

ios - Xcode 6 iPhone Simulator Application Support location



core-data ios8 (13)

En Xcode 6, tengo una aplicación en la que estoy usando Core Data, pero no hay ninguna carpeta en Application Support para iOS 8 iPhone Simulator. ¿Dónde están almacenados mis archivos y la base de datos sqlite de Core Data?


Buscador abierto> Biblioteca> Desarrollador> CoreSimulator> Dispositivos

A continuación, cambie el icono de Arreglo desde el buscador seleccione Fecha agregada

Seleccione su aplicación> datos> Contenedor> datos> Aplicaciones>

elige tu aplicación> Documentos> Aquí está tu archivo db

En mi caso:

/Users/pluto/Library/Developer/CoreSimulator/Devices/A75107D2-A535-415A-865D-978B2555370B/data/Containers/Data/Application/265A12BC-FF5B-4235-B5EF-6022B83754B4/Documents/dboPhotoBucket.sqlite

De lo contrario, haz esto:

NSLog(@"app dir: %@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);

- Imprimirá la ruta completa a la carpeta de datos.

Rápido:

let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) println("App Path: /(dirPaths)")


Creé este script que comprime la última aplicación creada para cualquier simulador y lo comprime en el escritorio.

https://gist.github.com/Gerst20051/8ca49d5afbf09007b3696fab6e9f425c

#!/bin/bash DESTINATION_DIR="$HOME/Desktop" APP_PATH=$(find ~/Library/Developer/CoreSimulator/Devices/*/data/Containers/Bundle/Application/*/*.app -type d -maxdepth 0 -print0 | xargs -0 ls -td | head -n1) APP_DIRNAME=$(dirname "$APP_PATH") APP_BASENAME=$(basename "$APP_PATH") FILE_NAME="${APP_BASENAME%.*}" cd "$APP_DIRNAME" zip -qr "$DESTINATION_DIR/$FILE_NAME.zip" "$APP_BASENAME"


El directorio del simulador se ha movido con Xcode 6 beta a ...

~/Library/Developer/CoreSimulator

Navegar por el directorio a 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


El simulador coloca el archivo en ~ / Library / Developer / CoreSimulator / Devices / ... pero la ruta siguiente / Devices es diferente para todos.

Utiliza este práctico método. Devuelve la ruta del directorio temporal para el usuario actual y no toma ningún argumento.

NSString * NSTemporaryDirectory ( void );

Por lo tanto, en mi clase ViewController generalmente pongo esta línea en mi viewDidLoad solo como referencia cuando necesito tomar mi archivo CoreData almacenado. Espero que esto ayude.

NSLog(@"FILE PATH :%@", NSTemporaryDirectory());

(Nota: para ir a la ruta, desde el menú del buscador, haga clic en Ir y escriba ~ / Biblioteca para abrir el directorio oculto y luego en la ventana del Finder puede hacer clic en la ruta que se muestra en la consola).


Encontré la aplicación SimulatorManager muy útil. Lo lleva directamente a la carpeta de aplicaciones de los simuladores instalados. Lo he intentado con los simuladores 7.1, 8.0 y 8.1.

SimulatorManager reside como un icono en la bandeja del sistema y ofrece una opción para "Iniciar al iniciar sesión".

Nota : Esto solo funciona con Xcode 6 (6.1.1 en mi caso) y superior.

¡Espero que ayude!


Esta ubicación, una vez más, ha cambiado, si usa Swift, use esto para averiguar dónde está la carpeta (esto se copia del archivo AppDelegate.swift que Apple crea para usted, de modo que si no funciona en su máquina, busque en ese archivo para la sintaxis correcta, esto funciona en el mío usando Xcode 6.1 y el simulador iOS 8):

let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) println("Possible sqlite file: /(urls)")


Esto funcionó para mí en forma rápida:

let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) println("App Path: /(dirPaths)")


Los simuladores se encuentran en:

~/Library/Developer/CoreSimulator/

Aquí, se enumeran como directorios con nombres de UUID. Utilice ordenar por ''Fecha de modificación'' para encontrar la última. Dentro de navegar a:

/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 hacer alias / atajos en el escritorio.

La forma más fácil es usar la aplicación this , que hace todo automáticamente.


Luché con esto por un tiempo. Se convirtió en un gran dolor simplemente para llegar a mi sqlite db local. Escribí este script y lo convertí en un fragmento de código dentro de XCode. Lo ubico dentro de mi appDidFinishLaunching dentro de mi appDelegate.

//xcode 6 moves the documents dir every time. haven''t found out why yet. #if DEBUG NSLog(@"caching documents dir for xcode 6. %@", [NSBundle mainBundle]); NSString *toFile = @"XCodePaths/lastBuild.txt"; NSError *err = nil; [DOCS_DIR writeToFile:toFile atomically:YES encoding:NSUTF8StringEncoding error:&err]; if(err) NSLog(@"%@", [err localizedDescription]); NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"]; NSString *aliasPath = [NSString stringWithFormat:@"XCodePaths/%@", appName]; remove([aliasPath UTF8String]); [[NSFileManager defaultManager] createSymbolicLinkAtPath:aliasPath withDestinationPath:DOCS_DIR error:nil]; #endif

Esto crea un simlink en la raíz de tu disco. (Puede que tenga que crear esta carpeta usted mismo la primera vez, y chmod, o puede cambiar la ubicación a algún otro lugar) Luego instalé el complemento xcodeway https://github.com/onmyway133/XcodeWay

Lo modifiqué un poco para que me permita simplemente presionar cmd + d y abrirá una bobinadora de búsqueda al directorio persistente de Documentos de mi aplicación actual. De esta forma, no importa cuántas veces XCode cambie su ruta, solo cambia en la ejecución, y actualiza su simlink inmediatamente en cada ejecución.

¡Espero que esto sea útil para otros!


Para saber dónde está almacenado su archivo .sqlite en su AppDelegate.m agregue el siguiente código

- (NSURL *)applicationDocumentsDirectory { NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; }

ahora llama a este método en AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //call here [self applicationDocumentsDirectory]; }


Sugeriría que use SimPholders para encontrar sus archivos Simulator. Es un elemento de la barra de menú que rastrea las aplicaciones de su simulador y le permite ir directamente a sus carpetas y contenido. Es impresionante.


Use Finder -> vaya a la carpeta e ingrese el sendero base dado para llegar a las carpetas de la aplicación

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; NSLog(@"%@",basePath);


1. NSTemporaryDirectory() gives this: /Users/spokaneDude/Library/Developer/CoreSimulator/Devices/1EE69744-255A-45CD-88F1-63FEAD117B32/data/Containers/Data/Application/199B1ACA-A80B-44BD-8E5E-DDF3DCF0D8D9/tmp 2. remove "/tmp" replacing it with "/Library/Application Support/<app name>/" --> is where the .sqlite files reside