🦁

SwiftDataのデータの中身をDBeaverで確認する

2024/12/05に公開

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