iOS で Realm を使ったアプリケーションを作った時には、Sandbox の中に作られることを確認できますが、
MacOS で アプリを作るとどこに保存されるか確認してみました
MacOS で アプリを作るとどこに保存されるか確認してみました
Sponsor Link
Document App では自明です
Document App であれば、間違いなくドキュメントの中に保存するでしょう。
問題は、単純なアプリ 例えば Single View App の時はどこに保存されるのでしょうか?
保存場所の確認方法
どこか Realm のオブジェクトを参照できる箇所にブレークポイントを設定して、以下の変数値を確認します。
コード
(lldb) po.realm?.configuration.fileURL
保存されていた場所
保存場所は、アプリケーションの Bundle ID に依存します。
“com.smalldesksoftware.RealmApp” という App Bundle ID で作ったアプリでは、
コード
file:///Users//Library/Containers/com.smalldesksoftware.RealmApp/Data/Library/Application%20Support/default.realm
../Library/Containers/<app bundle id>/Data は、各アプリケーション向けに用意された SANDBOX 環境に見えますので、MacOS でも iOS と同様の位置に保存されることを確認できました。
ちなみに、iOS 上では、以下のパスです。
file:///Users/<username>/Library/Developer/CoreSimulator/Device/<英数字列>/data/Containers/Data/Application/<英数字列>/Documents/default.realm
追加メモ
Realm を使っていると、default.realm 以外にもファイルが作られています。
以下のファイルです。排他アクセス等に使われていて、実行中以外は、削除等しても構いませんと説明されています。
- default.realm.lock
- default.realm.note
Realm から作られるままだと 見苦しい気がしたので、ドキュメントアプリの時には、Bundle を作って見えないようにしています。
# みんなどうしているのかは、謎です・・・
説明は以上です。
Sponsor Link