web-dev-qa-db-ja.com

コアデータファイルの場所iOS 10

コアデータオブジェクトを表示するために、SQLiteブラウザを使用しようとしています。コアデータがsqlファイルを保存する場所を見つけることができません。アプリドキュメントフォルダを調べましたが、何もありません。

IOS 10(simulator)のコアデータがSQLiteファイルを保存する場所を知っていますか?

12
Idan Aviv

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検索をアプリケーションのサンドボックスに制限します。

output

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

[Go]をクリック-> [Go to Folder]-> [Paste Path]-> [Enter Enter]

enter image description here

次に、ライブラリに移動->アプリケーションサポート-> filename.sqlite

enter image description here

編集済み

[〜#〜]または[〜#〜]

端末を開き、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のパスを明確に見ることができます

SQLite用DBブラウザー を使用して開くことができます。

28
Ashok R

ちょうどこれを試してくださいIOS 10ではチェックしていませんが、以前のすべてのバージョンで動作しています

製品>スキーム>スキームの編集>実行>引数

起動時に渡される引数」にこの引数を追加します

-com.Apple.CoreData.SQLDebug 1

アプリケーションが起動するたびに、データベースへのパスを出力します この引数は次のようになります

12
Jitendra Modi

Swift 3.x

AppDelegateファイルでdidFinishLaunchingWithOptionsを見つけ、この行を追加します。

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

アプリのコアデータファイルの場所は変更可能であるため、見つけた後は SQLiteFlow のようなSQLiteブラウザーを使用してコアデータファイルのコンテンツを閲覧できます。その理由は簡単で、SQLiteファイルの場所の変更を処理できます。 SQLiteFlowのドキュメントから:

データベースファイル名またはディレクトリの変更を処理します。これにより、SQLiteFlowはiOSシミュレーターのSQLiteデータベースと使いやすくなります。

0
Tim

Swift 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をクリックします。

0
Hardik Thakkar

XCODE 8.0(iOS 10)の場合:-

.sqlite永続ストアへのパスは次のとおりです。

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

0
Nupur Sharma