Realmに保存されたデータを確認したい!
iOSアプリ開発でRealmを使用している際、シミュレーター上のRealmファイルを直接確認したいことがあります。この記事では、以下の手順を通してシミュレーター内のRealmファイルを取得する方法を解説します。
手順概要
xcrun simctl list
でデバイスを特定- 該当デバイスのディレクトリに移動し、アプリケーションを特定
- Realmファイルを特定して取得
手順 1: xcrun simctl list
でデバイスを特定
まず、シミュレーターで実行中のデバイス情報を確認します。
コマンド実行
以下のコマンドをターミナルで実行します。
xcrun simctl list
出力例
== Devices ==
-- iOS 16.4 --
iPhone 14 (A1B2C3D4-5678-9101-1121-314151617181) (Booted)
iPhone 14 Pro (E1F2G3H4-9101-1121-3141-516171819202) (Shutdown)
(Booted)
と表示されているものが現在起動中のシミュレーターです。
この例では、iPhone 14 が起動しており、デバイスIDは A1B2C3D4-5678-9101-1121-314151617181
です。このデバイスIDをメモしておきます。
手順 2: 該当デバイスのディレクトリに移動
次に、該当デバイスのディレクトリにアクセスして、アプリケーションを特定します。
ディレクトリパス
シミュレーターのデバイスデータは以下の場所に保存されています。
~/Library/Developer/CoreSimulator/Devices/{デバイスID}/data/Containers/Data/Application
移動方法
以下のコマンドを使用して、該当するデバイスのアプリケーションデータディレクトリに移動します。
cd ~/Library/Developer/CoreSimulator/Devices/A1B2C3D4-5678-9101-1121-314151617181/data/Containers/Data/Application
アプリケーションの特定方法
Application
ディレクトリ内には、アプリごとに割り当てられたフォルダが並んでいます。それぞれのフォルダにはアプリのデータが保存されています。
ls
出力例
F2G3H4I5J6K7L8M9N0OPQRSTUVWX
G1H2I3J4K5L6M7N8O9PQRSTUVWXY
これらのフォルダがそれぞれアプリを指します。どのフォルダが目的のアプリかを確認するには、以下の方法を試してください。
-
フォルダ内を直接確認する方法
各フォルダ内にはアプリのデータが保存されており、Documents
ディレクトリや他の保存ファイルが含まれています。以下のコマンドで中身を確認し、目的のファイルがあるか確認してください。cd F2G3H4I5J6K7L8M9N0OPQRSTUVWX ls
-
info.plist
を確認する方法
各フォルダ内にはアプリに関連するinfo.plist
ファイルが存在します。このファイルを参照して、アプリのバンドルIDや名前を確認できます。以下のコマンドで内容を確認してください。cat ./info.plist
-
バンドルIDで特定する方法
アプリのバンドルIDが分かっている場合、以下の手順で特定することが可能です。-
バンドルIDを利用した検索
アプリのバンドルID(例:com.example.app
)を使用して、info.plist
を検索します。grep -r "com.example.app" .
このコマンドは、現在のディレクトリ内のすべてのファイルを検索し、バンドルIDが一致するフォルダを特定します。
-
検索結果を利用する
検索結果からバンドルIDが含まれるフォルダを特定し、そのフォルダに移動して内容を確認します。cd フォルダ名 ls
-
目的のアプリケーションフォルダが特定できたら、次の手順に進みます。
手順 3: Realmファイルを特定して取得
アプリのデータフォルダを特定したら、次にRealmファイルを探します。
Realmファイルのデフォルト保存場所
通常、Realmファイルは Documents
フォルダに保存されています。default.realm
という名前で保存されているのが一般的です。
特定方法
アプリケーションのディレクトリ内で以下のコマンドを実行して、Realmファイルを検索します。
find . -name "*.realm"
出力例
./Documents/default.realm
この結果で、Realmファイルの保存場所が特定できます。
Finderで開く
ファイルをFinderで開きたい場合、以下のコマンドを実行します。
open ./Documents/default.realm
これにより、Finderが起動して指定の場所が表示されます。
補足: ファイルパスをアプリでログ出力する
アプリ内から直接Realmファイルの保存場所を確認したい場合は、以下のコードを利用してログに出力する方法もあります。
import RealmSwift
func logRealmPath() {
if let realmPath = Realm.Configuration.defaultConfiguration.fileURL {
print("Realm file path: \(realmPath.path)")
} else {
print("Realm file path not found.")
}
}
まとめ
これで、シミュレーター上のRealmファイルを取得する手順は完了です。以下のポイントを確認して作業を進めてください。
- デバイスIDを正確に特定する
- アプリケーションディレクトリに移動してデータを確認する
- Realmファイルを検索・取得する
データ確認には Realm Studio を使用すると、データ構造が視覚的に確認できるのでおすすめです!