Відповіді:
Прийнята відповідь є правильною для SDK 3.2 - SDK 4 замінює папку / User на цьому шляху цифрою для кожної застарілої версії iPhone OS / iOS, яку вона може імітувати, тому шлях стає:
~ / Бібліотека / Підтримка програм / iPhone Simulator / [версія ОС] / Програми / [appGUID] /
якщо поруч встановлений попередній SDK, його симулятор 3.1.x продовжить зберігати свої дані у:
~ / Бібліотека / Підтримка програм / iPhone Simulator / Користувач / Програми / [appGUID] /
Для Xcode6 та iOS8
~ / Бібліотека / Розробник / CoreSimulator / Пристрої / [DeviceID] / Дані / Контейнери / Дані / Застосування / [AppID] /
po NSHomeDirectory()
налагоджувач. Виріжте та вставте в «Go»> «Перехід до папки» (Cmd-Shift-G).
NSLog
це в ваших AppDelegate
«з didFinishLaunchingWithOptions:
, або ви можете po NSHomeDirectory()
з відладчика. В будь-якому випадку скопіюйте рядок і відкрийте його у пошуку Cmd+Shift+G
. Це працює краще, тому що ви запитуєте зі стандартною командою замість того, щоб знати щось, що змінюється.
Існує ще один (швидший?) Спосіб знайти місце ваших даних додатка без терміналу:
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
дає вам ідентифікатор пристрою
Знайшов це:
~/Library/Application Support/iPhone Simulator/User/
iOS 8 ~ / Бібліотека / Розробник / CoreSimulator / Пристрої / [Ідентифікатор пристрою] / Дані / Програми / [appGUID] / Документи /
xcrun instruments -s
На Леві Users/[username]/Library
приховано.
Щоб просто переглянути в Finder, натисніть меню "Go" у верхній частині екрана і утримуйте клавішу "alt", щоб відобразити "Library".
Клацніть на «Бібліотека», і ви зможете побачити вашу приховану раніше папку бібліотеки.
Раніше радили:
Використовуйте
chflags nohidden /users/[username]/library
в терміналі для відображення папки.
Кудись зловити точку перерви.
Введіть po NSHomeDirectory()
у вікно консолі
(lldb) po NSHomeDirectory () / Користувачі / usernam / Бібліотека / Розробник / CoreSimulator / Пристрої / 4734F8C7-B90F-4566-8E89-5060505E387F / Дані / Контейнери / Дані / Застосування / 395818BB-6D0F-499F-AAFE-068A783D
Якщо Simulator працює, ви можете отримати шлях до контейнера будь-якого додатка:
xcrun simctl get_app_container booted <app bundle identifier>
Приклад виводу:
$ 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
"завантажений" може бути заміщений більшості simctl
команд, де очікується UDID пристрою.
Ви можете переглянути список пристроїв із xcrun simctl list
та отримати довідку щодо конкретних командxcrun simctl help
.
Оновлення : За популярним запитом у Xcode 8.3 тепер ви можете вказати потрібний тип контейнера, додавши "додаток", "дані", "групи" або ідентифікатор групи додатків.
Щоб отримати контейнер даних:
$ xcrun simctl get_app_container booted com.example.app data
З Xcode 5 ви можете використовувати код нижче:
#import <Foundation/NSFileManager.h>
і:
NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);
Результат може виглядати так:
"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"
Де hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
є шістнадцятковий рядок, що ідентифікує ваш додаток для iOS.
po NSHomeDirectory()
Схоже, що Xcode 6.0 перемістив це місце ще раз, принаймні для тренажерів iOS 8.
~ / Бібліотека / Розробник / CoreSimulator / Пристрої / [DeviceID] / Дані / Контейнери / Дані / Застосування / [AppID]
Один з найпростіших способів знайти місце, де додаток знаходиться в тренажері. Користувач "NSTemvremeDirectory ()"
Кроки-
Коли програма зупиняється на точці розриву, введіть наступну команду в консолі Xcode.
po NSTemporaryDirectory ()
Дивіться зображення нижче для правильного розуміння
Тепер у вас є точний шлях до тимчасової папки. Ви можете повернутися назад і переглянути всі пов’язані з додатком папки.
Сподіваюся, що це також допомагає. Щасливе кодування :)
po NSHomeDirectory()
?
$ open /Library/Developer/CoreSimulator/Profiles/Runtimes
Наприклад: iOS 13.0
, watchOS 6.0
Вони приймають найбільше простір, на сьогоднішній день. Кожна з них може бути до ~ 5 Гб
$ open ~/Library/Developer/CoreSimulator/Devices
Наприклад: iPhone Xr
, iPhone 11 Pro Max
. Зазвичай це <15 мб кожен.
Симулятори розділені між режимами виконання та пристроями. Якщо ти біжиш$ xcrun simctl list
ви можете побачити огляд, але якщо ви хочете знайти фізичне розташування цих тренажерів, погляньте в ці каталоги, які я показав.
Видалити умови виконання, які ви не підтримуєте, цілком безпечно. Ви можете перевстановити їх пізніше, якщо хочете.
Просто зробіть це:
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);
І ви отримаєте щось таке:
/ Користувачі / Адміністратор / Бібліотека / Розробник / CoreSimulator / Пристрої / 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 / дані / Контейнери / Дані / Застосування / 6F3B985F-351E-468F-9CFD-BCBE217A25FB / Документи
Зайдіть туди, і ви побачите папку документів свого додатка незалежно від версії XCode. (Використовуйте команду "Перейти до папки ..." у Finder та вкажіть шлях "~ / library").
Швидка версія для рядкового контуру:
let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true).first
print(docDirPath)
URL-адреса папки:
let docDirUrl =
FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first
print(docDirUrl)
Для Xcode 4.6 він зберігається у наступному шляху ...
/ Користувачі / [currentuser] / Бібліотека / Підтримка додатків / iPhone Simulator / 6.1 / Програми /
Щоб знати це програмно, використовуйте наступний код
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
print("path: \(NSBundle.mainBundle().bundlePath)")
Для iOS 8
Щоб знайти папку « Документи» , ви можете записати файл у папку «Документи»:
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];
скажімо, в didFinishLaunchingWithOptions
.
Потім ви можете відкрити термінал і знайти папку:
$ find ~/Library -name Words.txt
якщо хтось все ще відчуває цю проблему у Лева, є чудова стаття з 19 різними порадами для перегляду вашого ~ / Бібліотечного реєстру. знайти статтю Дена Фрейкса тут http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
Пам'ятайте, що каталог з тренажером наведено нижче
~ / Бібліотека / Підтримка програм / iPhone Simulator / Користувач /
Для macOS Catalina я знайшов свій db у:
~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db
Щоб отримати те applicationId
, я просто сортував папки за датою зміни, хоча я впевнений, що є кращий спосіб зробити це.
Для початкових користувачів, які не використовують Xcode часто, ви можете просто використовувати find
. Відкрийте термінал та виконайте пошук за назвою бази даних.
$ find ~/Library/Developer -name 'myname.db'
Якщо ви не знаєте точної назви, можете скористатися символами:
$ find ~/Library/Developer -name 'myname.*'
Ви можете спробувати скористатися наведеним нижче кодом
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
NSLog(@"File path%@",pdfFileName);
Щоб відкрити словники, де ви додаєте, що ви будуєте в xCode на тренажерах, виконайте наступне:
Я не маю приналежності до цієї програми, але якщо ви хочете відкрити що-небудь із цього в пошуку, SimPholders робить це надзвичайно просто.
cd ~/Library/Application\ Support/iPhone\ Simulator/