如何找到我的领域文件?

How to find my realm file?

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

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

发自 google 个群组

正在查找领域文件

对于Android

对于iOS

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

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

select安装您的应用程序后,转到 table 视图底部工具栏中的齿轮,然后 select “下载容器...”。在那里您可以将文件从文档位置拉到您的 Mac。它将保存为 xcappdata 包。

当您在 Finder 中打开保存它的本地路径时,您可以通过在上下文菜单中 selecting “显示包内容” 来进入该路径取景器,当你 select 文件时。一个新的查找器 window 将打开,您可以在以下路径中找到您的领域(例如): 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

Swift 使用领域 Objective-C:
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL

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

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

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

注意: 一些路径中有一个 space 所以一定要在 space 之前使用“\”来转义它

SimPholders 助手工具

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

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

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

1) 启动模拟器和 运行 您的应用。

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

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

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

例如。如果您使用的是领域示例项目之一,则路径类似于 Data>Data>io.realm.examples.realmgridview>files>default.realm

5) 选中文件,点击右上角的软盘图标"pull a file from the device"

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

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

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

Tada...你有你的领域数据库的路径

我找到了 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) 并粘贴 path 登录你的 Xcode

我做的是用

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

然后它在我的桌面上以完整视图创建,我可以双击以在其上启动 Realm Browser。稍后,当我确信一切都按预期工作时,我可以删除该参数并让它使用默认位置。

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

所以在开发模式下,我可以在桌面上找到我的领域数据库,并可以在领域浏览器中打开。

如果出现 'Enter Encryption Key' 对话框错误:

我在 Realm 0.96.2 中使用 Swift 2.1,在尝试打开数据库文件时出现此错误:

'default' could not be opened. It may be encrypted, or it isn't in a compatible file format. If you know the file is encrypted, you can manually enter its encryption key to open it.

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

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

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

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

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

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, alternative of simpholders 以直接从菜单栏访问应用程序的文档目录

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

最新领域的更新答案:

对于Android:

结帐听诊器和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

的 class
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 的原始回答

Swift 2.3 解决方案

不会因 Realm 更新而中断的更简单的解决方案

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

.realm 文件应该在 "Documents"

里面

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

希望对您有所帮助!

首先,我承认这是一个 Android 话题,但它通常是针对此问题的第一个搜索结果。

要在领域浏览器中打开最近创建的 Xcode 模拟器领域数据库,您可以在 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

安装领域浏览器。 在 Automator 中,单击新建,select 运行 Shell 脚本,粘贴代码,更改 Realm Db 名称,单击 运行 测试,将文件保存在便于快速单击访问的位置。

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

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

Realm.defaultPath

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

在 Finder 中创建智能 folder/search。提供对所有领域文件的快速、轻松的点击访问。

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

    有终端open /Users/$USER/Library/Developer/CoreSimulator/Devices

  2. 搜索 .realm

  3. 更改搜索以仅在 "Devices" 文件夹中查找。

  1. 将搜索保存到侧边栏(例如作为领域)

当按日期排序时,这将为您提供一个快速简单的可点击列表,其中包含最新修改的模拟器 .realm 文件。

在Swift

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

仅供您的应用在 iOS 模拟器

输入

console.log (Realm.defaultPath)

在代码中例如:App.js

以上答案缺少一种在 Android 平台中查找领域文件的方法,相信我,这种方式会节省您的大量时间,而我们通常会浪费在其他方法中获取领域文件。那么让我们开始吧...

首先在 android 工作室中打开 "Device File Explorer"(查看 -> 工具 Windows -> 设备文件资源管理器。

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

现在打开 数据 -> 数据 -> (your_app_package_name) -> 文件 -> default.realm

default.realm 是我们在这里的文件。现在 Save_as 此文件位于您的位置并从 realm_browser 访问该文件,您将获得您的数据库。

注意:提到的方法是在非根 phone(one+3) 上测试的。

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

po Realm().configuration.fileURL

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

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

  1. Window

  2. 设备和模拟器

  3. Select 设备

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

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

  5. Select 您的应用。

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

  7. 下载容器

  8. 选择保存位置。

  9. 右键单击下载的文件

  10. 显示包裹内容

  11. AppData

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

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

//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

工作

步骤 -

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

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