[Realm][MacOS] デフォルトの保存場所

     

TAGS:

⌛️ < 1 min.

iOS で Realm を使ったアプリケーションを作った時には、Sandbox の中に作られることを確認できますが、
MacOS で アプリを作るとどこに保存されるか確認してみました

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 を作って見えないようにしています。

# みんなどうしているのかは、謎です・・・

説明は以上です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です