Existe-t-il un moyen de voir le système de fichiers sur le simulateur iOS?

170

Existe-t-il un moyen de parcourir le système de fichiers d'un simulateur iOS en cours d'exécution ou juste tué? Je me contenterais de pouvoir voir les fichiers d'une application spécifique s'il y a un moyen de le faire.

Notez que je ne veux pas faire cela par programme. Je veux voir / ouvrir les fichiers dans le Finder.

Chris Williams
la source

Réponses:

232

MISE À JOUR: Depuis iOS 8:

~ / Bibliothèque / Développeur / CoreSimulator / Appareils

L'emplacement était:

~ / Bibliothèque / Application Support / iPhone Simulator

Il contenait des répertoires pour tous les modèles de simulateurs (4.0, 4.1, 5.0, etc.) que vous avez déjà exécutés, accédez à celui à partir duquel vous exécutez dans Xcode.

Une fois dans un dossier, allez dans Applications, choisissez l'option Finder qui affiche la date des fichiers et triez par date. Votre application sera la plus récente puisqu'elle vient de changer de répertoire ...

À l'intérieur du répertoire se trouve tout ce qui concerne votre application. Vous pouvez même y déposer des fichiers entre les exécutions, pour revenir à une base de données stockée dans un état connu par exemple ...

J'y vais assez souvent je garde le répertoire iPhone Simulator dans ma barre latérale Finder.

Notez qu'avec iOS8, les dossiers du simulateur sont dans un répertoire totalement différent - vraiment divisé en quelques répertoires, avec des noms de dossier pour les fichiers spécifiques à l'application qui changent à chaque fois que vous exécutez votre application.

Kendall Helmstetter Gelner
la source
20
Pour voir le dossier ~ / Library dans Lion, vous devrez exécuter cette commande dans Terminal: chflags nohidden ~ / Library /
Dan J
9
Vous pouvez également appuyer sur la touche d'option lors de l'affichage du Gomenu du Finder
Wayne
3
J'utilise ⌘⇧G du Finder. C'est plus rapide que d'ouvrir Terminal sur CD.
Jacob Pritchett
3
Maintenez 'option' et appuyez sur 'Go' dans la barre de menus du Finder
Matjan
3
Trouver le fichier d'une application spécifique est presque impossible entre les hachages aléatoires, utilisez cette commande pour accéder aux fichiers de l'application:xcrun simctl get_app_container booted my.app.id data
hyperknot
77

iOS 8

Dispositifs

~/Library/Developer/CoreSimulator/Devices

Applications

~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/
Mohsen
la source
8
Pour déterminer votre courant {{Device Code}}}, un moyen simple consiste à ouvrir le simulateur souhaité dans Xcode, puis dans le Finder, trier le ~/Library/Developer/CoreSimulator/Devices/répertoire par Date Modified. Le plus récent est celui que vous souhaitez.
Stan James
2
Pour les données de l'application: ~ / Library / Developer / CoreSimulator / Devices / {{Device Code}} / data / Containers / Data / Application / {{Application Id}}
Bjørn Egil
En fait, vous pouvez voir le {{Device Code}}dans Matériel> Périphérique> Gérer les périphériques ...
Filius Patris
30

Ouvrez le programme "Moniteur d'activité", recherchez votre application (juste le nom de l'application, pas le simulateur), cliquez sur "Informations" et ouvrez "Ouvrir les fichiers et les ports". Copiez la deuxième entrée (quelque chose comme /Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourApp). Ceci est l'application en cours d'exécution, tandis que <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/le bundle et <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/*le dossier en bac à sable.

Si vous le transmettez open "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"au terminal, le dossier s'ouvrira dans le Finder.

Cela semble compliqué mais ne l'est pas.

vikingosegundo
la source
Bon point! En particulier, vous n'avez pas besoin d'accéder à .apppour voir un système de fichiers de votre application.
Yevhen Dubinin
Excellente suggestion .. J'espère vraiment qu'il y a un script ou un petit utilitaire pour vous aider. Chaque appareil iOS émulé comme un dossier complètement différent semble-t-il .. La structure des dossiers est partout dans la nouvelle version .. :(
Markive
excellente réponse, surtout lorsque l'itinéraire a changé avec les versions Xcode
rgkobashi
21

Facile. Vite. Xcode 10+.

  1. Utilisez print(NSHomeDirectory())et copiez le chemin.
  2. Ouvrez l' application Finder et appuyez surShift+Cmd+G
  3. Collez le chemin copié et appuyez sur GO

Une alternative pour 1. est d'attraper un point d'arrêt et de le faire po NSHomeDirectory()dans la console.

Tung Fam
la source
Où dois-je exécuter l'étape 1?
Carson Holzheimer
1
@CarsonHolzheimer dans votre code, par exemple dans viewDidLoadvotre ViewController. peut-être que j'aurais dû écrire non pas "run" mais autre chose. Merci!
Tung Fam
18

basé sur la réponse zsero

Détails

macOS 10.13.1

Solution 1

Exécutez la ligne suivante dans le terminal

Modèle

open `xcrun simctl get_app_container booted BUNDLEID_OF_YOUR_APP data` -a Finder

Échantillon complet

open `xcrun simctl get_app_container booted com.Test data` -a 

BUNDLEID_OF_YOUR_APP ???

BUNDLEID_OF_YOUR_APP = "Identifiant du bundle"

entrez la description de l'image ici

Caractéristiques de la solution 1

  • ouvrir le fichier pour obtenir le répertoire du simulateur d'application

Solution 2

Créez un script bash avec un nom de votre application et du code:

script_file_name = `basename "$0"`
open `xcrun simctl get_app_container booted $script_file_name data`

entrez la description de l'image ici

Caractéristiques de la solution 2

  • ouvrir le fichier pour obtenir le répertoire du simulateur d'application
  • renommer le fichier pour obtenir un autre répertoire de simulateur d'application

Résultat

entrez la description de l'image ici

Vasily Bodnarchuk
la source
Il semble que vous deviez ajouter "Finder" à la fin de la chaîne "Full Sample".
phantom_2
7

Si vous souhaitez automatiser l'obtention de l'emplacement ou utiliser ce dossier dans les scripts, vous pouvez obtenir l'emplacement précis à partir d'un simulateur en cours d'exécution avec la commande suivante:

xcrun simctl get_app_container booted my.app.id data
hyperknot
la source
2

Ancien message, mais je pense qu'il vaut la peine de mentionner les détenteurs de SimP pour trouver vos fichiers Simulator. C'est un élément de la barre de menu qui suit vos applications de simulateur et vous permet d'accéder directement à leurs dossiers et à leur contenu. C'est super génial.

(réponse originale ici: https://stackoverflow.com/a/26557165/377384 )

renard lindon
la source
1

Sur la base de la réponse @zsero, j'ai créé un court bashscript qui ouvre directement le dossier du simulateur de votre identifiant d'application. Très utile!

openappfolder.sh

#!/bin/bash

APPID=$1
if OUTPUT=`xcrun simctl get_app_container booted $APPID data` ; then
    open $OUTPUT
else
    echo "$APPID not found!"
fi 2>/dev/null

Alors juste

openappfolder.sh com.bundle.id

👍

Martin
la source
1

Pour Swift 4.2 et supérieur, placez quelque chose comme le code suivant:

#if targetEnvironment(simulator)
    print("::::: SIMULATOR :::::")
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("App Documents Directory:\n\(documentsPath)\n")
    }
#endif

... dans un emplacement de code source tel que:

func application(
    _ application: UIApplication, 
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
    // ...
    return true
}

Utilisez le chemin résultant avec cdou opensur la ligne de commande du terminal. Ou, collez le chemin dans l' shift-cmd-Ginvite du Finder «Aller au dossier…».

Réponse associée qui inclut des versions linguistiques plus anciennes: Chemin du répertoire de documents du simulateur bêta d'iOS 8

l --marc l
la source
0

Sur Xcode Version 8.2.1 (8C1002), j'ai trouvé les fichiers .app installés sur le simulateur dans ce chemin: ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator

JoxieMedina
la source
0

tout d'abord, obtenez la liste des simulateurs avec l' ID de l' appareil à partir du terminal

  1. instruments -s appareils
  2. liste xcrun simctl

Ensuite, mettez l'identifiant de l'appareil sous le chemin. vous obtiendrez un système de fichiers de simulateur spécifique ~/Library/Developer/CoreSimulator/Devices/{{deviceID}}

Muhammad Numan
la source