レルムファイルを見つける方法


238

私はレルムによってDBを作成しましたが、私のOS(Yosemite)が/ private / var / mobileにモバイルフォルダーを持っていないため、ファイルを見つけることができません。

ブラウザで実行するには、レルムにどのようにアクセスする必要がありますか?

Googleグループからクロス投稿


これをチェックてください。この方法は、ルート化されたデバイスとルート化されていないデバイスの両方で機能します。
krhitesh

回答:


474

レルムファイルの検索

アンドロイド用

レルムブラウザでレルムファイルを表示する方法

iOSの場合

アプリがデバイス上にある場合

デバイスが接続されていることを確認し、Xcodeメニューの[ ウィンドウ ] > [デバイス ]でデバイスウィンドウに移動します(⌘⇧2)。そこで、デバッグ権限を持つインストール済みアプリのリストからデバイスとアプリを選択できます。

アプリを選択したら、テーブルビューの下部にあるツールバーの歯車に移動し、[ コンテナをダウンロード…]を選択します。そこで、ドキュメントの場所からMacにファイルをプルすることができます。xcappdataバンドルとして保存されます。

保存したFinderでローカルパスを開くと、ファイルを選択したときに、Finder のコンテキストメニューで[ パッケージの内容を表示 ]を選択することで、そのパスを利用できます。新しいファインダーウィンドウが開き、次のパス(例:AppData / Documents / default.realm(ディレクトリ '/ private / var / mobile'がiOSで使用されるパス)デバイスファイルシステム。

アプリがシミュレータ上にある場合

ユーザーのディレクトリに移動します。

/Users/<username>/Library/Developer/CoreSimulator/Devices/<simulator-uuid>/data/Containers/Data/Application/<application-uuid>/Documents/default.realm

おそらく、デフォルトのレルムの現在のパスを取得する最も簡単な方法は、シミュレーターを一時停止し、以下をLLDBコンソールに入力することです。

Objective-C
(lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL

Realm Objective-Cを使用したSwift
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL

Realm Swiftを使用したSwift
(lldb) po Realm.Configuration.defaultConfiguration.fileURL

またはRLMRealm、手元にインスタンスがある場合は、以下を使用できます。
(lldb) po myRealm.configuration.fileURL

次に、このパスをコピーしてターミナルを開き、[ここに貼り付けたパス]と入力しますopen

注:一部のパスにはスペースが含まれているため、スペースの前に「\」を使用してエスケープしてください

ヘルパーツールSimPholders

これはおそらく、シミュレーターでアプリのファイルを見つける最も速い方法です。SimPholdersをインストールします。これにより、メニューバーからアプリのドキュメントディレクトリに直接アクセスできます。

一部の人々は、SimPholdersがそれらを間違ったシミュレーターアプリフォルダーに移動したと述べました。その場合は、上記の手順に従ってレルムパスを出力し、realm.pathを出力してください。


1
最新の更新後、uを実行するとエラーが発生しますpo RLMRealm.defaultRealmPath()。それは言うcalled object type 'NSString *' is not a function or function pointer
カーボン

@carbonrと同じ問題があります。誰か助けてもらえますか?
denislexic 2015年

2
0.97を超えるObjective-Cバージョンの使用po [[RLMRealm defaultRealm]path]
AlexHsieh

5
この回答の一部は現在古くなっています。ここでRealmSwiftを使用して、レルムデータベースファイル(default.realm)を見つけるための最も最近の方法は次のとおりです。Realm.Configuration.defaultConfiguration.fileURL
nodebase

1
RealmSwiftメソッドを使用すると、次の結果が得られます。– error: use of undeclared identifier 'Realm'
Simon Bengtsson

122

私はiOS / macOSの最も簡単な方法を見つけました(Swift 3 Xcode 8.3用)

override func viewDidLoad() {

   // for swift 2.0 Xcode 7
   print(Realm.Configuration.defaultConfiguration.fileURL!)
}

次に、xコードが正しいパスをログに記録します。以下の画面を確認してください。

ここに画像の説明を入力してください

Finderを開いて+ + G(command + shift + G)を押し、Xcodeにログオンするパスを貼り付けます


10
パスは非推奨です。Realm.Configuration.defaultConfiguration.fileURL代わりに使用
hewigovens

2
そのRealm.configuration.fileURLに変更されて
Reshad

3
swift 3、xcode8.3も動作しますRealm.Configuration.defaultConfiguration.fileURL!
xmhafiz

同じプロセスを実行しましたが、
Finder

1
これはシミュレーターに最適です。ファイルを見つけたら、cmd-クリックして「開く」ボタンをクリックするだけでRealm Studioを起動できます。これは疑問や考えを引き起こします:Realm Studioには「最近開いた」ファイルメニューオプションが必要です!
描きました。

39

シミュレータアプリの1つの簡単な代替手段

Finderでスマートフォルダ/検索を作成します。すべてのレルムファイルにすばやく簡単にクリックできるアクセスを提供します。

  1. /Users/$USER/Library/Developer/CoreSimulator/DevicesFinderでフォルダを開きます。

    端子付き open /Users/$USER/Library/Developer/CoreSimulator/Devices

  2. 検索する .realm

  3. "Devices"フォルダーのみを検索するように検索を変更します。

  1. 検索をサイドバーに保存します(レルムなど)。

日付順に並べ替えると、最新の変更されたシミュレータ.realmファイルのリストがすばやく簡単にクリックできるようになります。


@Archdoogに感謝します。Realmを使用して多くの新しいプロジェクトを実行しているときは、悪い考えではありません
アレン

4
検索として保存するのは天才です!ありがとうございました!:)
karlingen

22

これが簡単な解決策です。しばらくの間、私はこれをいじりました。指摘しておきますが、これはAndroid StudioとAVDエミュレータを使用する特定の手順です。

1)エミュレータを起動してアプリを実行します。

2)アプリの実行中にAndroidデバイスモニターを開きます。(AVDおよびSDKマネージャーのアイコンの横にあるツールバーにあります)

3)デバイスモニターの[ファイルエクスプローラー]タブをクリックします。フォルダがたくさんあるはずです。

4)次のパスに移動します:データ>データ> パッケージ名 >ファイル> Default.Realm(または名前を付けたもの)

例 レルムのサンプルプロジェクトの1つを使用している場合、パスはData> Data> io.realm.examples.realmgridview> files> default.realmのようになります。

5)ファイルを強調表示し、右上の「デバイスからファイルをプルする」領域のフロッピーディスクアイコンをクリックします。

6)好きな場所に保存してください。


18

私がしたことは使用することでした

let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")

デスクトップにフルビューで作成され、ダブルクリックしてRealm Browserを起動できます。後で、パラメーターを削除し、すべてが期待どおりに機能していることを確認したら、デフォルトの場所を使用することができます。


1
「引数ラベル '(path :)'は使用可能なオーバーロードと一致しません」というエラーが表示されます。なぜだと思いますか?
Marcelo Gracietti、2016

それはまさにハハ!
WilomGfx 2017年

シミュレータでのテストには最適ですが、実際のデバイスでは正しく動作しない可能性があります。
不具合

レルムを試してみてください!レルム(fileURL:URL(文字列:! "/Users/[me]/Desktop/TestRealm.realm"))
ハリス

11

Objective-C- [RLMRealmConfiguration defaultConfiguration].fileURL

NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);

Eg- / Users / "Your-user-name" / Library / Developer / CoreSimulator / Devices / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / data / Containers / Data / Application / E427BD21-2CB1-4F64-9ADF-8742FF731209 / Documents /

これは、.realmファイルへのパスを取得するために実行できる最も簡単なコマンドです。すべての読み取りおよび書き込み操作が完了すると、.realmファイルが表示されます。

または

メニューバーから直接アプリのドキュメントディレクトリにアクセスするためのシンプホルダーの代わりに、オープンソースのopenSimを開くことができます。


11

上記の答えは、Androidプラットフォームでレルムファイルを見つける方法が欠けているため、この方法で多くの時間を節約でき、レルムファイルを取得する他のアプローチでは通常無駄になる時間を節約できると私は信じています。それでは始めましょう...

最初にandroid studioで「デバイスファイルエクスプローラー」を開きます(表示->ツールウィンドウ->デバイスファイルエクスプローラー。

これにより、デバイスエクスプローラが開きます。

ここに画像の説明を入力してください

データを開く->データ->(your_app_package_name)->ファイル-> default.realm

default.realmは、ここにあるファイルです。次に、このファイルを場所にSave_asして、realm_browserからファイルにアクセスすると、データベースが取得されます。

注:言及されているアプローチは、根ざしていない電話(one + 3)でテストされています。


10

シミュレーターでデフォルトのRealm DBを使用している場合:

po Realm().configuration.fileURL

詳細を追加できますか?
zeeshan

@zeeshanは実行中にシミュレータを一時停止し、コマンドを入力してEnterキーを押してください。
superarts.org

9

最新のレルムに対する回答の更新:

アンドロイド用:

チェックアウトstethoおよびhttps://github.com/uPhyca/stetho-realm ビデオチュートリアルはこちら:https : //www.youtube.com/watch?v=9pFJz5VexRw

IOS(Swift)の場合

どちらか:

debugPrint("Path to realm file: " + realm.configuration.fileURL!.absoluteString)

または

ステップ1: devという定数をどこかに持っている。定数ファイルとしましょう

public class Constants {

    public static var dev: Bool = true

}

ステップ2: RealmFunctions.swiftと呼ばれる別のクラスを作成する

import RealmSwift


func realmAndPath() -> Realm {
    if Constants.dev {
        // location of my desktop
        let testRealmURL = NSURL(fileURLWithPath: "/Users/#####/Desktop/TestRealm.realm")
        return try! Realm(fileURL: testRealmURL)
    } else {
        return try! Realm()
    }
}

ステップ3:最後にビューコントローラーで:

let realm = realmAndPath()

元の答えのスチュワートリンチに感謝


Swift 3の場合、次のように変更realm.pathする必要がありますrealm.configuration.fileURL!.absoluteString
Andy

5

[暗号化キーの入力]ダイアログボックスのエラーが発生する場合:

レルム0.96.2でSwift 2.1を使用していて、データベースファイルを開こうとするとこのエラーが発生しました。

「デフォルト」を開けませんでした。暗号化されているか、互換性のあるファイル形式ではありません。ファイルが暗号化されていることがわかっている場合は、暗号化キーを手動で入力してファイルを開くことができます。

Realm Browser 0.96のプレリリースバージョンを使用すると問題が解決することがわかりました。

https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease


3

まず、これがAndroidスレッドであることを認めますが、これは一般的にこの問題の最初の検索結果です。

最近作成されたXcode Simulator Realm dbをRealm Browserで開くには、Automatorでこのスクリプトを使用するか、ターミナルですべて入力します。Automatorを使用すると、現在のレルムにワンクリックでアクセスできます。

    cd ~/Library/Developer/CoreSimulator/Devices/
    cd `ls -t | head -n 1`/data/Containers/Data/Application
    cd `ls -t | head -n 1`/Documents    
    open -a 'Realm Browser' ./default.realm

Realm Browserをインストールします。Automatorで、[新規]をクリックし、[シェルスクリプトの実行]を選択して、コードを貼り付け、レルムデータベース名を変更し、[実行]をクリックしてテストし、クイッククリックでアクセスできる場所にファイルを保存します。

初めてこのヒントを見つけた場所はわかりませんが、このスレッドは、過去のライブデータへのアクセス方法を思い出させてくれました。


3

あなたのアプリだけがiOSシミュレータ上にあります

入る

console.log (Realm.defaultPath)

コードの例:App.js


2

これをさらに一歩進めました。RealmFunctionsという迅速なファイルを作成し、その中にこの関数を作成しました

    import RealmSwift
    func realmAndPath() -> Realm {
        if dev {
            // location of my desktop
            return try! Realm(path: "/Users/slynch/Desktop/TestRealm.realm")
        } else {
            return try! Realm()
        }
    }

私のメインビューコントローラーには、devというグローバルブール変数があります。

var dev: Bool = true // when in development mode
var dev: Bool = false // when I want to run on my device or upload to app stor.

今、私のコードでしなければならないすべては

let realm = realmAndPath()

開発モードでは、自分のレルムデータベースをデスクトップで見つけて、レルムブラウザで開くことができます。


1
エラー:(
13、21

2

ターミナルで次のコマンドを発行して、レルムファイルを見つけました sudo find / -name "*.realm"

お役に立てれば!



1

iOSのDBパスを取得するには、最も簡単な方法は次のとおりです。

  1. シミュレーターでアプリを起動する
  2. デバッガーでいつでも一時停止
  3. コンソール(がある場所(lldb))に移動して、次のように入力します。po RLMRealm.defaultRealmPath

多田...あなたはあなたのレルムデータベースへのパスを持っています



1

React Nativeを使用し、デフォルトのレルムを使用する場合:

Realm.defaultPath


これが見つかりません!
Ali Hesa​​ri

@Natividadこのコードをどこに置くか?レルムファイルを取得するための提案はありますか?
Bikram Thapa

@AliHesari sthは見つかりましたか?
Bikram Thapa

componentDidMount() { console.log(Realm.defaultPath) }私のコンポーネントでRealmを使用するとうまくいきました。その後、xcodeコンソールでパスを確認します。
Paul Schorey

0

ツール-> Androidデバイスモニター

そして、ファイルエクスプローラー。アプリを検索します。そして、ファイルはdata / dataの下にあります。


0

Xcode 7、Swift 2.2以降の正しいlldbコマンドは po Realm.Configuration.defaultConfiguration.path!


1
メンバーは呼び出されませんがpathfileURLRealm.Configuration.defaultConfiguration.fileURL!
nburk

1
あなたは正しい...これはrealm1.0で変更されました...私がこれに答えたときにバージョン0.98を使用していました...正しい答えは po Realm.Configuration.defaultConfiguration.fileURL?.path
Marquis103

0

Swift 2.3ソリューション

レルムの更新で壊れない簡単なソリューション

    let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    print("App Path: \(dirPaths)")

.realmファイルは「ドキュメント」内にある必要があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.