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

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

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

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

26 ответов

Решение

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

Для 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 [Вставленный путь здесь]

ПРИМЕЧАНИЕ. В некоторых путях есть пробел, поэтому обязательно используйте "\" перед пробелом, чтобы избежать его.

Вспомогательный инструмент SimPholder

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

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

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

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

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

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

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

  2. Ищи .realm

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

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

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

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

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

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

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

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

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

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

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

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

po Realm().configuration.fileURL

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

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

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

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

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

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

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

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

2020: Файл Realm на реальном устройстве iOS (не в симуляторе)

Начинается с строки меню вверху, затем следуйте приведенной ниже последовательности: -

  1. Окно

  2. Устройства и симуляторы

  3. Выберите устройство

  4. Внизу найдите заголовок (УСТАНОВЛЕННЫЕ ПРИЛОЖЕНИЯ)

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

  5. Выберите свое приложение.

  6. Нажмите кнопку с шестеренкой (она находится внизу списка приложений)

  7. Скачать контейнер

  8. Выберите место для сохранения.

  9. Щелкните правой кнопкой мыши загруженный файл

  10. Показать содержимое пакета

  11. Данные приложения

Вот и все, оттуда вы можете получить доступ к файлам Your Realm в зависимости от вашей конфигурации. Например, если вы сохранили в папках "Документы" или "Библиотека", просто откройте их, чтобы увидеть свои области.

Как упоминалось ранее, вы можете использовать следующие подходы для поиска местоположения файла.

//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 симуляторе

Войти

console.log (Realm.defaultPath)

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

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

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

Во-первых, я признаю, что это тема для 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

Работал у меня в Xcode 12

Шаги -

  1. В Xcode перейдите в Window -> Devices and Simulators.
  2. Выберите свое устройство из списка слева
  3. Выберите название своего приложения в разделе «Установленные приложения».
  4. Теперь выделите название своего приложения и щелкните значок шестеренки под ним.
  5. из выпадающего списка выберите Загрузить Container вариант
  6. Выберите место, где вы хотите сохранить файл
  7. Щелкните правой кнопкой мыши файл, который вы только что сохранили, и выберите Показать содержимое пакета.
  8. Внутри папки App Data перейдите в папку, в которой вы сохранили файл.

В Свифте

func getFilePath() -> URL? {
    let realm = try! Realm()
    return realm.configuration.fileURL
}

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

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

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

Realm.defaultPath

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

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

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

Правильная (lldb) команда: Realm.Configuration.defaultConfiguration.path,

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

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

Решение Swift 2.3

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

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

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

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

Хотя сам вопрос касается iOS, название довольно общее, поэтому оно и привело меня сюда. Итак, я почувствовал необходимость поделиться здесь решением для Windows.

В dotnet C# используйтеrealm.Config.DatabasePathчтобы увидеть, где находится файл области. Если не установлено иначе, тоC:\Users\<username>\Documents\default.realmвместе сdefault.realm.managementпапка иdefault.realm.lock

Чтобы установить новый путь, адаптируйте этот код (папки должны существовать, иначе выдается ошибка)

      var realm = Realm.GetInstance(new RealmConfiguration(optionalPath: "C:/myproject/myrealm/myproject.realm" ));

все шаги для android и ios можно найти на официальном сайте Realm:https://support.realm.io/support/solutions/articles/36000064525-how-do-i-locate-realm-files-on-a- устройство или симулятор

Другие вопросы по тегам