如何找到我的领域文件?

时间:2015-02-11 22:22:57

标签: realm

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

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

从谷歌小组发布的交叉

24 个答案:

答案 0 :(得分:435)

查找领域文件

对于Android

How to view my Realm file in the Realm Browser?

适用于iOS

如果您的应用程序在设备上

确保您的设备已连接并转到Xcode菜单中的设备窗口窗口>设备(⌘⇧2)。在那里,您可以从已安装的应用程序列表中选择具有调试权限的设备和应用程序。

选择应用后,转到表格视图底部工具栏中的cog,然后选择“下载容器...”。在那里,您可以将文件从文档位置拉到Mac。它将保存为xcappdata包。

当您在Finder中打开本地路径时,您可以在其中保存它,您可以在选择文件时通过在取景器的上下文菜单中选择“显示包内容”来点击它。将打开一个新的查找器窗口,您可以在以下路径中找到您的Realm(例如):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控制台:

<强>目标C
(lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL

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

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

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

然后只需复制此路径,打开终端,然后输入open [此处粘贴路径]

注意:有些路径中有空格,所以请务必在空格之前使用“\”来逃避它

帮助工具SimPholders

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

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

答案 1 :(得分:23)

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

在Finder中创建智能文件夹/搜索。提供对所有领域文件的快速轻松可点击访问。

  1. 在Finder中打开文件夹/Users/$USER/Library/Developer/CoreSimulator/Devices

    使用终端open /Users/$USER/Library/Developer/CoreSimulator/Devices

  2. 搜索.realm

  3. 更改搜索以仅查看"Devices"文件夹。

    1. 将搜索保存到侧边栏(例如,作为域名)
    2. 按日期排序时,这将为您提供最新修改的模拟器.realm文件的快速简便的可点击列表。

答案 2 :(得分:20)

这是一个简单的解决方案..我搞砸了一段时间。我应该指出,这是使用Android Studio和AVD Emulator的一组特定指令。

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

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

3)单击“设备监视器”中的“文件资源管理器”选项卡。应该有很多文件夹。

4)导航以下路径:数据&gt;数据&gt; 您的包裹名称&gt;文件&gt; Default.Realm(或任何你命名的)

实施例。如果您正在使用其中一个领域示例项目,那么路径将类似于数据&gt;数据&gt; io.realm.examples.realmgridview&gt;文件&gt; default.realm

5)突出显示文件,单击右上方区域中的软盘图标&#34;从设备中提取文件&#34;

6)将它保存到您想要和完成的任何地方。

答案 3 :(得分:17)

我做的是使用

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

然后在我的桌面上以完整视图创建它,我可以双击以启动Realm Browser。稍后,我可以删除参数,并在我满意所有内容都按预期工作时让它使用默认位置。

答案 4 :(得分:10)

Objective-C - [RLMRealmConfiguration defaultConfiguration].fileURL

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

EG-/用户/ “您的用户名”/库/开发商/ CoreSimulator /设备/ E58645FF-90DE-434D-B2EB-FA145EB6F2EA /数据/容器/数据/应用/ E427BD21-2CB1-4F64-9ADF- 8742FF731209 /文档/

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

您可以开源openSim,替代simpholders直接从菜单栏访问您应用的文档目录

答案 5 :(得分:9)

更新了最新领域的答案:

对于Android:

checkout 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()
感谢Stewart Lynch的原始答案

答案 6 :(得分:6)

以上答案错过了在Android平台中找到领域文件的方法,并且相信我这样可以节省您的时间,我们通常会浪费其他方法来获取领域文件。所以,让我们开始......

首先打开&#34;设备文件浏览器&#34;在android studio中(查看 - &gt;工具Windows - &GT;设备文件资源管理器。

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

enter image description here

现在打开数据 - &gt;数据 - &gt; (your_app_package_name) - &gt;文件 - &gt; default.realm

default.realm 是我们所在的文件。现在将此文件保存到您所在的位置并从realm_browser访问该文件,您将获得您的数据库。

注意:提及的方法是在非root手机上测试的(一个+3)。

答案 7 :(得分:5)

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

po Realm().configuration.fileURL

答案 8 :(得分:5)

如果您要输入加密密钥&#39;对话框错误:

我正在使用Swift 2.1和Realm 0.96.2并且在尝试打开数据库文件时遇到此错误:

  

&#39;默认&#39;不能打开。它可能是加密的,或者它不是a   兼容的文件格式。如果您知道文件已加密,则可以   手动输入加密密钥以打开它。

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

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

答案 9 :(得分:3)

仅适用于iOS模拟器上的应用

输入

console.log (Realm.defaultPath)
代码中的

例如:App.js

答案 10 :(得分:3)

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

要在Realm Browser中打开最近创建的Xcode Simulator Realm数据库,您可以在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中,单击New,选择Run Shell Script,粘贴代码,更改Realm Db名称,单击Run to test,将文件保存到方便快速点击访问的位置。

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

答案 11 :(得分:2)

我通过在终端发出此命令找到了我的领域文件: sudo find / -name "*.realm"

希望这有帮助!

答案 12 :(得分:2)

在Swift中

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

答案 13 :(得分:2)

我更进了一步。 我创建了一个名为 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()

因此,在开发模式下,我可以在桌面上找到我的领域数据库,并可以在Realm Browser中打开。

答案 14 :(得分:1)

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

答案 15 :(得分:1)

要获取iOS的数据库路径,最简单的方法是:

  1. 在模拟器中启动您的应用
  2. 随时在调试器中暂停
  3. 转到控制台(您有(lldb)的位置)并输入:po RLMRealm.defaultRealmPath
  4. Tada ...你有你的领域数据库的路径

答案 16 :(得分:1)

2020:iOS Real设备上的领域文件(不是模拟器)

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

  1. 窗口

  2. 设备和模拟器

  3. 选择设备

  4. 在底部找到标题(已安装的应用)

    注意:向下滚动或放大设备和模拟器弹出窗口,以查看已安装应用程序的列表。

  5. 选择您的应用。

  6. 点击齿轮按钮(位于应用列表的底部

  7. 下载容器

  8. 选择要保存的位置。

  9. 右键单击下载的文件

  10. 显示包装内容

  11. AppData

就这样,您可以根据自己的配置访问您的Realm文件。例如,如果您保存在“文档”或“库”文件夹中,只需打开它即可查看您的领域。

答案 17 :(得分:0)

Swift 2.3解决方案

更轻松的解决方案,不会破坏Realm更新

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

.realm文件应位于“Documents”

答案 18 :(得分:0)

对于那些使用React Native并使用默认领域的人:

Realm.defaultPath

答案 19 :(得分:0)

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

答案 20 :(得分:0)

在工具下 - &gt; Android设备监视器

在文件资源管理器下。搜索应用程序。该文件在数据/数据下。

答案 21 :(得分:0)

如前所述,您可以使用下一种方法来查找文件位置

//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 RealmStudio,则默认情况下不会将其打开

答案 22 :(得分:0)

如果您尝试从 真实 iOS 设备

中查找您的领域文件

Xcode 12

中为我工作

步骤 -

  1. 在 Xcode 中,转到 Window -> Devices and Simulators
  2. 从左侧列表中选择您的设备
  3. 在“已安装的应用”部分下选择您的应用名称
  4. 现在,突出显示您的应用名称并点击其下方的齿轮图标
  5. 从下拉列表中选择下载容器选项
  6. 选择要保存文件的位置
  7. 右键单击刚刚保存的文件,然后选择显示包内容
  8. 在 App Data 文件夹内导航到您保存文件的文件夹。

答案 23 :(得分:-1)