我使用 Realm 创建了一个数据库,但是由于我的操作系统(Yosemite)中在 /private/var/mobile 目录下找不到 mobile 文件夹,导致我无法找到该文件。
我应该如何访问我的 Realm 以在浏览器中运行?
此帖已在 Google 论坛中发布
我使用 Realm 创建了一个数据库,但是由于我的操作系统(Yosemite)中在 /private/var/mobile 目录下找不到 mobile 文件夹,导致我无法找到该文件。
我应该如何访问我的 Realm 以在浏览器中运行?
此帖已在 Google 论坛中发布
确保您的设备已连接,然后转到Xcode菜单窗口 > 设备 (⌘⇧2)。 在那里,您将能够从已安装有调试权限的应用程序列表中选择您的设备和应用程序。
选择应用程序后,转到表视图底部的工具栏中的齿轮,并选择“下载容器…”。 在那里,您将能够从文档位置拉取文件到Mac。 它将保存为xcappdata捆绑包。
当您在Finder中打开保存它的本地路径时,如果选择文件,则可以通过在查找器的上下文菜单中选择“显示包内容”来进入其中。 选择该文件时,将打开一个新的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
可能获得默认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
(lldb) po Realm.Configuration.defaultConfiguration.fileURL
可以查看Realm数据库文件的路径。如果你手头有一个RLMRealm
实例,可以使用(lldb) po myRealm.configuration.fileURL
来查看路径。然后复制此路径,打开终端并键入open
[粘贴路径]即可打开文件。po RLMRealm.defaultRealmPath()
时会出现错误。它会显示 called object type 'NSString *' is not a function or function pointer
。 - carbonrpo [[RLMRealm defaultRealm]path]
。 - AlexHsiehRealm.Configuration.defaultConfiguration.fileURL
- nodebaseerror: use of undeclared identifier 'Realm'
。 - Simon BengtssonRealm.Configuration.defaultConfiguration.fileURL
代替。 - hewigovensRealm.Configuration.defaultConfiguration.fileURL!
一起使用。请注意,本翻译不包含解释或其他内容。 - xmhafiz在Finder中创建智能文件夹或者搜索功能,以便快速、方便地访问所有领域(realm)文件。
在Finder中打开文件夹/Users/$USER/Library/Developer/CoreSimulator/Devices
。
使用终端命令:open /Users/$USER/Library/Developer/CoreSimulator/Devices
搜索.realm
文件。
修改搜索设置,只在“Devices”文件夹内进行搜索。
按日期排序后,您可以快速、轻松地访问最新修改过的模拟器.realm
文件的可点击列表。
cd ~/Library/Developer/CoreSimulator/Devices && find . -name '*.realm'
来搜索 Realm。 - a2f0这里有一个简单的解决方案... 我纠缠了一段时间。我应该指出,这是使用Android Studio和AVD模拟器的特定指令集。
1)启动模拟器并运行您的应用程序。
2)在应用程序仍在运行时,打开Android设备监视器。(它在AVD和SDK管理器图标旁边的工具栏中)
3)在设备监视器中单击文件浏览器选项卡。应该有很多文件夹。
4)导航到以下路径:Data>Data>您的软件包名称> files > Default.Realm(或者你命名的其他文件)
例如,如果您正在使用realm示例项目之一,则路径类似于Data>Data>io.realm.examples.realmgridview>files>default.realm
5)高亮显示该文件,单击上部区域的“从设备中提取文件”的磁盘图标。
6)将其保存到任何想要的地方即可完成。
我所做的是使用
let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")
然后它会完整地出现在我的桌面上,我可以双击启动Realm浏览器。稍后,当我确认一切按预期工作时,我可以删除该参数并让其使用默认位置。
现在打开数据 -> 数据 -> (你的应用程序包名称) -> 文件 -> default.realm
default.realm 是我们在这里的文件。现在将此文件另存为您的位置,并从 realm_browser 访问该文件,您将获得您的数据库。
注意:该方法已经在非root手机(one+3)上测试过。
Objective-C - [RLMRealmConfiguration defaultConfiguration].fileURL
NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);
例如:/Users/"你的用户名"/Library/Developer/CoreSimulator/Devices/E58645FF-90DE-434D-B2EB-FA145EB6F2EA/data/Containers/Data/Application/E427BD21-2CB1-4F64-9ADF-8742FF731209/Documents/
这是获取.realm文件路径的最简单的命令。在所有读写操作完成后,您将看到.realm文件。
或者
您可以使用开源工具OpenSim,它是Simpholders的替代品,可以直接从菜单栏访问您的应用程序文档目录。
如果您在模拟器中使用默认的 Realm 数据库:
po Realm().configuration.fileURL
请检查stetho和https://github.com/uPhyca/stetho-realm 这里有视频教程:https://www.youtube.com/watch?v=9pFJz5VexRw
要么:
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()
}
}
第三步: 最后在您的视图控制器中:
let realm = realmAndPath()
realm.path
更改为realm.configuration.fileURL!.absoluteString
。 - Andrewhttps://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease