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

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

交叉张贴从谷歌组


当前回答

首先,我承认这是一个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名称,单击运行测试,将文件保存到方便快速点击访问的地方。

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

其他回答

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

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

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

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

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

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

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

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

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

po Realm().configuration.fileURL

正如前面提到的,您可以使用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默认不会打开它

最新领域的更新答案:

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

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

查找域文件

为安卓

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

为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