🦁
SwiftDataのデータの中身をDBeaverで確認する
SwiftDataはローカルでデータを管理するフレームワークです。
今回はSwiftDataを用いて開発中にに保存したデータをDBeaverで確認するまでの流れをまとめます。
必要なアプリケーション
- Xcode
-
DBeaver
もしDBeaverのインストールがまだの場合、こちらからインストールしてください。IntelかApple Silliconかでダウンロードするdmgが異なるので注意してください。
早速やっていく
1. シミュレーターの対象ファイルの位置の確認
以下のコマンドで確認できます。
cd /Users/{USER_NAME}/Library/Developer/CoreSimulator/Devices/{DEVICE_ID}/data/Containers/Data/Application/{APP_ID}/Library/Application Support/
USER_NAMEはPCのユーザーネームです。
DEVICE_ID、APP_IDについてそれぞれどこで確認できるのか説明します。
DEVICE_IDについて
DEVICE_IDはXocde上から確認できます。
まず、Window > Devices and Simulatorsを開きます。
そして、利用しているデバイス/シミュレーターのIdentifierがDEVICE_IDに該当します。
APP_IDについて
以下のコマンドを入力してください。
grep -r "YOUR BUNDLE ID" ~/Library/Developer/CoreSimulator/Devices/{DEVICE_ID}/data/Containers/Data/Application/
"YOUR BUNDLE ID"
には、設定したBundleID(com.で始まるもの)を入力してください。
すると、
Binary file /Users/{USER_NAME}/Library/Developer/CoreSimulator/Devices/{DEVICE_ID}/data/Containers/Data/Application//{APP_ID}/.com.apple.mobile_container_manager.metadata.plist matches
Binary file /Users/{USER_NAME}/Library/Developer/CoreSimulator/Devices/{DEVICE_ID}/data/Containers/Data/Application//{APP_ID}/Library/Application Support/default.store matches
Binary file /Users/{USER_NAME}/Library/Developer/CoreSimulator/Devices/{DEVICE_ID}/data/Containers/Data/Application//{APP_ID}/Library/Saved Application State/{BUNDLE_ID}.savedState/KnownSceneSessions/data.data matches
が返ってきます。この、{APP_ID}
の部分が必要なAPP_IDになります。
2. DBeaverでの確認
あとは普段通りDBeaverで確認するのみです。DBeaverを開いて、新しい接続を作成しましょう。
また、SwiftDataはデータベースにSQLiteを利用しているのでSQLiteを選択して「次へ」を押してください。
そしてブラウズからひたすら先ほどのPATHをたどり、
/Users/{USER_NAME}/Library/Developer/CoreSimulator/Devices/{DEVICE_ID}/data/Containers/Data/Application/{APP_ID}/Library/Application Support/default.store
を選択してください。また、/Users/{USER_NAME}/Library
の部分が隠しファイルになっている可能性がありますので、その場合は、command + shift + .
で隠しファイルも出すようにしてください。
そして「テスト接続」をして、「終了」で、データベースの閲覧ができます!!
Discussion