我已经通过领域创建了一个DB,我无法找到文件,因为我的操作系统(Yosemite)在/private/var/mobile中没有移动文件夹。

我应该如何访问我的领域以在浏览器中运行?

交叉张贴从谷歌组


查找域文件

为安卓

如何在领域浏览器中查看我的领域文件?

为iOS

如果你的应用在设备上

确保你的设备已经连接,然后在Xcode菜单中进入设备窗口window > devices(⌘2)。在那里,你可以从已安装的具有调试权限的应用程序列表中选择你的设备和应用程序。

选择你的应用程序后,转到表格视图底部工具栏的齿轮上,选择“下载容器…”。在那里,你可以将文件从文档位置拉到你的Mac上。它将被保存为xcappdata包。

当你在Finder中打开保存文件的本地路径时,当你选择文件时,你可以通过在Finder的上下文菜单中选择“显示包内容”来进入该路径。一个新的查找器窗口将打开,在下面的路径中(例如)你可以找到你的领域:AppData/Documents/default。目录'/private/var/mobile'是iOS在设备文件系统上使用的路径。

如果你的应用程序在模拟器上

进入您的用户目录:

/用户/ <用户名> /图书馆/开发/ CoreSimulator /设备/ < simulator-uuid > /数据/集装箱/数据/应用程序/ < application-uuid > /文件/ default.realm

获取默认域的当前路径最简单的方法可能是暂停模拟器,并在LLDB控制台输入以下内容:

Objective-C: (lldb) po [rlmrealm配置defaultcontion]

使用Realm Objective-C: (lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL

使用Realm Swift: (lldb) po Realm.Configuration.defaultConfiguration.fileURL

或者如果你手头有一个RLMRealm实例,你可以使用: (lldb) po myRealm.configuration.fileURL

然后复制这个路径,打开终端,输入open[粘贴路径]

注意:有些路径中有空格,所以一定要在空格前使用“\”来转义

辅助工具simholder

这可能是在模拟器中找到应用程序文件的最快方法。安装SimPholders。这将允许您直接从菜单栏访问应用程序的文档目录。

注意:有些人提到simholder已经将它们带到错误的模拟器应用程序文件夹,如果是这种情况,请按照上面的步骤打印出您的领域路径,打印出您的realm.path


这里有一个简单的解决办法。我搞砸了一段时间。我要指出的是,这是一组使用Android Studio和AVD模拟器的特定指令。

1)启动模拟器并运行应用程序。

2)当应用程序仍在运行时,打开Android设备监视器。(它在工具栏旁边的AVD和SDK管理器图标)

3)在“设备监控”中单击“文件资源管理器”页签。应该有很多文件夹。

4)进入如下路径:数据>数据>您的包名>文件>默认。王国(或者其他你命名的地方)

例如,如果你正在使用一个领域示例项目,路径将是类似于Data>Data>io.realm.examples.realmgridview>files>default.realm

5)选中文件,点击右上角的软盘图标“从设备中提取文件”

6)把它保存到任何你想要的地方。


要获得iOS的DB路径,最简单的方法是:

在模拟器中启动应用程序 在调试器中随时暂停它 转到控制台(您有(lldb))并键入:po RLMRealm.defaultRealmPath

恩……您拥有到域数据库的路径


我为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上的日志路径


我所做的就是利用

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

然后它就会在桌面上全屏显示出来,我可以双击打开Realm浏览器。稍后,当我满意一切都按预期工作时,我可以删除参数并让它使用默认位置。


我在这方面更进一步。 我已经创建了一个名为RealmFunctions的swift文件,并在其中创建了这个函数

    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()

因此,当处于开发模式时,我可以在桌面上找到我的领域数据库,并可以在领域浏览器中打开。


如果你得到“输入加密密钥”对话框错误:

我使用的是Swift 2.1和Realm 0.96.2,在试图打开数据库文件时出现了这个错误:

“default”无法打开。可能是加密的,也可能不是 兼容的文件格式。如果你知道文件是加密的,你就可以 手动输入加密密钥打开。

发现使用Realm Browser 0.96的预发布版本修复了这个问题:

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


正确的(lldb)命令是:Realm.Configuration.defaultConfiguration.path。


在工具下-> Android设备监视器

在文件资源管理器下面。搜索应用程序。文件在data/data下面。


目标- c - [rlmreal配置defaultcontion

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

小薇- \用户“Your-user-name / Library /开发商CoreSimulator - - E58645FF-90DE-434D-B2EB-FA145EB6F2EA Containers /数据带给您应用程序/ E427BD21-2CB1-4F64-9ADF-8742FF731209文档/

这是您可以运行的获取.realm文件路径的最简单命令。在完成所有的读写操作之后,您将看到.realm文件。

Or

你可以开源openSim, simholder的替代品,直接从菜单栏访问你的应用程序的文档目录


对于Xcode 7, Swift 2.2+正确的lldb命令是po Realm.Configuration.defaultConfiguration.path!


最新领域的更新答案:

为Android:

检查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)

or

步骤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()
    }
}

第三步:最后在你的视图控制器中:

let realm = realmAndPath()

感谢斯图尔特·林奇最初的回答


Swift 2.3解决方案

更简单的解决方案,不会打破与领域更新

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

realm文件应该在Documents中


我通过在终端中执行以下命令找到了我的域文件: Sudo find / -name "*.realm"。

希望这能有所帮助!


首先,我承认这是一个Android线程,但这是这个问题的第一个搜索结果。

要在Realm Browser中打开最近创建的Xcode Simulator Realm db,你可以在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浏览器。 在Automator中,单击新建,选择运行Shell脚本,粘贴代码,更改Realm Db名称,单击运行测试,将文件保存到方便快速点击访问的地方。

我不知道我第一次在哪里找到这个技巧,但这个帖子提醒了我过去是如何访问我的实时数据的。


对于那些使用React Native和使用默认域的用户:

Realm.defaultPath


一个简单的替代模拟器应用程序

在Finder中创建智能文件夹/搜索。提供快速和简单的点击访问所有的领域文件。

在Finder中打开文件夹/Users/$USER/Library/Developer/CoreSimulator/Devices。 终端打开/Users/$USER/Library/Developer/CoreSimulator/Devices 搜索。realm 将搜索改为只在“设备”文件夹中查找。

保存搜索到你的侧边栏(例如作为Realms)

当按日期排序时,这将为您提供一个快速和容易点击的最新修改模拟器.realm文件列表。


在斯威夫特

func getFilePath() -> URL? {
    let realm = try! Realm()
    return realm.configuration.fileURL
}

因为你的应用在iOS模拟器上

输入

console.log (Realm.defaultPath)

例如:App.js


上面的答案是在Android平台上找不到领域文件的方法,相信我,这种方法会节省你很多时间,而我们通常用其他方法来获取领域文件。让我们开始…

首先在android studio中打开“设备文件资源管理器”(查看-> Tools Windows) ->设备文件资源管理器。

这将打开您的设备资源管理器。

现在打开data -> data -> (your_app_package_name) -> files -> default.realm

违约。Realm是我们在这里的文件。现在Save_as这个文件在您的位置,并从realm_browser访问该文件,您将得到您的数据库。

注意:上述方法是在非root手机(1 +3)上测试的。


如果你在模拟器中使用默认的Realm DB:

po Realm().configuration.fileURL

2020: iOS真实设备上的Realm文件(不是模拟器)

从顶部的菜单栏开始,然后按照下面的顺序:-

窗口 设备和模拟器 选择设备 在底部找到标题(INSTALLED APPS) 注意:向下滚动或放大设备和模拟器弹出窗口,查看已安装的应用程序列表。 选择你的应用。 点击齿轮按钮(它位于应用程序列表的底部) 下载容器 选择保存位置。 右键单击下载的文件 显示包装内容 AppData

从那里你可以访问你的领域文件,这取决于你的配置。例如,如果您保存在文档或库文件夹中,只需打开它就可以看到您的领域。


正如前面提到的,您可以使用next方法来查找文件位置

//code
Realm.Configuration.defaultConfiguration.fileURL 

//lldb
(lldb) po Realm.Configuration.defaultConfiguration.fileURL

或者你可以手动找到它:

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

//for example
/Users/alex/Library/Developer/CoreSimulator/Devices/E1D084B0-CD97-41B4-871F-E131CA33F635/data/Containers/Data/Application/373721C7-2381-4E3D-9ABC-2147F748322F/Documents/

//iPhone (download a copy)
Xcode -> Window -> Devices and Simulators -> Devices -> <select device and app> -> App container actions -> Download Container... -> <selectfolder and navigate to it (.xcappdata)> -> Right Click -> Show Package Consents -> AppData -> Documents

*请注意,如果你为realm设置了文件名,并且它有一些其他扩展名而不是。realm, RealmStudio默认不会打开它


如果你试图从真正的iOS设备中找到你的域文件

在Xcode 12中为我工作过

步骤,

在Xcode中,打开Window -> Devices and Simulators 从左侧列表中选择您的设备 在已安装的应用程序部分中选择您的应用程序名称 现在,突出你的应用程序名称,并点击它下面的齿轮图标 从下拉菜单中选择下载容器选项 选择要保存文件的位置 右键单击刚刚保存的文件并选择Show Package Contents 在App Data文件夹中,导航到你保存文件的文件夹。


android和ios的所有步骤都可以在官方网站上找到: https://support.realm.io/support/solutions/articles/36000064525-how-do-i-locate-realm-files-on-a-device-or-simulator-


虽然这个问题本身是针对iOS系统的,但它的标题却很普通,所以我才来到这里。所以,我觉得有必要在这里分享一个Windows的解决方案。

在dotnet c#中,使用realm. config . databasepath查看域文件的位置。如果没有不同的设置,那么它是C:\Users\<username>\Documents\default。以及default.realm.management文件夹和default.realm.lock

要设置一个新路径,调整这段代码(文件夹必须存在,否则会出错)

var realm = Realm.GetInstance(new RealmConfiguration(optionalPath: "C:/myproject/myrealm/myproject.realm" ));