¿Hay alguna manera de ver lo que se ha guardado NSUserDefaults
directamente? Me gustaría ver si mis datos se guardaron correctamente.
ios
objective-c
macos
nsuserdefaults
Ethan
fuente
fuente
Respuestas:
Puede encontrar el archivo pList para su aplicación en el simulador si va a:
/ usuarios / su nombre de usuario / Biblioteca / Soporte de aplicaciones / iPhone Simulator / <Versión Sim> / Aplicaciones
Este directorio tiene un montón de GUID llamados directorios. Si está trabajando en algunas aplicaciones, habrá algunas. Entonces necesitas encontrar tu aplicación binaria:
Luego vaya al directorio Biblioteca / Preferencias en el directorio GUID. Entonces:
Debería encontrar un archivo que se vea así:
Abra esto en el editor pList y explore los valores persistentes al contenido de su corazón.
fuente
NSUserDefaults
, entoncesNSUserDefaults
no se conservan en un archivo .plist sino que se gestionan en la memoria: stackoverflow.com/questions/6193597/…Puede imprimir todos los NSUserDefaults actuales en el registro:
Solo llaves:
Claves y valores:
fuente
En Swift podemos usar lo siguiente: -
Swift 3.xy 4.x
Para obtener todas las claves y valores:
Para recuperar la representación completa del diccionario de los valores predeterminados del usuario:
Para recuperar las llaves:
Para recuperar los valores:
También podemos usar dump aquí, pero eso devolverá la jerarquía de herencia completa de cada elemento en la matriz de valores. Si se requiere más información sobre los objetos, use dump, de lo contrario, continúe con la declaración de impresión normal.
Swift 2.x
Para recuperar la representación completa del diccionario de los valores predeterminados del usuario:
Para recuperar las llaves:
Para recuperar los valores:
fuente
Puede verificar los valores para cada clave en la matriz, devueltos por
fuente
A veces uso el siguiente fragmento para imprimir la ubicación de mi archivo NSUserDefaults cuando lo ejecuto en el simulador
Produce la ruta a la carpeta de preferencias
Su archivo NSUserDefaults se encuentra en la carpeta de preferencias y se nombra según su prefijo y nombre de aplicación, por ejemplo
Espero que lo mismo sea cierto para el dispositivo real.
fuente
Fácil, ya que el nombre del archivo plist es
<app-bundle-identifier>.plist
, puede usar elfind
comando para encontrar su ruta. Pero llevará mucho tiempo si busca en toda su computadora, por lo que debe elegir un buen alcance, como~/Library/Developer/CoreSimulator
Xcode 6.ejemplo:
find ~/Library/Developer/CoreSimulator -type f -name com.awesome.app.plist
la salida será algo como esto ...
/Users/hlung/Library/Developer/CoreSimulator/Devices/B61913F6-7D7C-4E45-AE2F-F45220A71823/data/Containers/Data/Application/E4CC51CF-11E5-4168-8A74-6BAE3B89998F/Library/Preferences/com.awesome.app.plist
Y desde allí puedes usar el
open
comando. O si usa iTerm2 , simplemente haga clic en la ruta para abrirlo.fuente
En Swift 4.0
porque dictionaryRepresentation de NSUserDefaults.standardUserDefaults () devuelve [String: AnyObject]
Lo convertimos en un
NSDictionary
. Luego, al rodearlo entre paréntesis, '()' nos permitirá llamar a .allKeys o .allValues como lo haría en cualquier NSDictionaryfuente
Use el siguiente código.
fuente
Para las aplicaciones OS X , en lugar de encontrar el archivo plist predeterminado de la aplicación, es más sencillo usar la
defaults
utilidad de línea de comandos.Ejemplo:
fuente
Para Xcode 7
NSUserDefaults standard Los valores predeterminados se almacenan aquí:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Data/Application/{UUID}
NSUserDefaults para una suite / grupo de aplicaciones se almacenan aquí:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Shared/AppGroup/{UUID}/Library/Preferences/{GROUP_NAME}.plist
Recomendaría usar https://github.com/scinfu/NCSimulatorPlugin porque en estos días todo está detrás de los UUID y es difícil de encontrar. Permite un fácil acceso a los directorios de la aplicación del simulador.
fuente
Construí este método basado en la sugerencia de Morion para una mejor presentación. Úselo llamando
[self logAllUserDefaults]
fuente
NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] debugDescription]);
(Casi como en la respuesta más votada arriba.)Busque la aplicación para Mac llamada SimPholders2 . Vive en la barra de menú y enumera todos los simuladores que ha utilizado, y luego muestra cada una de sus aplicaciones. Seleccione uno y obtendrá una nueva ventana del Finder, ya abierta en el directorio de la aplicación. Esto hace que sea muy fácil encontrar su aplicación y todos sus directorios. Es un gran ahorro de tiempo (y lo doné fácilmente al autor).
fuente
Aplicación de simulador
Este script de shell busca el nombre de la aplicación, obtiene la identificación del paquete y abre carpetas que contienen los archivos Plist .
Versión de script extendida
Uso:
iphone-app-folder "My App"
Aplicación Mac
fuente
En Swift 2.2
imprimirá la ubicación de la carpeta de archivos plist de NSUserDefaults en la consola de depuración de Xcode. Copie la cadena de ruta. Abra su Finder, seleccione Ir a la carpeta en el elemento de menú Ir, pegue la cadena de ruta. Haga doble clic en el archivo plist. Verá el contenido en su editor Xcode.
Solo funciona en simulador
Gracias @Niels Castle
fuente
Mantengo un acceso directo en mi escritorio a la carpeta del simulador donde guarda las aplicaciones, es decir:
Ordenado por la fecha más reciente, luego vaya a la carpeta de aplicaciones / Preferencias más reciente y vea el archivo en el editor de plist.
fuente
Swift 3
fuente
Para aplicaciones MacOS
Vaya a: /Users/{User}/Library/Containers/com.{your company}. {Su aplicación} / Data / Library / Preferences y abra la lista de aplicaciones con Xcode.
fuente
Esta es la ruta completa donde los valores clave de UserDefaults estarán en un archivo plist. Siga y busque el archivo .plist de su identificador de paquete de aplicaciones.
Aquí "4176EED3-B9FC-4C77-A25E-ASD201B9FDFG2" es su ID de dispositivo
y "56D7CE31-9A8B-4371-9B0F-9604E239423B0" es su ID de aplicación
Normalmente los obtengo ordenando carpetas por última fecha de modificación en Finder. Y la carpeta editada más reciente es la ID de mi dispositivo y la ID de la aplicación.
¡Disfrutar!
fuente
Puede NSLogar cada valor que establezca, como:
fuente
Después de leer la respuesta aceptada de esta pregunta, armé este script simple que abre los archivos plist utilizados por el simulador de iOS para almacenar las
NSUserDefaults
preferencias, y aunque asume una determinada configuración (se ajusta perfectamente a la mía), puede funcionar como un punto de partida para otros .Ejemplo de colocación:
fuente
Puede usar esto para obtener la ruta completa de las preferencias del usuario, caché y muchos otros datos.
print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true))
fuente
Puede imprimir la ruta del directorio de preferencias desde la
application:didFinishLaunchingWithOptions:
devolución de llamada en su AppDelegate:Luego puede mirar el archivo plist directamente para ver qué hay guardado allí.
fuente