Открыть файл базы данных sqlite внутри симулятора iphone? - PullRequest
14 голосов
/ 10 января 2011

Мне трудно понять проблему в приложении для iphone.

У меня есть метод set в моей базе данных sqlite, который, похоже, работает нормально. Я делаю NSLog, когда я устанавливаю значение, и это правильно. Это строка со значением "2010-10-10 12:13:14".

Когда я использую метод get для тех же данных, получается, что значение неверно. Возвращает 1.

Есть ли способ открыть файл базы данных, который находится внутри симулятора iPhone, чтобы я мог видеть, какие фактические данные хранятся в базе данных симулятора?

Есть ли способ прослушать вызовы sqlite между моим симулятором и самим файлом? Что-то вроде Чарльза или служебного захвата?

Большое спасибо!

Ответы [ 6 ]

23 голосов
/ 03 августа 2012

Если вы хотите просмотреть созданную вами базу данных,

Открыть поиск -> нажать SHIFT + Команда + G -> «~ / Библиотека / Поддержка приложений / iPhone Simulator», затем перейдите.

Откройте 5.0 (в соответствии с вашей версией симулятора) -> Приложение-> выберите папку pgm

-> Документы

enter image description here

Тогда вы можете увидеть базу данных

enter image description here

22 голосов
/ 22 июля 2015

Начиная с IOS 8 они помещают его в другую папку:

Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/

Проверьте этот ответ для получения дополнительной информации

7 голосов
/ 10 января 2011

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

Как просмотреть данные в файле sqlite, запущенном в приложении iphone?

Приветствия

5 голосов
/ 20 июля 2017

Обновление: я сделал инструмент для автоматизации этого

Как для Android, так и для iOS, доступно здесь


Старый вопрос, но Apple, похоже, продолжает менять логику ...

В macOs Sierra вы можете найти местоположение базы данных, выполнив следующие команды (симулятор должен работать во время процесса!)

ps aux | grep 'CoreSimulator/Devices'

В результате должен быть указан путь к симулятору, например:

/Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/data/var/run/launchd_bootstrap.plist

Перейдите к найденной папке симулятора:

cd /Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/Data/Application/

Эта папка содержит все приложений симулятора

Отсюда, если вы знаете имя базы данных, просто найдите его, вот так:

find ./ -type f -name 'my_db.db’

И альт! У вас есть путь к базе данных:)

5 голосов
/ 06 июня 2013

Для симулятора 6.1 местоположение отличается.

Начало в:

~/Library/Application Support/iPhone Simulator/6.1/Applications/

Откройте папку, которая представляет приложение на вашем симуляторе. Название будет выглядеть так:

0951F670-1DAC-9A39-450A-B8EEFFC0FFE1

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

Из этой папки перейдите сюда:

Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite

Общий путь должен выглядеть следующим образом:

~/Library/Application Support/iPhone Simulator/6.1/Applications/<APP_ID>/Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite
3 голосов
/ 22 сентября 2015
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSLog(@"path is %@",documentsDirectory);

Приведенный выше код распечатает путь к вашей базе данных и скопирует его.Перейдите в Finder и выберите «Перейти в папку из меню» ( Shift + Win + G ) и вставьте сюда путь, он даст вам точный путь к файлу данных ядра.Оставьте это окно открытым.

Следующий шаг Перейдите в Mozilla Firefox, нажмите на меню, выберите «Инструменты» -> «SQLite Manager».Откроется новое окно.В новом окне щелкните по открытому файлу и перетащите этот путь к файлу coredata в текущем окне и нажмите "Открыть".

Примечание. В вашем браузере Mozilla Firefox должен быть установлен SQLite Manager.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...