Я создал БД по областям, и я не могу найти файл, так как в моей ОС (Yosemite) нет мобильной папки в / private / var / mobile.
Как мне получить доступ к своему царству для запуска в браузере?
Крест опубликован из групп Google
Я создал БД по областям, и я не могу найти файл, так как в моей ОС (Yosemite) нет мобильной папки в / private / var / mobile.
Как мне получить доступ к своему царству для запуска в браузере?
Крест опубликован из групп Google
Ответы:
Как просмотреть мой файл Realm в браузере Realm?
Убедитесь, что ваше устройство подключено и перейдите в окно устройств в меню Xcode Window> Devices (⌘⇧2). Там вы сможете выбрать свое устройство и приложение из списка установленных приложений с разрешениями на отладку.
После выбора приложения перейдите к шестерне на панели инструментов в нижней части табличного представления и выберите «Загрузить контейнер…» . Там вы сможете вытащить файл из папки с документами на ваш Mac. Он будет сохранен как пакет xcappdata.
Когда вы открываете локальный путь в Finder, где вы его сохранили, вы можете нажать на него, выбрав «Показать содержимое пакета» в контекстном меню искателя при выборе файла. Откроется новое окно поиска, где вы найдете свою область внутри по следующему пути (например): 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
Свифт с использованием Цели 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]
ПРИМЕЧАНИЕ. В некоторых путях есть пробел, поэтому обязательно используйте "\" перед пробелом, чтобы избежать его.
Вероятно, это самый быстрый способ найти файл приложения в симуляторе. Установите SimPholder . Это позволит вам получить доступ к каталогу документов вашего приложения прямо из строки меню.
Примечание. Некоторые люди упоминали, что SimPholder перенес их в неправильную папку приложения симулятора. Если это так, распечатайте путь к своей области, выполнив шаги, описанные выше, распечатав ваш realm.path.
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'
Я нашел самый простой способ для iOS / MacOS (для Swift 3 Xcode 8.3)
override func viewDidLoad() {
// for swift 2.0 Xcode 7
print(Realm.Configuration.defaultConfiguration.fileURL!)
}
Затем код X будет записывать правильный путь, проверьте экран ниже.
Теперь откройте ваш Finder и нажмите ⌘+ ⇧+ G(команда + Shift + G) и вставьте путь, который входит в ваш Xcode
Realm.Configuration.defaultConfiguration.fileURL
вместо этого
Realm.Configuration.defaultConfiguration.fileURL!
Создать умную папку / поиск в Finder. Дает быстрый и легкий доступ ко всем файлам области.
Откройте папку /Users/$USER/Library/Developer/CoreSimulator/Devices
в Finder.
С терминалом open /Users/$USER/Library/Developer/CoreSimulator/Devices
Ищи .realm
Измените поиск, чтобы посмотреть только в "Devices"
папке.
При сортировке по дате это даст вам быстрый и легкий кликабельный список последних измененных .realm
файлов симулятора .
Вот простое решение .. Я на некоторое время облажался с этим. Следует отметить, что это особый набор инструкций с использованием Android Studio и эмулятора AVD.
1) Запустите эмулятор и запустите ваше приложение.
2) Пока приложение еще работает, откройте Android Device Monitor. (находится на панели инструментов рядом с иконками менеджера AVD и SDK)
3) Перейдите на вкладку «Проводник» в мониторе устройств. Там должно быть много папок.
4) Перейдите по следующему пути: Данные> Данные> Имя вашего пакета > Файлы> Default.Realm (или как вы его назвали)
Ex. Если вы используете один из примеров проектов области, путь будет выглядеть примерно так: «Данные»> «Данные»> «io.realm.examples.realmgridview> файлы> default.realm».
5) Выделите файл, щелкните значок дискеты в правом верхнем углу «вытащить файл с устройства»
6) Сохраните его там, где вы хотите и сделали.
Что я сделал, так это использовал
let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")
и затем он создается в полном виде на моем рабочем столе, и я могу дважды щелкнуть, чтобы запустить браузер Realm на нем. Позже я могу удалить параметр и позволить ему использовать местоположение по умолчанию, когда я убедился, что все работает как положено.
Objective-C - [RLMRealmConfiguration defaultConfiguration].fileURL
NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);
Eg-/ Users / "имя Вашего пользователя" / Library / Developer / CoreSimulator / Devices / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / данные / Контейнеры / Data / Application / E427BD21-2CB1-4F64-9ADF-8742FF731209 / Документы /
Это самая простая команда, которую вы можете запустить, чтобы получить путь к файлу .realm. Вы увидите файл .realm после завершения всех операций чтения и записи.
Или
Вы можете открыть openSim с открытым исходным кодом , альтернативу упрощенным для доступа к каталогу документов вашего приложения прямо из строки меню.
В приведенных выше ответах отсутствует способ найти файл области на платформе Android, и, поверьте мне, этот способ сэкономит ваше время, которое мы обычно тратим на другие подходы, чтобы получить файл области. Итак, начнем...
Сначала откройте «Device File Explorer» в Android Studio («Просмотр» -> «Инструменты Windows» -> «Device File Explorer»).
Откроется проводник вашего устройства.
Теперь откройте данные -> data -> (your_app_package_name) -> files -> default.realm
default.realm - это файл, для которого мы здесь. Теперь сохраните этот файл в своем местоположении и получите доступ к файлу из realm_browser, и вы получите свою базу данных.
ПРИМЕЧАНИЕ. Упомянутый подход проверен на телефоне без рута (один + 3).
Если вы используете Realm DB по умолчанию в симуляторе:
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()
}
}
Шаг 3: наконец, в вашем представлении контроллер:
let realm = realmAndPath()
спасибо Стюарту Линчу за оригинальный ответ
realm.path
наrealm.configuration.fileURL!.absoluteString
Если вы получаете сообщение об ошибке «Введите ключ шифрования»:
Я использую Swift 2.1 с Realm 0.96.2 и получаю эту ошибку при попытке открыть файл базы данных:
«по умолчанию» не может быть открыт. Это может быть зашифровано, или это не в совместимом формате файла. Если вы знаете, что файл зашифрован, вы можете вручную ввести его ключ шифрования, чтобы открыть его.
Обнаружено, что при использовании предварительной версии Realm Browser 0.96 исправлена проблема:
https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease
Во-первых, я признаю, что это тема для Android, но это первый результат поиска по данной проблеме в целом.
Чтобы открыть последнюю созданную базу данных Xcode Simulator Realm в браузере 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 нажмите «Создать», выберите «Выполнить сценарий оболочки», вставьте код, измените имя базы данных Realm, нажмите «Выполнить» для проверки, сохраните файл в удобном для быстрого доступа месте.
Я не знаю, где я нашел этот совет в первый раз, но эта ветка напомнила мне, как я обращался к своим живым данным в прошлом.
Просто для вашего приложения на iOS симуляторе
Войти
console.log (Realm.defaultPath)
в коде, например: App.js
Я сделал еще один шаг вперед. Я создал быстрый файл под названием RealmFunctions и в нем я создал эту функцию
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()
Поэтому, находясь в режиме разработки, я могу найти свою базу данных областей на рабочем столе и открыть в браузере областей.
В Свифте
func getFilePath() -> URL? {
let realm = try! Realm()
return realm.configuration.fileURL
}
Чтобы получить путь к БД для iOS, самый простой способ:
(lldb)
) и введите:po RLMRealm.defaultRealmPath
Тада ... у вас есть путь к вашей базе данных области
Команда правильно (lldb) является: Realm.Configuration.defaultConfiguration.path
.
Для тех, кто использует React Native и использует область по умолчанию:
Realm.defaultPath
componentDidMount() { console.log(Realm.defaultPath) }
в моем компоненте использование Realm работало для меня. Проверьте консоль XCode для пути позже.
Правильная команда lldb для Xcode 7, Swift 2.2+ po Realm.Configuration.defaultConfiguration.path!
path
но fileURL
: Realm.Configuration.defaultConfiguration.fileURL!
po Realm.Configuration.defaultConfiguration.fileURL?.path