Risposte:
La risposta accettata è corretta per SDK 3.2 - SDK 4 sostituisce la cartella / Utente in quel percorso con un numero per ciascuna delle versioni legacy di iPhone OS / iOS che può simulare, quindi il percorso diventa:
~ / Libreria / Supporto applicazioni / Simulatore iPhone / [Versione SO] / Applicazioni / [appGUID] /
se hai l'SDK precedente installato a fianco, il suo simulatore 3.1.x continuerà a salvare i suoi dati in:
~ / Libreria / Supporto applicazioni / Simulatore iPhone / Utente / Applicazioni / [appGUID] /
Per Xcode6 e iOS8
~ / Library / Developer / CoreSimulator / dispositivi / [DeviceID] / dati / Contenitori / dati / Applicazioni / [AppID] /
po NSHomeDirectory()
il debugger. Taglia e incolla in Vai> Vai a cartella (Cmd-Shift-G).
NSLog
presente nel vostro AppDelegate
's didFinishLaunchingWithOptions:
, oppure è possibile po NSHomeDirectory()
dal debugger. In entrambi i casi, copia la stringa e aprila nel finder con Cmd+Shift+G
. Funziona meglio perché stai chiedendo con un comando standard invece di dover sapere qualcosa che cambia.
Esiste un altro modo (più veloce?) Per trovare dove si trovano i dati della tua app senza Terminale:
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
ti dà l'identificatore del dispositivo
Trovato:
~/Library/Application Support/iPhone Simulator/User/
iOS 8 ~ / Libreria / Developer / CoreSimulator / Dispositivi / [ID dispositivo] / dati / Applicazioni / [appGUID] / Documenti /
xcrun instruments -s
Su Lion Users/[username]/Library
è nascosto.
Per visualizzare semplicemente in Finder, fai clic sul menu "Vai" nella parte superiore dello schermo e tieni premuto il tasto "alt" per visualizzare "Libreria".
Fai clic su "Libreria" e puoi vedere la cartella della libreria precedentemente nascosta.
Precedentemente consigliato:
Uso
chflags nohidden /users/[username]/library
in un terminale per visualizzare la cartella.
Cattura un punto di interruzione da qualche parte.
Entra po NSHomeDirectory()
nella finestra della console
(lldb) po NSHomeDirectory () / Users / usernam / Library / Developer / CoreSimulator / Devices / 4734F8C7-B90F-4566-8E89-5060505E387F / data / Containers / Data / Application / 395818BB-6D0F-499F-AAFE-068A783D9753
Se il simulatore è in esecuzione, puoi ottenere il percorso al contenitore di qualsiasi app:
xcrun simctl get_app_container booted <app bundle identifier>
Esempio di output:
$ 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" può essere sostituito alla maggior parte dei simctl
comandi ovunque sia previsto un UDID del dispositivo.
Puoi visualizzare l'elenco dei dispositivi con xcrun simctl list
e ottenere assistenza su comandi specifici con xcrun simctl help
.
Aggiornamento : su richiesta popolare in Xcode 8.3 è ora possibile specificare il tipo di contenitore desiderato aggiungendo "app", "dati", "gruppi" o un identificatore del gruppo di app.
Per ottenere il contenitore di dati:
$ xcrun simctl get_app_container booted com.example.app data
Con Xcode 5 è possibile utilizzare il codice seguente:
#import <Foundation/NSFileManager.h>
e:
NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);
Il risultato potrebbe apparire come:
"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"
Dov'è hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
una stringa esadecimale che identifica la tua app iOS.
po NSHomeDirectory()
Sembra che Xcode 6.0 abbia spostato di nuovo questa posizione, almeno per i simulatori di iOS 8.
~ / Library / Developer / CoreSimulator / Devices / [DeviceID] / dati / Contenitori / dati / Applicazioni / [AppID]
Uno dei modi più semplici per trovare la posizione dell'app all'interno del simulatore. Utente "NSTemporaryDirectory ()"
Steps-
Quando l'app si ferma al punto di interruzione, digitare il comando seguente nella console Xcode.
po NSTemporaryDirectory ()
Vedi l'immagine sotto per una visione corretta
Ora hai il percorso esatto fino alla cartella temporanea. Puoi tornare indietro e vedere tutte le cartelle relative all'app.
Spero che questo aiuti anche. Happy Coding :)
po NSHomeDirectory()
?
$ open /Library/Developer/CoreSimulator/Profiles/Runtimes
Ad esempio: iOS 13.0
, watchOS 6.0
Queste prendono la maggior parte dello spazio, di gran lunga. Ognuno può contenere fino a ~ 5 GB
$ open ~/Library/Developer/CoreSimulator/Devices
Ad esempio: iPhone Xr
, iPhone 11 Pro Max
. Di solito sono <15 mb ciascuno.
I simulatori sono suddivisi tra runtime e dispositivi. Se corri $ xcrun simctl list
puoi vedere una panoramica, ma se vuoi trovare la posizione fisica di questi simulatori, guarda in queste directory che ho mostrato.
È assolutamente sicuro eliminare i runtime che non supportate. Puoi reinstallarli in seguito, se lo desideri.
Basta fare questo:
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);
E otterrai qualcosa del genere:
/ Users / admin / Library / Developer / CoreSimulator / Devices / 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 / dati / Contenitori / dati / applicazioni / 6F3B985F-351E-468F-9CFD-BCBE217A25FB / Documenti
Vai lì e vedrai la cartella documenti della tua app indipendentemente dalla versione di XCode. (Usa il comando "Vai alla cartella ..." nel Finder e specifica un percorso "~ / library").
Versione rapida per percorso stringa:
let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true).first
print(docDirPath)
e URL della cartella:
let docDirUrl =
FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first
print(docDirUrl)
Per Xcode 4.6 viene memorizzato nel seguente percorso ...
/ Utenti / [currentuser] / Libreria / Supporto applicazioni / Simulatore iPhone / 6.1 / Applicazioni /
Per conoscerlo a livello di codice, utilizzare il seguente codice
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
print("path: \(NSBundle.mainBundle().bundlePath)")
Per iOS 8
Per individuare la cartella Documenti , è possibile scrivere un file nella cartella Documenti:
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, in didFinishLaunchingWithOptions
.
Quindi puoi aprire un Terminale e trovare la cartella:
$ find ~/Library -name Words.txt
se qualcuno sta ancora riscontrando questo problema in lion, c'è un ottimo articolo con 19 diversi suggerimenti per visualizzare la tua directory ~ / Library. trova l'articolo di Dan Frakes qui http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
Ricorda che la directory per il simulatore è riportata di seguito
~ / Libreria / Supporto applicazioni / Simulatore iPhone / Utente /
Per macOS Catalina, ho trovato il mio db in:
~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db
Per ottenere il applicationId
, ho appena ordinato le cartelle per data di modifica, anche se sono sicuro che c'è un modo migliore per farlo.
Per gli utenti nativi che non usano Xcode spesso, puoi semplicemente usare find
. Aprire un terminale e cercare con il nome del database.
$ find ~/Library/Developer -name 'myname.db'
Se non conosci il nome esatto puoi utilizzare i caratteri jolly:
$ find ~/Library/Developer -name 'myname.*'
Puoi provare a usare il codice qui sotto
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
NSLog(@"File path%@",pdfFileName);
Per aprire i dittori in cui si trova la tua app che hai creato in xCode sui simulatori, procedi come segue:
Non ho alcuna affiliazione con questo programma, ma se stai cercando di aprire qualcosa di tutto questo nel Finder, SimPholders lo rende incredibilmente facile.
cd ~/Library/Application\ Support/iPhone\ Simulator/