Ответы:
Принятый ответ верен для SDK 3.2 - SDK 4 заменяет папку / User в этом пути номером для каждой из устаревших версий iPhone OS / iOS, которые он может имитировать, поэтому путь становится следующим:
~ / Библиотека / Поддержка приложений / iPhone Simulator / [версия ОС] / Приложения / [appGUID] /
если у вас установлен предыдущий SDK, симулятор 3.1.x продолжит сохранять свои данные в:
~ / Библиотека / Поддержка приложений / iPhone Simulator / Пользователь / Приложения / [appGUID] /
Для Xcode6 и iOS8
~ / Library / Developer / CoreSimulator / Devices / [DeviceId] / данные / Контейнеры / Data / Application / [AppID] /
po NSHomeDirectory()
отладчик. Вырежьте и вставьте в Go> Go To Folder (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, нажмите меню «Перейти» в верхней части экрана и удерживайте нажатой клавишу «Alt», чтобы отобразить «Библиотека».
Нажмите «Библиотека», и вы увидите ранее скрытую папку библиотеки.
Ранее рекомендовано:
использование
chflags nohidden /users/[username]/library
в терминале для отображения папки.
Поймать точку останова где-нибудь.
Войдите po NSHomeDirectory()
в консольное окно
(lldb) po NSHomeDirectory () / Пользователи / usernam / Библиотека / Разработчик / CoreSimulator / Устройства / 4734F8C7-B90F-4566-8E89-5060505E387F / data / Containers / Data / Application / 395818BB-6D0F-499F-AAFE-068A783D9753
Если симулятор запущен, вы можете получить путь к контейнеру любого приложения:
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.
~ / Library / Developer / CoreSimulator / Devices / [DeviceID] / данные / Контейнеры / Data / Application / [AppID]
Один из самых простых способов найти приложение в симуляторе. Пользователь "NSTevenDirectory ()"
Steps-
Когда приложение останавливается в точке останова, введите следующую команду в консоли XCode.
по NSTeditionalDirectory ()
См. Изображение ниже для правильного понимания
Теперь у вас есть точный путь до временной папки. Вы можете вернуться и просмотреть все папки, связанные с приложением.
Надеюсь, это также помогает. Удачного кодирования :)
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);
И вы получите что-то вроде этого:
/ Users / администратор / Library / Developer / CoreSimulator / Devices / 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 / данные / Контейнеры / Data / Application / 6F3B985F-351E-468F-9CFD-BCBE217A25FB / Документы
Перейдите туда, и вы увидите папку с документами вашего приложения независимо от версии XCode. (Используйте команду «Перейти к папке ...» в Finder и укажите путь «~ / library»).
Swift версия для строкового пути:
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 различными советами, чтобы просмотреть ~ / Library dir. найти статью Дэна Фрейкса здесь http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
Помните, что каталог для симулятора приведен ниже
~ / Библиотека / Поддержка приложений / iPhone Simulator / Пользователь /
Для macOS Catalina я нашел свою базу данных в:
~/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 на симуляторах, сделайте следующее:
Я не имею никакого отношения к этой программе, но если вы хотите открыть что-либо из этого в поисковике, SimPholder делает это невероятно простым.
cd ~/Library/Application\ Support/iPhone\ Simulator/