J'ai une base de données SQLite que j'utilise pour stocker les données d'applications et je pourrais y jeter un coup d'œil pour résoudre un problème que je rencontre - mais où le simulateur iPhone stocke-t-il ses données, généralement?
La réponse acceptée est correcte pour le SDK 3.2 - Le SDK 4 remplace le dossier /Utilisateur de ce chemin par un numéro pour chacune des versions héritées de l'iPhone OS/iOS, qu'il peut simuler, alors le chemin devient:
~/Bibliothèque/Application Support/iPhone Simulator/[Version du système d'exploitation]/Applications/[appGUID]/
si le SDK précédent est installé en parallèle, son simulateur 3.1.x continuera à enregistrer ses données dans:
~/Bibliothèque/Application Support/iPhone Simulator/Utilisateur/Applications/[appGUID]/
Pour Xcode6 et iOS8
~/Bibliothèque/Développeur/CoreSimulator/Périphériques/[DeviceID]/data/Conteneurs/Données/Application/[AppID]/
Il existe un autre moyen (plus rapide?) De localiser les données de votre application sans Terminal:
Trouvé le:
~/Library/Application Support/iPhone Simulator/User/
iOS 8 ~/Bibliothèque/Développeur/CoreSimulator/Appareils/[ID de périphérique]/data/Applications/[appGUID]/Documents /
Sur Lion, le Users/[username]/Library
est masqué.
Pour afficher simplement dans le Finder, cliquez sur le menu "Aller" en haut de l'écran et maintenez la touche "Alt" enfoncée pour afficher "Bibliothèque".
Cliquez sur 'Bibliothèque' et vous pourrez voir votre dossier de bibliothèque précédemment masqué.
Auparavant conseillé:
Utilisation
chflags nohidden /users/[username]/library
dans un terminal pour afficher le dossier.
Attraper un point d'arrêt quelque part.
Entrez po NSHomeDirectory()
dans fenêtre de la console
(lldb) po NSHomeDirectory ()/Utilisateurs/usernam/Bibliothèque/Développeur/CoreSimulator/Devices/4734F8C7-B90F-4566-8E89-5060505E387F/conteneurs/Données/Application/395818BB-6D0F-499F -AAFE-068A783D9753
Avec Xcode 5, vous pouvez utiliser le code ci-dessous:
#import <Foundation/NSFileManager.h>
et:
NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);
Le résultat peut ressembler à:
"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"
Où hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
est une chaîne hexagonale identifiant votre application iOS.
On dirait que Xcode 6.0 a encore déplacé cet emplacement, du moins pour les simulateurs iOS 8.
~/Library/Developer/CoreSimulator/Devices/[DeviceID]/data/Containers/Data/Application/[AppID]
Si le simulateur est en cours d'exécution, vous pouvez obtenir le chemin d'accès au conteneur de n'importe quelle application:
xcrun simctl get_app_container booted <app bundle identifier>
Exemple de sortie:
$ xcrun simctl get_app_container booted com.example.app
/Users/jappleseed/Library/Developer/CoreSimulator/Devices/7FB6CB8F-63CB-4F27-BDAB-884814DA6FE0/data/Containers/Bundle/Application/466AE987-76BC-47CF-A207-266E65E7DE0A/example.app
"booted" peut être substitué à la plupart des commandes simctl
partout où un UDID de périphérique est attendu.
Vous pouvez voir la liste des périphériques avec xcrun simctl list
et obtenir de l'aide sur des commandes spécifiques avec xcrun simctl help
.
Mise à jour: À la demande générale dans Xcode 8.3, vous pouvez désormais spécifier le type de conteneur souhaité en ajoutant "app", "données", "groupes" ou un identificateur de groupe d'applications.
Pour obtenir le conteneur de données:
$ xcrun simctl get_app_container booted com.example.app data
L'un des moyens les plus faciles de localiser l'application dans le simulateur. Utilisateur "NSTemporaryDirectory ()"
Pas-
Lorsque l'application s'arrête au point d'arrêt, tapez commande suivante dans la console Xcode.
po NSTemporaryDirectory ()
Voir l'image ci-dessous pour un aperçu approprié
Vous avez maintenant le chemin exact jusqu’au dossier temporaire. Vous pouvez revenir en arrière et voir tous les dossiers liés aux applications.
J'espère que cela aide aussi. Bonne codage :)
Sous iOS 5:
/ Utilisateurs/[Nom d'utilisateur]/Bibliothèque/Application Support/iPhone Simulator/5.0/Applications/[AppGUID] /
Pour Xcode 4.6, il est stocké dans le chemin suivant ...
/ Utilisateurs/[utilisateur actuel]/Bibliothèque/Application Support/iPhone Simulator/6.1/Applications /
Pour le savoir par programme, utilisez le code suivant
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
Faites simplement ceci:
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);
Et vous aurez quelque chose comme ça:
/ Users/admin/Library/Developer/CoreSimulator/Devices/58B5B431-D2BB-46F1-AFF3-DFC789D189E8/data/Conteneurs/Données/Application/6F3B985F-351E-468F-9CFD-BCBE217A25FB/Documents
Allez-y et vous verrez le dossier de documents de votre application quelle que soit la version de XCode. (Utilisez la commande "Aller au dossier ..." dans le Finder et spécifiez un chemin "~/bibliothèque").
Version Swift pour le chemin de la chaîne:
let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true).first
print(docDirPath)
et URL du dossier:
let docDirUrl =
FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first
print(docDirUrl)
Pour iOS 8
Pour localiser le dossier Documents , vous pouvez écrire un fichier dans le dossier Documents:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Words.txt"];
NSString *content = @"Apple";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];
dire, dans didFinishLaunchingWithOptions
.
Ensuite, vous pouvez ouvrir un terminal et trouver le dossier:
$ find ~/Library -name Words.txt
si quelqu'un rencontre encore ce problème dans Lion, il existe un excellent article avec 19 astuces différentes pour afficher votre répertoire ~/Library. trouver l'article de Dan Frakes ici http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
Rappelez-vous que le répertoire du simulateur est donné ci-dessous
~/Bibliothèque/Application Support/iPhone Simulator/User/
Pour les utilisateurs natifs de réactifs qui n'utilisent pas souvent Xcode, vous pouvez simplement utiliser find
. Ouvrez un terminal et recherchez par avec le nom de la base de données.
$ find ~/Library/Developer -name 'myname.db'
Si vous ne connaissez pas le nom exact, vous pouvez utiliser des caractères génériques:
$ find ~/Library/Developer -name 'myname.*'
Pour ouvrir les dictories sur lesquelles vous utilisez App que vous avez créé xCode sur les simulateurs, procédez comme suit:
Je n'ai aucune affiliation avec ce programme, mais si vous souhaitez ouvrir cela dans le Finder SimPholders , cela est incroyablement facile.
Vous pouvez essayer d'utiliser le code ci-dessous
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
NSLog(@"File path%@",pdfFileName);