Основной файл данных Местоположение iOS 10

Я пытаюсь использовать SQLite Browsers для просмотра моих объектов Core Data. Я не могу найти, где основные данные сохраняют его sql файл. Я заглянул в папку документов приложений, но там ничего нет.

Знаете ли вы, где основные данные в IOS 10 (симулятор) сохраняют свои SQLite файлы?

Ответ 1

Я тестировал его на XCode 8 Swift 3 OS macOS Sierra

IOS 10

В вашем приложении Appdelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
     print(urls[urls.count-1] as URL)

    return true
}

1. Константа .documentDirectory говорит, что мы ищем каталог документов

2. Постоянная .userDomainMask, чтобы ограничить наш поиск песочницей нашего приложения.

Выход

file:///Users/Ashok/Library/Developer/CoreSimulator/Devices/F629F99F-C745-46EB-8A11-01BC9FF1E592/data/Containers/Data/Application/3B373C93-71A2-46E9-8AF7-EF407C39429F/Documents/

Нажмите "Перейти" → "Перейти в папку" → "Путь вставки" → "Хит ввода"

введите описание изображения здесь

Затем перейдите в библиотеку → Поддержка приложений → filename.sqlite

введите описание изображения здесь

Edited

ИЛИ

откройте свой терминал и введите find ~ -name 'HitTest.sqlite' и нажмите enter.

Ashoks-MacBook-Pro:Desktop Ashok$ find ~ -name 'HitTest.sqlite'
/Users/Ashok/Library/Developer/CoreSimulator/Devices/F629F99F-C745-46EB-8A11-01BC9FF1E592/data/Containers/Data/Application/3B373C93-71A2-46E9-8AF7-EF407C39429F/Documents/HitTest.sqlite

Из вышесказанного вы можете четко увидеть путь к вашему sqlite db

Вы можете использовать DB Browser для SQLite для открытия.

Ответ 2

Просто попробуйте это, я не проверял это на ios 10, но он работал в предыдущих всех версиях

Продукт> Схема> Редактировать схему> Выполнить> Аргументы

Добавьте этот аргумент в " Аргументы переданы при запуске "

-com.apple.CoreData.SQLDebug 1

Каждый раз, когда приложение запускается, оно будет печатать путь к базе данных .

Ответ 3

Swift 3.x

Найдите didFinishLaunchingWithOptions в файле AppDelegate и добавьте эту строку.

let path = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true)
print("\(path)")

Ответ 4

Для XCODE 8.0 (iOS 10): -

Путь к постоянному хранилищу .sqlite:

/Users/Ashish/Library/Developer/CoreSimulator/Devices/"YourDeviceId"/data/Containers/Data/Application/"Application Id"/Library/Application Support/"FileNamePassedInPersistentContainer.sqlite"

Ответ 5

Поскольку местоположение файла основных данных вашего приложения можно изменить, после того, как вы его найдете, вы можете использовать браузер SQLite, например SQLiteFlow, для просмотра содержимого файла основных данных. Причина проста, он может обрабатывать изменения местоположения файлов SQLite. Из документа SQLiteFlow:

Обработка имени файла базы данных или изменений каталога. Это позволяет SQLiteFlow работать с вашей базой данных SQLite в симуляторе iOS.

Ответ 6

For Свифт 5

func getCoreDataDBPath() {
        let path = FileManager
            .default
            .urls(for: .applicationSupportDirectory, in: .userDomainMask)
            .last?
            .absoluteString
            .replacingOccurrences(of: "file://", with: "")
            .removingPercentEncoding

        print("Core Data DB Path :: \(path ?? "Not found")")
    }

Это даст подробный путь до файла sqlite (dbname.sqlite)

print("CoreData path :: \(self.getCoreDataDBPath())")

Примечание. Нажмите "Перейти" → "Перейти к папке" → "Вставить путь сюда" → "Enter".