web-dev-qa-db-fra.com

Chemin du répertoire de documents du simulateur bêta iOS 8

Dans iOS 7, le répertoire de documents des simulateurs iOS se trouve dans:

/Users/Sabo/Library/Application Support/iPhone Simulator/

Cependant, dans iOS 8 Beta Simulator, je ne trouve pas le répertoire correspondant pour iOS 8 dans le répertoire ci-dessus.

Où se trouve le chemin du répertoire de documents pour le simulateur iOS 8?

enter image description here

84
Fire Fist

sur mon ordinateur, le chemin est:

~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/

REMARQUE: Ces identifiants longs (par exemple, les UDID) sont probablement différents sur votre ordinateur.

149
holex

NSLog ci-dessous le code quelque part dans "AppDelegate", lancez votre projet et suivez le chemin. Vous pourrez ainsi accéder facilement aux documents plutôt que de chercher au hasard dans "~/Bibliothèque/Developer/CoreSimulator/Devices /".

Objective-C

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

rapide
Si vous utilisez Swift 1.2, utilisez le code ci-dessous qui ne sortira que dans le développement lorsque vous utiliserez le simulateur en raison du bloc #if#endif:

#if Arch(i386) || Arch(x86_64)
  let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString
  NSLog("Document Path: %@", documentsPath)
#endif

Copiez votre chemin depuis "/ Users/ankur/Library/Developer/CoreSimulator/Devices/7BA821 ..." et sélectionnez "Finder" puis "Go to Folder" ou command + shift + g et collez votre chemin, laissez le mac vous emmener dans votre répertoire de documents :)

72
Ankur

Il suffit d'écrire ci-dessous le code dans AppDelegate -> didFinishLaunchingWithOptions
Objectif C

#if TARGET_IPHONE_SIMULATOR 
// where are you? 
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); 
#endif 


Swift 2.X

if let documentsPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.path {
    print("Documents Directory: " + documentsPath)   
}

Swift 3.X

#if Arch(i386) || Arch(x86_64)
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: \(documentsPath)")
    }
#endif

Swift 4.2

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

Sortie
]

Copiez votre chemin à partir de "/ Users/mitul_marsonia/Library/Developer/CoreSimulator/Devices/E701C1E9-FCED-4428-A36F-17B32D32918A ..." dans "Finder" puis "Aller au dossier" ou à la commande + Maj + g et collez votre chemin , laissez le Mac vous mener à votre répertoire de documents

36
Mitul Marsoniya

Je recommande une application utilitaire Nice appelée SimPholders qui facilite la recherche des fichiers et des dossiers lors du développement de votre application iOS. Il a une nouvelle version pour fonctionner avec les nouveaux simulateurs appelés SimPholders2. Vous pouvez le trouver sur simpholders.com

16
JDibble

Bien que les réponses soient nombreuses, aucune ne permet de comprendre comment la structure des dossiers des simulateurs iOS 8.3 a été modifiée et ne permet pas de trouver rapidement les données de l'application (dossier Documents).

Étant donné qu'iOS 8, le ou les dossiers de stockage de données d'une application sont distincts des fichiers exécutables de l'application, tandis qu'iOS 7 et les versions antérieures possèdent la même structure de dossiers. La seule différence est que tous les simulateurs (différents types et versions) sont maintenant dans un grand dossier.

Ainsi, le chemin d'accès à un simulateur iOS 8,7,6 est le suivant:

~/Library/Developer/CoreSimulator/Devices

Chaque simulateur est maintenant contenu dans un dossier nommé avec un identifiant unique qui change à chaque réinitialisation d'un simulateur.

Vous pouvez trouver la Identifier de chacun de vos appareils et simulateurs en allant à Xcode > Window > Devices (les 3 ou 4 premiers caractères de l'identifiant sont plus que suffisants pour s'en souvenir).

Pour trouver celui sur lequel vous avez installé votre/vos application (s), jetez un coup d'œil à votre Run scheme > devices (écran 2).

screen 1

screen 2

Maintenant, après avoir identifié votre simulateur, la structure des dossiers est très différente selon sa version:

Sur iOS 8 l'exécutable et le dossier de données d'une application se trouvent dans des dossiers différents:

Exécutable: ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Bundle/Application/[appID]

dossier de données: ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/

Dossier de documents: ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/Documents

Sur iOS 7 et au-dessous, la structure de dossiers est la même qu’auparavant, mais rappelez-vous que tous les simulateurs se trouvent dans le même dossier (voir ci-dessus).

14
Razvan

Si votre application utilise CoreData, une astuce intéressante consiste à rechercher le nom du fichier sqlite à l'aide de terminal.

find ~ -name my_app_db_name.sqlite

Les résultats répertorieront les chemins de fichiers complets de tous les simulateurs ayant exécuté votre application.

Je souhaite vraiment que Apple ajoute simplement un bouton au menu de fichier du simulateur iOS, comme "Dossier Révéler Documents dans le Finder".

12
DiscDev

Il est exact que nous devons examiner le chemin ~/Library/Developer/CoreSimulator/Devices /.

Mais le problème que je vois est que le chemin change constamment à chaque fois que je lance l'application. Le chemin contient un autre ensemble d'identifiants longs après la chaîne d'application, qui change constamment à chaque fois que j'exécute l'application. Cela signifie essentiellement que mon application ne disposera pas de données en cache lors de la prochaine exécution.

11
Deepak G M

Avec iOS 9.2 et Xcode 7.2, le script suivant ouvre le dossier Documents de la dernière application installée sur le dernier simulateur utilisé.

cd ~/Library/Developer/CoreSimulator/Devices/
cd `ls -t | head -n 1`/data/Containers/Data/Application 
cd `ls -t | head -n 1`/Documents
open .

Pour créer un script facile à exécuter, placez-le dans une application Automator avec "Run Shell Script":

Run Shell Script inside Automator Application

7
Bouke

Avec l’adoption de CoreSimulator dans Xcode 6.0, les répertoires de données s’appliquent par périphérique plutôt que par version. Le répertoire de données est ~/Bibliothèque/Developer/CoreSimulator/Devices // Les données peuvent être déterminées à partir de 'xcrun simctl list'

Notez que vous pouvez supprimer en toute sécurité ~/Bibliothèque/Application Support/iPhone Simulator et ~/Bibliothèque/Logs/iOS Simulator si vous prévoyez de ne pas avoir besoin de revenir à Xcode 5.x ou une version antérieure.

mise à jour: Xcode 7.2 • Swift 2.1.1

if let documentsPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.path {
    print(documentsPath)   // "var/folder/.../documents\n" copy the full path
}

Allez dans le Finder, appuyez sur cmd-g (ou sur Go> Go to Folder ... dans la barre de menus) et collez le chemin complet "var/folder /.../ documents" et appuyez sur Go.

5
Leo Dabus

Les simulateurs sont situés sous:

~/Library/Developer/CoreSimulator/

Ici, ils sont répertoriés en tant que répertoires avec des noms UUID. Utilisez Trier par 'Date de modification' pour trouver la dernière. À l'intérieur, naviguez vers:

/data/Containers/Data/Application/

Ici, vous obtiendrez une liste de toutes les applications de cet appareil. Vous pouvez à nouveau trier ceci pour obtenir la dernière application.

REMARQUE: Xcode modifie le nom du répertoire à chaque fois que vous exécutez l'application. Ne vous fiez donc pas à la création d'alias/de raccourcis sur le bureau.

Le moyen le plus simple est d'utiliser l'application ici , qui fait tout automatiquement.

4
NSRover

Essayez ~/Library/Developer/CoreSimulator/Devices/

4
Droppy

Où se trouve le répertoire de documents pour le simulateur iOS 8

Vous avez peut-être remarqué que le simulateur iPhone a changé avec Xcode 6 et, bien entendu, le chemin d'accès au répertoire de documents de vos applications simulées. Parfois, nous aurons peut-être besoin d'y jeter un coup d'œil.

Trouver ce chemin n’est pas aussi simple qu’il était, à savoir Library/Application Support/iPhone Simulator/7.1/Applications/suivi d’un numéro crypté représentant votre application.

À partir de Xcode 6 et iOS 8, vous le trouverez ici: Bibliothèque/Développeur/CoreSimulator/Devices/numéro cryptique/data/Conteneurs/Données/Application/numéro cryptique

http://pinkstone.co.uk/where-is-the-documents-directory-for-the-ios-8-simulator/

3
jbchitaliya

dans Appdelegate, mettez ce code pour voir Document and Cache Dir:

#if TARGET_IPHONE_SIMULATOR
    NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
    NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString* cachePath = [cachePathArray lastObject];
    NSLog(@"Cache Directory: %@", cachePath);
#endif

sur le journal:

Répertoire de documents:/Utilisateurs/xxx/Bibliothèque/Développeur/CoreSimulator/Appareils/F90BBF76-C3F8-4040-9C1E-448FAE38FA5E/data/Conteneurs/Données/Application/3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB/Documents /

Répertoire du cache:/Utilisateurs/xxx/Bibliothèque/Développeur/CoreSimulator/Appareils/F90BBF76-C3F8-4040-9C1E-448FAE38FA5E/data/Conteneurs/Données/Application/3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB/Bibliothèque/Caches

3
ikanimo

Si vous aimez aller dans les dossiers d'applications pour voir ce qui se passe et que vous ne voulez pas passer par des UUDID labyrinthiques, j'ai écrit ceci: https://github.com/kallewoof/plget

et en l’utilisant, j’ai fait ceci: https://Gist.github.com/kallewoof/de4899aabde564f62687

En gros, lorsque je veux aller dans le dossier d'une application, je fais:

$ cd ~/iosapps
$ ./app.sh
$ ls -l
total 152
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 My App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/BD660795-9131-4A5A-9A5D-074459F6A4BF
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 Other App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/A74C9F8B-37E0-4D89-80F9-48A15599D404
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 My App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/07BA5718-CF3B-42C7-B501-762E02F9756E
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 Other App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/5A4642A4-B598-429F-ADC9-BB15D5CEE9B0
-rwxr-xr-x  1 me  staff  3282 Nov 14 17:04 app.sh
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/69F7E3EF-B450-4840-826D-3830E79C247A
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/976D1E91-DA9E-4DA0-800D-52D1AE527AC6
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/473F8259-EE11-4417-B04E-6FBA7BF2ED05
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/CB21C38E-B978-4B8F-99D1-EAC7F10BD894
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.otherapp-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/DE3FF8F1-303D-41FA-AD8D-43B22DDADCDE
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-7-1_iPad-Retina.dr -> simulator/4DC11775-F2B5-4447-98EB-FC5C1DB562AD/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-0_iPad-2.dr -> simulator/6FC02AE7-27B4-4DBF-92F1-CCFEBDCAC5EE/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-0_iPad-Retina.dr -> simulator/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-1_iPad-Retina.dr -> simulator/414E8875-8875-4088-B17A-200202219A34/data
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 org.cocoapods.demo.pajdeg-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/C3069623-D55D-462C-82E0-E896C942F7DE
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 simulator -> /Users/me/Library/Developer/CoreSimulator/Devices

La partie ./app.sh synchronise les liens. De nos jours, il est indispensable de toujours que les applications changent d'UUID pour chaque exécution dans Xcode à partir de la version 6.0. De plus, malheureusement, les applications sont classées par ID de bundle pour 8.x et par nom d’application pour <8.

3
Kalle

Basé sur la réponse d'Ankur mais pour nous Swift utilisateurs:

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

Placez-le dans ViewDidLoad et il sera imprimé immédiatement après l'exécution de l'application.

3
kakubei

La meilleure façon de trouver le chemin est de le faire via un code.

En utilisant Swift, collez simplement le code ci-dessous dans la fonction application dans votre AppDelegate.Swift

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsPath = paths.first as String
println(documentsPath)

Pour le code Obj-C, regardez la réponse de @Ankur

2
rsc

Le répertoire du simulateur a été déplacé avec Xcode 6 beta vers ...

 ~/Library/Developer/CoreSimulator

La navigation dans le répertoire du dossier Documents de votre application est un peu plus ardue, par exemple,

~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite
2
hmdeep

Pour Swift 3.x

if let documentsPath = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: " + documentsPath)
    }
1
Boris

iOS 11

if let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory,
                                                           .userDomainMask,
                                                           true).first {
    debugPrint("documentsPath = \(documentsPath)")
}
1
SwiftArchitect