Gdzie iPhone Simulator przechowuje swoje dane?

Mam SQLite DB, którego używam do przechowywania danych aplikacji, i mógłbym zrobić, aby zajrzeć do środka, aby debugować problem, który mam - ale gdzie zwykle przechowuje dane symulatora iPhone ' a?

Author: benzado, 2009-07-10

21 answers

Dla Xcode6+ / iOS8+

~/Library/Developer/CoreSimulator/Devices/[DeviceID]/data/Containers/Data/Application/[AppID]/

Akceptowana odpowiedź jest prawidłowa dla SDK 3.2-SDK 4 zastępuje / User folder 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 / symulator iPhone ' a / [wersja systemu operacyjnego] / Aplikacje/[appGUID]/

Jeśli zainstaluj poprzednie SDK wraz z jego 3.1.x simulator będzie nadal zapisywał swoje dane w:

~/Biblioteka / Obsługa aplikacji / symulator iPhone ' a / użytkownik / Aplikacje/[appGUID]/

 300
Author: dsmudger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-26 15:02:07

Jest inny (szybszy?) sposób, aby znaleźć, gdzie są dane aplikacji bez Terminala:

  1. Uruchom aplikację w symulatorze
  2. Otwórz Monitor Aktywności]}
  3. Znajdź nazwę aplikacji w zakładce CPU
  4. Kliknij dwukrotnie i Otwórz "otwórz pliki i porty"

Tutaj wpisz opis obrazka

 101
Author: Sergey Lost,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-05 10:11:57

Znaleziono:

~/Library/Application Support/iPhone Simulator/User/
 77
Author: Codebeef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-10 07:04:33

IOS 8 Pliki cookie to niewielkie pliki tekstowe, które przechowywane są w urządzeniu końcowym Użytkownika.]}

 73
Author: Wagh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-07 20:10:02

Najłatwiejszy sposób w życiu.

  1. Złapać gdzieś punkt przerwania.

  2. Enter po NSHomeDirectory() w oknie konsoli

Wynik:

(lldb) po NSHomeDirectory () /Users/usernam/Library/Developer/CoreSimulator/Devices/4734F8C7-B90F-4566-8E89-5060505E387F/data/Containers/Data/Application/395818BB-6D0F-499F-AAFE-068A783D9753

 71
Author: Lal Krishna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Na Lionie Users/[username]/Library jest ukryty.

Aby po prostu wyświetlić w Finderze, kliknij menu " Go "u góry ekranu i przytrzymaj klawisz "alt", aby wyświetlić "Library".

Kliknij na 'biblioteka' i zobaczysz swój wcześniej ukryty folder biblioteki.

poprzednio:

Użyj

chflags nohidden /users/[username]/library

W Terminalu, aby wyświetlić folder.

 65
Author: Rafael Moreira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-17 12:09:04

Jeśli Symulator jest uruchomiony, możesz uzyskać ścieżkę do dowolnego kontenera aplikacji:

xcrun simctl get_app_container booted <app bundle identifier>

Przykładowe wyjście:

$ 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" można zastąpić większością simctl poleceń wszędzie tam, gdzie oczekiwany jest UDID urządzenia.

Możesz zobaczyć listę urządzeń z xcrun simctl list i uzyskać pomoc dotyczącą konkretnych poleceń z xcrun simctl help.

Update: według popularnego żądania w Xcode 8.3 możesz teraz określić rodzaj kontenera, dodając "aplikacja"," Dane"," grupy " lub grupę aplikacji identyfikator.

Aby uzyskać kontener danych:

$ xcrun simctl get_app_container booted com.example.app data
 42
Author: russbishop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-28 06:12:04

Z 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 ciągiem szesnastkowym identyfikującym Twoją aplikację na iOS.

 35
Author: Pisca46,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-21 16:00:01

Wygląda na to, że Xcode 6.0 ponownie przeniósł tę lokalizację, przynajmniej dla symulatorów iOS 8.

~/Library/Developer/CoreSimulator/Devices/[DeviceID]/data/Containers/Data/Application/[AppID]

 30
Author: awolf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-24 22:50:06

Jeden z najprostszych sposobów, aby znaleźć, gdzie aplikacja znajduje się w symulatorze. User " NSTemporaryDirectory()"

Kroki-

  1. Zastosuj punkt przerwania w dowolnym miejscu aplikacji i uruchom aplikację.
  2. Gdy aplikacja zatrzyma się w punkcie przerwania, wpisz następujące polecenie w konsoli Xcode.

    Po NSTemporaryDirectory ()

Zobacz poniższy obrazek, aby uzyskać właściwy wglądTutaj wpisz opis obrazka

Teraz masz dokładną ścieżkę do folderu tymczasowego. Możesz wróć i zobacz wszystkie foldery związane z aplikacją.

Mam nadzieję, że to również pomoże. Szczęśliwego Kodowania:)

 30
Author: Shubhendu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-19 05:43:56

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 te zajmują jak dotąd najwięcej miejsca. Każdy może mieć do ~5Gb

Urządzenia

$ open ~/Library/Developer/CoreSimulator/Devices

Na przykład: iPhone Xr, iPhone 11 Pro Max. Są to zazwyczaj

Wyjaśnienie

Symulatory są podzielone między czasy uruchamiania i urządzenia. Jeśli uruchomisz $ xcrun simctl list możesz zobaczyć przegląd, ale jeśli chcesz znaleźć fizyczną lokalizację tych symulatory, zajrzyj do katalogów, które pokazałem.

Jest całkowicie bezpiecznie usuwać środowiska uruchomieniowe, których nie obsługujesz. Możesz je ponownie zainstalować później, jeśli chcesz.

 10
Author: joshuakcockrell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-07 11:16:25

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/Documents

Idź tam, a zobaczysz folder dokumentów aplikacji niezależnie od wersji XCode. (Użyj "przejdź do folderu..."polecenie w Finderze i podaj ścieżkę "~ / library").

Wersja Swift dla string ścieżka:

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)
 8
Author: LembergSun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-29 10:36:59

W iOS 5:

/ użytkownicy / [nazwa użytkownika] / Biblioteka / Obsługa aplikacji/iPhone Simulator / 5.0 / Aplikacje/[AppGUID] /

 7
Author: Karthi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-28 14:28:49

Dla Xcode 4.6 jest przechowywany w następującej ścieżce...

/Users / [currentuser] / Library / Application Support / iPhone Simulator / 6.1 / Applications /

Aby go poznać programowo użyj następującego kodu

  NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
 6
Author: Durai Amuthan.H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-29 14:11:57

Dla iOS 8

Aby zlokalizować folder Documents , Możesz zapisać plik w folderze Documents:

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
 4
Author: ohho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-29 10:55:17

Jeśli ktoś nadal doświadcza tego problemu w lion, jest świetny artykuł z 19 różnymi wskazówkami, aby wyświetlić katalog ~ / Library. artykuł Dan Frakes znajdziesz tutaj http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html

Pamiętaj, że katalog do symulatora jest podany poniżej

~/Biblioteka / Obsługa aplikacji / iPhone Simulator / użytkownik /

 2
Author: Edwin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-05 11:58:23

Dla użytkowników React-native, którzy nie używają Xcode często, 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.*'

 2
Author: sheepdog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-26 14:42:13

Dla macOS Catalina, znalazłem swój db W:

~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db

Aby uzyskać applicationId, posortowałem foldery według zmodyfikowanej daty, choć jestem pewien, że jest na to lepszy sposób.

 2
Author: stevenspiel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-19 14:30:00

Nie mam powiązania z tym programem, ale jeśli chcesz otworzyć cokolwiek z tego w Finderze SimPholders sprawia, że jest to niezwykle łatwe.

 1
Author: Jason,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-23 02:36:42

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);
 0
Author: Raees Madathil Valapuram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-30 07:34:51

Aby otworzyć katalogi, w których aplikacja jest wbudowana w Xcode na symulatorach, wykonaj następujące czynności:

  1. Otwórz Windor Findera (ikona buźki)
  2. następnie kliknij GO - > Go to Folder
  3. type: ~ / Library / Application Support / iPhone Simulator
  4. Katalogi są wersją różnych symulatorów iOS
  5. podkatalogi to aplikacje instalowane na symulatorze
  6. folder Documents jest miejscem, w którym generowana przez użytkownika zawartość otrzymuje kopię zapasową up on iCloud
 0
Author: Mike Zriel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-16 18:41:49