【发布时间】:2015-04-12 11:51:48
【问题描述】:
我已按领域创建了一个数据库,但我无法找到该文件,因为我的操作系统 (Yosemite) 在 /private/var/mobile 中没有移动文件夹。
我应该如何访问我的领域以在浏览器中运行?
来自 google 群组的交叉发布
【问题讨论】:
-
检查this。此方法适用于有根设备和无根设备。
标签: realm
我已按领域创建了一个数据库,但我无法找到该文件,因为我的操作系统 (Yosemite) 在 /private/var/mobile 中没有移动文件夹。
我应该如何访问我的领域以在浏览器中运行?
来自 google 群组的交叉发布
【问题讨论】:
标签: realm
How to view my Realm file in the Realm Browser?
确保您的设备已连接并转到 Xcode 菜单中的设备窗口 Window > Devices (⌘⇧2)。在那里,您将能够从具有调试权限的已安装应用程序列表中选择您的设备和应用程序。
选择您的应用后,转到表格视图底部工具栏中的齿轮,然后选择“下载容器...”。在那里,您将能够将文件从文档位置拉到您的 Mac。它将被保存为 xcappdata 包。
当您在 Finder 中打开保存它的本地路径时,您可以在选择文件时通过在 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
获取默认领域当前路径的最简单方法可能是暂停模拟器并在 LLDB 控制台中输入以下内容:
Objective-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 [Pasted path here]
注意:有些路径中有一个空格,所以一定要在空格前使用“\”来转义它
这可能是在模拟器中查找应用程序文件的最快方法。安装SimPholders。这将允许您直接从菜单栏访问应用的文档目录。
注意 有人提到 SimPholders 将他们带到了错误的模拟器应用程序文件夹,如果您是这种情况,请按照上述步骤打印您的领域路径,打印您的领域。路径
【讨论】:
po RLMRealm.defaultRealmPath()时出现错误。它说called object type 'NSString *' is not a function or function pointer
po [[RLMRealm defaultRealm]path]
Realm.Configuration.defaultConfiguration.fileURL
error: use of undeclared identifier 'Realm'
这是一个简单的解决方案.. 我搞砸了一段时间。我应该指出,这是一组使用 Android Studio 和 AVD 模拟器的特定指令。
1) 启动模拟器并运行您的应用程序。
2) 当应用程序仍在运行时,打开 Android 设备监视器。 (它在 AVD 和 SDK 管理器图标旁边的工具栏中)
3) 单击设备监视器中的文件资源管理器选项卡。应该有很多文件夹。
4) 导航以下路径:数据 > 数据 > 您的包名称 > 文件 > Default.Realm(或您命名的任何名称)
例如。如果您正在使用领域示例项目之一,则路径将类似于 Data>Data>io.realm.examples.realmgridview>files>default.realm
5) 突出显示文件,点击右上方“从设备中拉出文件”的软盘图标
6) 将其保存到您想要完成的任何地方。
【讨论】:
要获取 iOS 的 DB 路径,最简单的方法是:
(lldb))并输入:po RLMRealm.defaultRealmPath
Tada...你有你的领域数据库的路径
【讨论】:
【讨论】:
Realm.Configuration.defaultConfiguration.fileURL
Realm.Configuration.defaultConfiguration.fileURL!
我所做的是使用
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()
所以在开发模式下,我可以在桌面上找到我的领域数据库,并可以在领域浏览器中打开。
【讨论】:
如果您收到“输入加密密钥”对话框错误:
我正在使用带有 Realm 0.96.2 的 Swift 2.1,并且在尝试打开数据库文件时遇到此错误:
“默认”无法打开。它可能是加密的,也可能不在 兼容的文件格式。如果您知道文件已加密,则可以 手动输入其加密密钥以打开它。
发现使用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);
例如-/Users/"Your-user-name"/Library/Developer/CoreSimulator/Devices/E58645FF-90DE-434D-B2EB-FA145EB6F2EA/data/Containers/Data/Application/E427BD21-2CB1-4F64-9ADF- 8742FF731209/文件/
这是您可以运行以获取 .realm 文件路径的最简单命令。完成所有读写操作后,您将看到 .realm 文件。
或者
你可以开源openSim,替代simpholders,直接从你的菜单栏访问你应用的文档目录
【讨论】:
Xcode 7、Swift 2.2+ 的正确 lldb 命令是 po Realm.Configuration.defaultConfiguration.path!
【讨论】:
path而是fileURL:Realm.Configuration.defaultConfiguration.fileURL!
po Realm.Configuration.defaultConfiguration.fileURL?.path
结帐 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()
}
}
第 3 步:最后在您的视图控制器中:
let realm = realmAndPath()
感谢 Stewart Lynch 的原始答案
【讨论】:
realm.path 更改为 realm.configuration.fileURL!.absoluteString
Swift 2.3 解决方案
不会因 Realm 更新而中断的更简单的解决方案
let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
print("App Path: \(dirPaths)")
.realm 文件应该在“文档”中
【讨论】:
我通过在终端中发出以下命令找到了我的领域文件:
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
安装领域浏览器。 在 Automator 中,点击 New,选择 Run Shell Script,粘贴代码,更改 Realm Db 名称,点击 Run 进行测试,将文件保存在方便快速点击访问的地方。
我不知道我第一次在哪里找到这个提示,但这个帖子提醒了我过去是如何访问我的实时数据的。
【讨论】:
对于那些使用 React Native 并使用默认领域的人:
Realm.defaultPath
【讨论】:
componentDidMount() { console.log(Realm.defaultPath) } 在我的组件中使用 Realm 为我工作。之后检查 xcode 控制台的路径。
Realm.open(config) 之后,例如像这样console.log('* REALM PATH: ' + Realm.defaultPath);
在 Finder 中创建智能文件夹/搜索。提供对所有领域文件的快速、轻松的可点击访问。
在 Finder 中打开文件夹 /Users/$USER/Library/Developer/CoreSimulator/Devices。
带终端open /Users/$USER/Library/Developer/CoreSimulator/Devices
搜索.realm
将搜索更改为仅在 "Devices" 文件夹中查找。
当按日期排序时,这将为您提供最新修改的 Simulator .realm 文件的快速且简单的可点击列表。
【讨论】:
cd ~/Library/Developer/CoreSimulator/Devices && find . -name '*.realm'搜索
在斯威夫特中
func getFilePath() -> URL? {
let realm = try! Realm()
return realm.configuration.fileURL
}
【讨论】:
iOS 模拟器上只为您的应用提供
输入
console.log (Realm.defaultPath)
在代码中如:App.js
【讨论】:
以上答案缺少在 Android 平台中查找领域文件的方法,相信我这种方式会节省您的大量时间,我们通常会浪费在其他方法中获取领域文件。那么让我们开始吧……
首先在android studio中打开“设备文件资源管理器”(View -> Tools Windows -> 设备文件资源管理器。
这将打开您的设备资源管理器。
现在打开 data -> data -> (your_app_package_name) -> files -> default.realm
default.realm 是我们在这里的文件。现在将此文件另存为您的位置并从领域浏览器访问该文件,您将获得您的数据库。
注意:所提到的方法是在非 root 手机(one+3)上测试的。
【讨论】:
如果您在模拟器中使用默认的 Realm DB:
po Realm().configuration.fileURL
【讨论】:
2020:iOS 真实设备上的 Realm 文件(非模拟器)
从顶部的菜单栏开始,然后按照以下顺序:-
窗口
设备和模拟器
选择设备
在底部找到标题(安装的应用程序)
注意:向下滚动或放大“设备和模拟器”弹出窗口以查看已安装应用的列表。
选择您的应用。
点击齿轮按钮(它位于应用列表的底部)
下载容器
选择保存位置。
右键点击下载的文件
显示包内容
应用数据
就是这样,您可以根据您的配置访问您的领域文件。例如,如果您保存在 Documents 或 Library 文件夹中,只需打开它即可查看您的领域。
【讨论】:
如前所述,您可以使用下一个方法来查找文件位置
//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默认不会打开它
【讨论】:
如果您尝试从真实 iOS 设备
中查找您的领域文件在 Xcode 12
中为我工作步骤-
【讨论】:
android 和 ios 的所有步骤都可以在 Realm 官方网站上找到: https://support.realm.io/support/solutions/articles/36000064525-how-do-i-locate-realm-files-on-a-device-or-simulator-
【讨论】: