Я створив БД за царством, і я не в змозі знайти файл, оскільки моя ОС (Yosemite) не має мобільної папки в / private / var / mobile.
Як я маю отримати доступ до своєї сфери роботи для роботи в браузері?
Крос, розміщений у групах Google
Я створив БД за царством, і я не в змозі знайти файл, оскільки моя ОС (Yosemite) не має мобільної папки в / private / var / mobile.
Як я маю отримати доступ до своєї сфери роботи для роботи в браузері?
Крос, розміщений у групах Google
Відповіді:
Як переглянути мій файл Realm у браузері Realm?
Переконайтесь, що ваш пристрій підключено та перейдіть до вікна пристроїв у вікні меню «Xcode» > Пристрої (⌘⇧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
Швидкий за допомогою Realm Objective-C :
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL
Швидкий за допомогою Realm Swift :
(lldb) po Realm.Configuration.defaultConfiguration.fileURL
Або якщо у вас є RLMRealm
примірник, ви можете використовувати:
(lldb) po myRealm.configuration.fileURL
Потім просто скопіюйте цей шлях, відкрийте свій термінал і введіть open
[Вставлений шлях сюди]
ПРИМІТКА. У деяких шляхах є пробіл, тому обов'язково використовуйте "\" перед пробілом, щоб уникнути цього
Це, мабуть, найшвидший спосіб знайти файл програми в тренажері. Встановити SimPholders . Це дозволить вам отримати доступ до каталогу документів програми безпосередньо з панелі меню.
Примітка. Деякі люди згадували, що SimPholders переніс їх у неправильну папку додатків симулятора, якщо це так для вас, роздрукуйте шлях свого царства, виконуючи описані вище дії, роздрукувавши ваш 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
файлів Simulator .
Ось просте рішення .. Я заплутався з цим на деякий час. Варто зазначити, що це специфічний набір інструкцій із використанням Android Studio та AVD Emulator.
1) Запустіть емулятор і запустіть додаток.
2) Поки програма все ще працює, відкрийте Монітор пристроїв Android. (його на панелі інструментів поруч із піктограмами менеджера AVD та SDK)
3) Перейдіть на вкладку Провідник файлів у Моніторі пристроїв. Папок повинно бути багато.
4) Перейдіть по наступному шляху: Дані> Дані> Ім'я пакета > Файли> За замовчуванням
Вих. Якщо ви використовуєте один із прикладних проектів realm, шлях буде таким, як Data> Data> io.realm.examples.realmgridview> files> default.realm
5) Виділіть файл, натисніть на значок дискети у верхньому правому куті "витягніть файл із пристрою"
6) Збережіть його там, де хочете і зробите.
Те, що я зробив, було використовувати
let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")
а потім він створюється в повному обсязі на моєму робочому столі, і я можу двічі клацнути, щоб запустити браузер Realm на ньому. Пізніше я можу видалити параметр і дозволити йому використовувати розташування за замовчуванням, коли я впевнений, що все працює так, як очікувалося.
Завдання-С - [RLMRealmConfiguration defaultConfiguration].fileURL
NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);
Напр. / Користувачі / "Ваше ім'я користувача" / Бібліотека / Розробник / CoreSimulator / Пристрої / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / дані / Контейнери / Дані / Застосування / E427BD21-2CB1-4F64-9ADF-8742FF731209 / Документи /
Це найпростіша команда, яку можна запустити, щоб отримати шлях до файлу .realm. Ви побачите файл .realm після завершення всіх операцій читання та запису.
Або
Ви можете відкрити вихідний код openSim , замість утримувачів спрощень, щоб отримати доступ до каталогу документів програми безпосередньо з панелі меню
У наведених вище відповідях відсутній спосіб знайти файл царства в платформі Android, і повірте, цей спосіб заощадить ваші багато часу, які ми, як правило, витрачаємо на інші підходи, щоб отримати файл царства. Тож почнемо ...
Спочатку відкрийте «Провідник файлів пристроїв» в студії Android (Перегляд -> Інструменти Windows -> Провідник файлів пристроїв.
Це відкриє провідник пристроїв.
тепер відкрийте дані -> дані -> (ваше_app_package_name) -> файли -> default.realm
default.realm - це файл, для якого ми тут. Тепер збережіть цей файл у своєму місці та отримайте доступ до файлу від realm_browser, і ви отримаєте свою базу даних.
ПРИМІТКА. Згаданий підхід тестується на телефоні, що не входить до коріння (один + 3).
Якщо ви використовуєте БД 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: Побудь-де де-не-де називаємо константу. Скажімо, постійний файл
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 0.96 виправлена проблема:
https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease
По-перше, я визнаю, що це Android-нитка, але це перший результат пошуку цієї проблеми загалом.
Щоб відкрити останній створений Xcode Simulator Realm db в Realm Browser, ви можете використовувати цей скрипт в 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. В Автоматизаторі натисніть кнопку Створити, виберіть Запустити скрипт оболонки, вставте код, змініть ім'я Db Realm, Клацніть Виконати, щоб перевірити, збережіть файл десь зручно для швидкого доступу до клацання.
Я не знаю, де я знайшов цю пораду вперше, але ця тема нагадала мені, як я отримував доступ до своїх живих даних у минулому.
Просто для вашої програми на iOS Simulator
Введіть
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()
Тож, перебуваючи в режимі розробки, я можу знайти свою робочу базу даних на робочому столі та можу відкритись у браузері Realm.
У Свіфта
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