En règle générale, le fichier de stockage sqlite pour les applications de données principales se trouve dans
Bibliothèque> Application Support> iPhone Simulator> 7.1 (ou selon la version que vous utilisez)> Applications> (quel que soit le dossier contenant votre application)> Documents
dossier, mais je ne le trouve pas dans IOS 8. Je suppose qu'ils ajouteraient simplement un dossier 8.0 dans le dossier iPhone Simulator, mais ce n'est pas là. Quelqu'un a-t-il pu le localiser?
Réponses:
J'ai réussi à localiser le fichier sqlite, et c'est dans ce chemin maintenant:
(chiffres et lettres) représente un dossier qui serait unique à votre application / ordinateur, mais ressemblerait à ceci: 779AE2245-F8W2-57A9-8C6D-98643B1CF01A
J'ai pu le trouver en accédant à appDelegate.m, en faisant défiler vers le bas
méthode, et NSLogging le chemin de retour, comme ceci:
Cela vous donnera votre chemin unique, ce qui vous facilitera la tâche, car il est difficile de le localiser avec les 2 dossiers / chaînes de lettres et de chiffres sans nom.
Swift 4.2:
la source
xcrun simctl list
pour obtenir la liste des noms de simulateurs et leurs UUID.Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/
n'est plus vrai. Maintenant, vous trouvez le .sqlite et les deux fichiers associés dansLibrary/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Library/Application Support/
Aucune des réponses n'a mentionné le moyen le plus simple d'obtenir réellement l'emplacement du fichier DB.
Il ne vous oblige même pas à modifier votre code source, car il s'agit d'un simple changement de temps d'exécution dans XCode.
Choisissez Modifier le schéma ... à côté du bouton Exécuter.
Sélectionnez Exécuter / Arguments et ajoutez les deux options suivantes:
Exécutez l'application et vous verrez dans les journaux:
la source
Essayez cette étape simple en 3
Copiez le code suivant dans
didFinishLaunchingWithOptions
votreappdelegate.m
et ajoutez un point d'arrêt avant leNSLog()
Ou dans Swift:
2.Ouvrez Finder-> Go -> Aller au dossier et collez le chemin copié à partir de l'étape 1
3. Yah !!! Vous êtes dans votre destination.
la source
Si votre application utilise Core Data, il suffit de rechercher le fichier sqlite dans Terminal:
Les résultats répertorieront le chemin complet des dossiers du simulateur contenant votre application.
la source
alias myapp_simulator_db="find ~/Library/Developer/CoreSimulator/Devices -name MyApp.sqlite"
. C'est pratique lorsque vous devez exécuter cette commande de manière répétitive.J'ai piraté ce one-liner ( 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'" \;
Cela imprime:
Mettre à jour:
Comme quelqu'un l'a souligné ici , il est également possible de courir
xcrun simctl list devices
pour obtenir un résultat similaire:la source
Si vous utilisez Swift , cela renverra le chemin absolu du répertoire du document:
la source
J'ai écrit un script bash pour trouver l'emplacement de votre dossier Application et du dossier Application data dans un simulateur, vous pouvez le télécharger ici . Une fois que vous avez décompressé le script, vous pouvez accéder au dossier dans lequel se trouve le script et l'utiliser. Si vous l'appelez sans option, il vous donnera une liste des simulateurs iOS installés. Vous pouvez ensuite utiliser les options pour trouver votre programme. L'écriture:
trouvera le dossier de l'application et le dossier de la zone d'accueil de votre application sur le simulateur iPad Air iOS 8. Voici un exemple:
Mettre à jour
Il existe une mise à jour du script d'origine qui vous permet de rechercher en fonction du type de périphérique à l'aide d'une option -d. J'ai également écrit un autre script qui crée une série de dossiers judicieusement nommés afin que vous puissiez trouver votre application et vos documents d'application. Ce script créera un dossier appelé iOS_SIMULATORS dans votre zone d'accueil et vous pourrez facilement accéder à votre application à partir de là.
la source
J'ai pu localiser le dossier des simulateurs avec la prochaine sortie de la console:
dans mon cas c'était (Xcode 6 beta)
la source
Basé sur les réponses de Michaels, c'est pour Swift 3
la source
Pour Swift 3.0
vous pouvez obtenir l'emplacement de Coredata dans Xcode 8.2
la source
Après de nouvelles mises à jour de Xcode, j'ai trouvé que les fichiers sql sont maintenant stockés dans un nouveau dossier,
/Library/Application Support
cela pourrait être une situation unique, mais si vous n'avez pas trouvé les fichiers sql dans le dossier de document, recherchez-les ici:~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Library/Application Support/
avant qu'il ne soit stocké dans le
Documents
dossier:~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Documents/
la source
Pour SWIFT 3:
Copiez collez ce code dans didFinishLaunchingWithOptions
la source
Pour Swift 3
la source
Comme James Snook, j'ai créé mon propre script pour faciliter l'accès aux applications du simulateur. Je pense que cela peut être pratique pour de nombreuses personnes qui arrivent ici, à part moi.
Contrairement à son script, le mien n'est pas un outil de recherche, il crée une structure de dossier complète (et lisible par l'homme) avec tous les périphériques / runtimes, et met des liens souples vers les applications qu'ils contiennent.
Vous pouvez l'obtenir dans ce Gist .
Exécutez-le chaque fois que vous installez une application dans le simulateur, ou exécutez-la simplement chaque fois que vous allez chercher une application pour une raison quelconque (elle se mettra à jour et ouvrira le dossier des appareils dans Finder).
la source
Si vous n'avez spécifié aucun répertoire, vous pouvez utiliser le code ci-dessous pour imprimer le répertoire par défaut:
impression (NSPersistentContainer.defaultDirectoryURL ())
la source
Car
iOS 10.0+
vous pouvez utiliserpersistentContainer.persistentStoreCoordinator.persistentStores.first?.url
J'ai créé la fonction Utility qui copie le fichier sqlite à l'emplacement souhaité (ne fonctionne que pour le simulateur).
Vous pouvez l'utiliser comme
Si vous avez déjà accès aux fichiers sqlite, shm et wal, exécutez les commandes du terminal pour fusionner le fichier WAL dans le fichier sqlite.
Après avoir exécuté les commandes ci-dessus, vous pouvez voir les données dans votre fichier sqlite.
Voici la définition de la méthode d'utilité pour rapide
Pour objectif c
la source
Swift 3.x
Recherchez la fonction didFinishLaunchingWithOptions dans votre fichier AppDelegate et collez -y ce code.
la source
Swift 4.x
la source
Swift 4.2
la source
Vous pouvez utiliser le code suivant.
Il imprimera l'emplacement du stockage persistant des données de base, c'est-à-dire sqlite
la source