Mam bazę danych SQLite, której używam do przechowywania danych aplikacji, i mógłbym zajrzeć do środka, aby zdebugować problem, który mam - ale gdzie zazwyczaj iPhone Simulator przechowuje swoje dane?
źródło
Mam bazę danych SQLite, której używam do przechowywania danych aplikacji, i mógłbym zajrzeć do środka, aby zdebugować problem, który mam - ale gdzie zazwyczaj iPhone Simulator przechowuje swoje dane?
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] /
cd ~/Library/Application\ Support/iPhone\ Simulator/
po NSHomeDirectory()
debugger. Wytnij i wklej do Go> Idź do folderu (Cmd-Shift-G).NSLog
tego w swoimAppDelegate
„sdidFinishLaunchingWithOptions:
, lub możnapo 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:
źródło
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
daje identyfikator urządzeniaZnaleziono to:
źródło
iOS 8 ~ / Library / Developer / CoreSimulator / Devices / [Device ID] / data / Applications / [appGUID] / Documents /
źródło
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ę
w terminalu, aby wyświetlić folder.
źródło
Najłatwiejszy sposób w historii.
Złap gdzieś punkt przerwania.
Wejdź
po NSHomeDirectory()
w okno konsoliWynik:
źródło
Jeśli symulator jest uruchomiony, możesz uzyskać ścieżkę do kontenera dowolnej aplikacji:
Przykładowe dane wyjściowe:
„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:
źródło
W Xcode 5 możesz użyć poniższego kodu:
i:
Wynik może wyglądać następująco:
Gdzie
hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
jest jakiś ciąg szesnastkowy identyfikujący twoją aplikację na iOS.źródło
po NSHomeDirectory()
Wygląda na to, że Xcode 6.0 ponownie przeniósł tę lokalizację, przynajmniej w przypadku symulatorów iOS 8.
źródło
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 :)
źródło
po NSHomeDirectory()
?Gdzie Xcode przechowuje symulatory w 2019+ Catalina, Xcode 11.0
Runtimes
$ 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 GBUrządzenia
$ open ~/Library/Developer/CoreSimulator/Devices
Na przykład
iPhone Xr
,iPhone 11 Pro Max
. Zazwyczaj są one mniejsze niż 15 mb.Wyjaśnienie
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.
źródło
Po prostu zrób to:
I dostaniesz coś takiego:
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:
i adres URL folderu:
źródło
W iOS 5:
/ Users / [Nazwa użytkownika] / Library / Application Support / iPhone Simulator / 5.0 / Applications / [AppGUID] /
źródło
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
źródło
print("path: \(NSBundle.mainBundle().bundlePath)")
Na iOS 8
Aby zlokalizować folder Dokumenty , możesz napisać plik w folderze Dokumenty:
powiedzmy w
didFinishLaunchingWithOptions
.Następnie możesz otworzyć terminal i znaleźć folder:
źródło
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 /
źródło
W przypadku macOS Catalina znalazłem moją bazę danych w:
Aby to zrobić
applicationId
, właśnie posortowałem foldery według daty modyfikacji, ale jestem pewien, że jest na to lepszy sposób.źródło
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.*'
źródło
Możesz spróbować użyć poniższego kodu
źródło
Aby otworzyć dyktafony, w których twoja aplikacja jest wbudowana w xCode na symulatorach, wykonaj następujące czynności:
źródło
Nie mam żadnego powiązania z tym programem, ale jeśli chcesz otworzyć to w wyszukiwarce, SimPholder sprawia, że jest to niezwykle łatwe.
źródło