Odpowiedzi:
Zaakceptowana odpowiedź jest poprawna dla SDK 3.2 - SDK 4 zastępuje folder / User w tej ścieżce numerem dla każdej ze starszych wersji iPhone OS / iOS, którą może symulować, więc ścieżka staje się:
~ / Biblioteka / Obsługa aplikacji / iPhone Simulator / [wersja systemu operacyjnego] / Aplikacje / [appGUID] /
jeśli masz zainstalowany poprzedni zestaw SDK, jego symulator 3.1.x będzie nadal zapisywał swoje dane w:
~ / Biblioteka / Obsługa aplikacji / iPhone Simulator / Użytkownik / Aplikacje / [appGUID] /
Dla Xcode6 i iOS8
~ / Library / Developer / CoreSimulator / Devices / [DeviceID] / data / Containers / Data / Application / [AppID] /
po NSHomeDirectory()
debugger. Wytnij i wklej do Go> Idź do folderu (Cmd-Shift-G).
NSLog
tego w swoim AppDelegate
„s didFinishLaunchingWithOptions:
, lub można po NSHomeDirectory()
z debuggera. W obu przypadkach skopiuj ciąg i otwórz go w wyszukiwarce za pomocą Cmd+Shift+G
. Działa to lepiej, ponieważ pytasz standardową komendą zamiast wiedzieć, co się zmienia.
Istnieje inny (szybszy?) Sposób znalezienia danych aplikacji bez terminalu:
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
daje identyfikator urządzenia
Znaleziono to:
~/Library/Application Support/iPhone Simulator/User/
iOS 8 ~ / Library / Developer / CoreSimulator / Devices / [Device ID] / data / Applications / [appGUID] / Documents /
xcrun instruments -s
Na lwie Users/[username]/Library
ukryta jest.
Aby po prostu wyświetlić w Finderze, kliknij menu „Idź” u góry ekranu i przytrzymaj klawisz „alt”, aby wyświetlić „Biblioteka”.
Kliknij „Biblioteka”, aby zobaczyć poprzednio ukryty folder biblioteki.
Wcześniej zalecane:
Posługiwać się
chflags nohidden /users/[username]/library
w terminalu, aby wyświetlić folder.
Złap gdzieś punkt przerwania.
Wejdź po NSHomeDirectory()
w okno konsoli
(lldb) po NSHomeDirectory () / Users / usernam / Library / Developer / CoreSimulator / Devices / 4734F8C7-B90F-4566-8E89-5060505E387F / data / Containers / Data / Application / 395818BB-6D0F-499F-AAFE-068A783D9753
Jeśli symulator jest uruchomiony, możesz uzyskać ścieżkę do kontenera dowolnej aplikacji:
xcrun simctl get_app_container booted <app bundle identifier>
Przykładowe dane wyjściowe:
$ 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
„bootowany” można zastąpić większością simctl
poleceń wszędzie tam, gdzie oczekiwany jest identyfikator UDID urządzenia.
Możesz zobaczyć listę urządzeń xcrun simctl list
i uzyskać pomoc dotyczącą określonych poleceń za pomocą xcrun simctl help
.
Aktualizacja : na podstawie popularnego żądania w Xcode 8.3 możesz teraz określić rodzaj kontenera, który chcesz, dołączając „app”, „data”, „groups” lub identyfikator grupy aplikacji.
Aby uzyskać kontener danych:
$ xcrun simctl get_app_container booted com.example.app data
W Xcode 5 możesz użyć poniższego kodu:
#import <Foundation/NSFileManager.h>
i:
NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);
Wynik może wyglądać następująco:
"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"
Gdzie hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
jest jakiś ciąg szesnastkowy identyfikujący twoją aplikację na iOS.
po NSHomeDirectory()
Wygląda na to, że Xcode 6.0 ponownie przeniósł tę lokalizację, przynajmniej w przypadku symulatorów iOS 8.
~ / Library / Developer / CoreSimulator / Devices / [DeviceID] / data / Containers / Data / Application / [AppID]
Jeden z najłatwiejszych sposobów znalezienia aplikacji w symulatorze. Użytkownik „NSTemporaryDirectory ()”
Kroki-
Gdy aplikacja zatrzyma się w punkcie przerwania, wpisz następujące polecenie w konsoli Xcode.
po NSTemporaryDirectory ()
Zobacz poniższy obraz, aby uzyskać właściwy wgląd
Teraz masz dokładną ścieżkę do folderu tymczasowego. Możesz wrócić i zobaczyć wszystkie foldery związane z aplikacją.
Mam nadzieję, że to również pomaga. Happy Coding :)
po NSHomeDirectory()
?
$ open /Library/Developer/CoreSimulator/Profiles/Runtimes
Na przykład iOS 13.0
,watchOS 6.0
Przyjmują one najwięcej miejsca, zdecydowanie. Każdy może mieć do ~ 5 GB
$ open ~/Library/Developer/CoreSimulator/Devices
Na przykład iPhone Xr
,iPhone 11 Pro Max
. Zazwyczaj są one mniejsze niż 15 mb.
Symulatory są podzielone między środowiska wykonawcze i urządzenia. Jeśli uciekniesz$ xcrun simctl list
, zobaczysz przegląd, ale jeśli chcesz znaleźć fizyczną lokalizację tych symulatorów, zajrzyj do tych katalogów, które pokazałem.
Usuwanie środowisk uruchomieniowych, które nie są obsługiwane, jest całkowicie bezpieczne. Możesz zainstalować je później, jeśli chcesz.
Po prostu zrób to:
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);
I dostaniesz coś takiego:
/ Users / admin / Library / Developer / CoreSimulator / Devices / 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 / data / Containers / Data / Application / 6F3B985F-351E-468F-9CFD-BCBE217A25FB / Dokumenty
Idź tam, a zobaczysz folder dokumentów swojej aplikacji, niezależnie od wersji XCode. (Użyj polecenia „Idź do folderu ...” w Finderze i podaj ścieżkę „~ / library”).
Szybka wersja ścieżki ciągów:
let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true).first
print(docDirPath)
i adres URL folderu:
let docDirUrl =
FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first
print(docDirUrl)
W przypadku Xcode 4.6 jest on zapisywany w następującej ścieżce ...
/ Users / [currentuser] / Library / Application Support / iPhone Simulator / 6.1 / Applications /
Aby to wiedzieć programowo, użyj następującego kodu
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
print("path: \(NSBundle.mainBundle().bundlePath)")
Na iOS 8
Aby zlokalizować folder Dokumenty , możesz napisać plik w folderze Dokumenty:
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];
powiedzmy w didFinishLaunchingWithOptions
.
Następnie możesz otworzyć terminal i znaleźć folder:
$ find ~/Library -name Words.txt
jeśli ktoś nadal doświadcza tego problemu w lwie, jest świetny artykuł z 19 różnymi wskazówkami, aby zobaczyć twój katalog ~ / Library. znajdź artykuł Dana Frakesa tutaj http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
Pamiętaj, że katalog symulatora znajduje się poniżej
~ / Biblioteka / Obsługa aplikacji / iPhone Simulator / Użytkownik /
W przypadku macOS Catalina znalazłem moją bazę danych w:
~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db
Aby to zrobić applicationId
, właśnie posortowałem foldery według daty modyfikacji, ale jestem pewien, że jest na to lepszy sposób.
Dla rodzimych użytkowników, którzy często nie używają Xcode, możesz po prostu użyć find
. Otwórz terminal i wyszukaj według nazwy bazy danych.
$ find ~/Library/Developer -name 'myname.db'
Jeśli nie znasz dokładnej nazwy, możesz użyć symboli wieloznacznych:
$ find ~/Library/Developer -name 'myname.*'
Możesz spróbować użyć poniższego kodu
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
NSLog(@"File path%@",pdfFileName);
Aby otworzyć dyktafony, w których twoja aplikacja jest wbudowana w xCode na symulatorach, wykonaj następujące czynności:
Nie mam żadnego powiązania z tym programem, ale jeśli chcesz otworzyć to w wyszukiwarce, SimPholder sprawia, że jest to niezwykle łatwe.
cd ~/Library/Application\ Support/iPhone\ Simulator/