Как найти файл моего царства?

realm

129162 просмотра

21 ответа

Я создал БД по областям, и я не могу найти файл, так как в моей ОС (Yosemite) нет мобильной папки в / private / var / mobile.

Как мне получить доступ к своему царству для запуска в браузере?

Крест опубликован из групп Google

Автор: yoshyosh Источник Размещён: 17.05.2019 02:59

Ответы (21)


416 плюса

Решение

В поисках файла области

Для Android

Как просмотреть мой файл Realm в браузере Realm?

Для iOS

Если ваше приложение на устройстве

Убедитесь, что ваше устройство подключено и перейдите в окно устройств в меню 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 . Это позволит вам получить доступ к каталогу документов вашего приложения прямо из строки меню.

Примечание. Некоторые люди упоминали, что SimPholder перенес их в неправильную папку приложения симулятора. Если это так, распечатайте путь к своей области, выполнив шаги, описанные выше, распечатав ваш realm.path.

Автор: yoshyosh Размещён: 11.02.2015 10:29

111 плюса

Я нашел самый простой способ для 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

Автор: Kamaal ABOOTHALIB Размещён: 16.08.2015 12:25

20 плюса

Вот простое решение .. Я ненадолго облажался с этим. Следует отметить, что это особый набор инструкций с использованием Android Studio и эмулятора AVD.

1) Запустите эмулятор и запустите ваше приложение.

2) Пока приложение еще работает, откройте Android Device Monitor. (на панели инструментов рядом с иконками менеджера AVD и SDK)

3) Перейдите на вкладку «Проводник» в мониторе устройств. Там должно быть много папок.

4) Перейдите по следующему пути: Данные> Данные> Имя вашего пакета > Файлы> Default.Realm (или как вы его назвали)

Ex. Если вы используете один из примеров проектов области, путь будет выглядеть примерно так: «Данные»> «Данные»> «io.realm.examples.realmgridview> файлы> default.realm».

5) Выделите файл, щелкните значок дискеты в правом верхнем углу «вытащить файл с устройства»

6) Сохраните его там, где вы хотите и сделали.

Автор: Michael Elkins Размещён: 04.06.2015 02:39

17 плюса

Что я сделал, так это использовал

let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")

и затем он создается в полноэкранном режиме на моем рабочем столе, и я могу дважды щелкнуть, чтобы запустить браузер Realm на нем. Позже я могу удалить параметр и позволить ему использовать местоположение по умолчанию, когда я убедился, что все работает как положено.

Автор: Stephen Watson Размещён: 08.10.2015 04:11

17 плюса

Одна простая альтернатива для приложений симулятор

Создать умную папку / поиск в Finder. Дает быстрый и легкий доступ ко всем файлам области.

  1. Откройте папку /Users/$USER/Library/Developer/CoreSimulator/Devicesв Finder.

    С терминалом open /Users/$USER/Library/Developer/CoreSimulator/Devices

  2. Ищи .realm

  3. Измените поиск, чтобы посмотреть только в "Devices"папке.

  1. Сохранить поиск на боковой панели (например, как области)

При сортировке по дате это даст вам быстрый и легкий кликабельный список последних измененных .realmфайлов симулятора .

Автор: Archdoog Размещён: 24.10.2017 03:21

10 плюса

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 с открытым исходным кодом , альтернативу упрощенным, чтобы получить доступ к каталогу документов вашего приложения прямо из строки меню.

Автор: Priyansh Размещён: 26.05.2016 09:46

9 плюса

Обновленный ответ на новейшее Царство:

Для 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)

или же

Шаг 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()

спасибо Стюарту Линчу за оригинальный ответ

Автор: OWADVL Размещён: 29.07.2016 09:15

5 плюса

Если вы получаете сообщение об ошибке «Введите ключ шифрования»:

Я использую Swift 2.1 с Realm 0.96.2 и получаю эту ошибку при попытке открыть файл базы данных:

«по умолчанию» не может быть открыт. Это может быть зашифровано, или это не в совместимом формате файла. Если вы знаете, что файл зашифрован, вы можете вручную ввести его ключ шифрования, чтобы открыть его.

Обнаружено, что при использовании предварительной версии Realm Browser 0.96 исправлена ​​проблема:

https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease

Автор: sameer Размещён: 02.11.2015 05:41

4 плюса

В приведенных выше ответах отсутствует способ найти файл области на платформе Android и, поверьте мне, этот способ сэкономит ваше время, которое мы обычно тратим на другие подходы, чтобы получить файл области. Итак, начнем...

Сначала откройте «Обозреватель файлов устройств» в Android Studio (Вид -> Инструменты Windows -> Обозреватель файлов устройств.

Откроется проводник вашего устройства.

введите описание изображения здесь

Теперь откройте данные -> data -> (your_app_package_name) -> files -> default.realm

default.realm - это файл, для которого мы здесь. Теперь сохраните этот файл в своем местоположении и получите доступ к файлу из realm_browser, и вы получите свою базу данных.

ПРИМЕЧАНИЕ. Упомянутый подход проверен на телефоне без рута (один + 3).

Автор: anoopbryan2 Размещён: 09.05.2018 06:31

3 плюса

Во-первых, я признаю, что это тема для 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, нажмите «Выполнить» для проверки, сохраните файл в удобном для быстрого доступа месте.

Я не знаю, где я нашел этот совет в первый раз, но эта ветка напомнила мне, как я обращался к моим живым данным в прошлом.

Автор: J. Roth Размещён: 01.09.2017 12:43

2 плюса

Я сделал еще один шаг вперед. Я создал быстрый файл под названием 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()

Поэтому, находясь в режиме разработки, я могу найти свою базу данных областей на рабочем столе и открыть в браузере областей.

Автор: Stewart Lynch Размещён: 13.10.2015 07:22

2 плюса

Я нашел файл области действия , выполнив эту команду в терминале: sudo find / -name "*.realm".

Надеюсь это поможет!

Автор: teechap Размещён: 26.07.2017 08:55

2 плюса

В Свифте

func getFilePath() -> URL? {
    let realm = try! Realm()
    return realm.configuration.fileURL
}
Автор: Mahmud Ahsan Размещён: 14.01.2018 09:23

2 плюса

Просто для вашего приложения на iOS симуляторе

Войти

console.log (Realm.defaultPath)

в коде, например: App.js

Автор: leyliu.com Размещён: 01.03.2018 08:31

1 плюс

Чтобы получить путь к БД для iOS, самый простой способ:

  1. Запустите ваше приложение в симуляторе
  2. Приостановить это в любое время в отладчике
  3. Перейдите в консоль (где у вас есть (lldb)) и введите:po RLMRealm.defaultRealmPath

Тада ... у вас есть путь к вашей базе данных области

Автор: denislexic Размещён: 16.06.2015 08:43

1 плюс

Команда правильно (lldb) является: Realm.Configuration.defaultConfiguration.path.

Автор: Kokotoni Wilf Размещён: 08.01.2016 06:37

0 плюса

Под Инструменты -> Android Device Monitor

И под проводником. Поиск приложений. И файл находится под данными / данными.

Автор: Spidey Размещён: 19.02.2016 06:52

0 плюса

Правильная команда lldb для Xcode 7, Swift 2.2+ po Realm.Configuration.defaultConfiguration.path!

Автор: Marquis103 Размещён: 23.06.2016 08:11

0 плюса

Решение Swift 2.3

Более простое решение, которое не сломается с обновлениями Realm

    let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    print("App Path: \(dirPaths)")

Файл .realm должен быть внутри «Документы»

Автор: apinho Размещён: 08.09.2016 09:17

0 плюса

Для тех, кто использует React Native и использует область по умолчанию:

Realm.defaultPath

Автор: Natividad Lara Diaz Размещён: 10.10.2017 01:34

0 плюса

Если вы используете Realm DB по умолчанию в симуляторе:

po Realm().configuration.fileURL
Автор: superarts.org Размещён: 25.02.2019 05:33
Вопросы из категории :
32x32