Где iPhone Simulator хранит свои данные?

У меня есть SQLite DB, который я использую для хранения данных приложения, и я мог бы сделать это, чтобы заглянуть внутрь, чтобы отладить проблему, которую я имею, - но где iPhone Simulator хранит свои данные, обычно?

Ответ 1

Принятый ответ верен для SDK 3.2 - SDK 4 заменяет папку /User в этом пути номером для каждой из устаревших версий iPhone OS/iOS, которые он может имитировать, поэтому путь будет следующим:

~/Library/Поддержка приложений/Симулятор iPhone/[Версия ОС]/Приложения/[appGUID]/

если у вас установлен предыдущий SDK, его симулятор 3.1.x продолжит сохранение своих данных в:

~/Library/Поддержка приложений/Симулятор iPhone/Пользователь/Приложения/[appGUID]/

Для Xcode6 и iOS8

~/Library/Developer/CoreSimulator/Devices/[DeviceID]/данные/Контейнеры/Data/Application/[AppID]/

Ответ 2

Найдено:

~/Library/Application Support/iPhone Simulator/User/

Ответ 3

Существует еще один способ (быстрее?) найти, где ваши данные приложения не имеют терминала:

  • Запустите приложение в симуляторе
  • Монитор открытой активности
  • Найдите имя своего приложения на вкладке ЦП.
  • Дважды щелкните его и откройте "Открыть файлы и порты"

enter image description here

Ответ 4

iOS 8 ~/Library/Разработчик/CoreSimulator/Devices/[Device ID]/data/Applications/[appGUID]/Documents/

Ответ 5

На льве Users/[username]/Library скрыта.

Чтобы просто просмотреть в Finder, нажмите "Go" в верхней части экрана и удерживайте клавишу "alt", чтобы отобразить "Библиотека".

Нажмите "Библиотека", и вы можете увидеть свою ранее скрытую папку библиотеки.

Ранее сообщалось:

Использование

chflags nohidden /users/[username]/library

в терминале для отображения папки.

Ответ 6

С помощью 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.

Ответ 7

Самый простой способ.

  1. Поймать точку останова где-нибудь.

  2. Введите po NSHomeDirectory() в окне консоли

Результат:

(lldb) po NSHomeDirectory()/Пользователи /usernam/Library/Разработчик /CoreSimulator/Устройства /4734F8C7-B90F-4566-8E89-5060505E387F/data/Containers/Data/Application/395818BB-6D0F-499F-AAFE-068A783D9753

Ответ 8

Похоже, что Xcode 6.0 снова перемещает это местоположение, по крайней мере, для симуляторов iOS 8.

~/Library/Developer/CoreSimulator/Devices/[DeviceID]/данные/Контейнеры/Data/Application/[AppID]

Ответ 9

Один из самых простых способов найти, где приложение находится в симуляторе. Пользователь "NSTemporaryDirectory()"

Steps -

  • Применить точку останова в приложении и запустить приложение.
  • Когда приложение останавливается в точке останова, введите следующую команду в консоли Xcode.

    po NSTemporaryDirectory()

См. изображение ниже для правильного понимания введите описание изображения здесь

Теперь у вас есть точный путь до временной папки. Вы можете вернуться и посмотреть все связанные с приложением папки.

Надеюсь, это тоже поможет. Счастливое кодирование:)

Ответ 10

Если симулятор запущен, вы можете получить путь к любому контейнеру приложения:

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

"booted" может быть заменен большинством команд simctl в любом месте, где ожидается UDID устройства.

Вы можете просмотреть список устройств с xcrun simctl list и получить справку по конкретным командам с помощью xcrun simctl help.

Обновить. По популярному запросу в Xcode 8.3 вы можете указать тип контейнера, который вы хотите, добавив "приложение", "данные", "группы" или идентификатор группы приложений.

Чтобы получить контейнер данных:

$ xcrun simctl get_app_container booted com.example.app data

Ответ 11

В iOS 5:

/Пользователи/[Имя пользователя]/Library/Поддержка приложений /iPhone Simulator/5.0/Приложения/[AppGUID]/

Ответ 12

Для Xcode 4.6 он сохраняется в следующем пути...

/Пользователи/[currentuser]/Library/Поддержка приложений /iPhone Simulator/6.1/Приложения/

Чтобы узнать это программным путем, используйте следующий код

  NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);

Ответ 13

Просто сделайте это:

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)

Ответ 14

Для 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

Ответ 15

Если кто-то все еще испытывает эту проблему во льве, есть отличная статья с 19 различными советами для просмотра вашего каталога ~/Library. найти статью Дан Фрэкса здесь http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html

Помните, что каталог для симулятора приведен ниже

~/Library/Поддержка приложений /iPhone Simulator/Пользователь/

Ответ 16

Вы можете попробовать использовать приведенный ниже код

NSString *fileName = @"Demo.pdf";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
    NSLog(@"File path%@",pdfFileName);

Ответ 17

Чтобы открыть те дикторы, в которых вы работаете, которые вы создаете в xCode на симуляторах, выполните следующие действия:

  • открыть винт Finder (значок смайлика)
  • затем нажмите GO → Перейти в папку
  • Тип: ~/Library/Поддержка приложений /iPhone Simulator
  • Каталоги - это iOS-версия различных симуляторов
  • Подкаталоги - это установка приложений на симуляторе
  • В папке "Документы" находится контент, созданный пользователем, который получает резервную копию на iCloud

Ответ 18

Я не имею никакого отношения к этой программе, но если вы хотите открыть что-то из этого в поисковике, SimPholder делает это невероятно простым.

Ответ 19

Для активных пользователей, которые не часто используют Xcode, вы можете просто использовать find. Откройте терминал и выполните поиск по имени базы данных.

$ find ~/Library/Developer -name 'myname.db'

Если вы не знаете точного имени, вы можете использовать подстановочные знаки:

$ find ~/Library/Developer -name 'myname.*'