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

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

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

Перекресток, отправленный из групп google

Ответ 1

Поиск файла Realm

Для Android

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

Для iOS

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

Убедитесь, что ваше устройство подключено и перейдите в окно устройств в меню Xcode Окно > Устройства (⌘⇧2). Там вы сможете выбрать свое устройство и свое приложение из списка установленных приложений с разрешениями отладки.

После выбора своего приложения перейдите в шестерню на панели инструментов в нижней части таблицы и выберите "Загрузить контейнер..." . Там вы сможете вытащить файл из местоположения документов на ваш Mac. Он будет сохранен как пакет xcappdata.

Когда вы открываете локальный путь в 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 [Вложенный путь здесь]

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

Помощник инструмента SimPholders

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

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

Ответ 2

Я нашел самый простой способ для iOS/macOS (для быстрого 3 Xcode 8.3)

override func viewDidLoad() {

   // for swift 2.0 Xcode 7
   print(Realm.Configuration.defaultConfiguration.fileURL!)
}

Затем x-код зарегистрирует правильный путь, проверьте экран ниже.

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

Теперь откройте Finder и нажмите + + G (команда + shift + G) и вставьте путь, который регистрируется на вашем Xcode

Ответ 3

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

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

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

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

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

Ex. Если вы используете один из проектов примера области, путь будет выглядеть как Data > Data > io.realm.examples.realmgridview > files > default.realm

5) Выделите файл, щелкните значок Floppy Disk в верхней правой области "вытащите файл с устройства"

6) Сэкономьте это, если хотите и сделаете.

Ответ 4

То, что я сделал, это использовать

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

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

Ответ 5

Objective-C - [RLMRealmConfiguration defaultConfiguration].fileURL

NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);

eg-/Users/ "Ваш-имя пользователя" /Library/Developer/CoreSimulator/Devices/E 58645FF-90DE-434D-B2EB-FA145EB6F2EA/данные/Контейнеры/Data/Application/E427BD21-2CB1-4F64-9ADF- 8742FF731209/Документы/

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

Или

Вы можете открыть источник openSim, альтернативный simpholders, чтобы получить доступ к каталогу документов приложений непосредственно из панели меню

Ответ 6

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

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

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

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

  2. Поиск .realm

  3. Измените поиск только в папке "Devices".

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

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

Ответ 7

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

Для Android:

checkout 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()

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

Ответ 8

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

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

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

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

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

Ответ 9

Во-первых, я признаю, что это поток Android, но это первый результат поиска для этой проблемы в целом.

Чтобы открыть последний созданный Xcode Simulator Realm db в Realm Browser, вы можете использовать этот script в 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. В Automator нажмите "Создать", выберите "Запустить оболочку" Script, вставьте код, измените имя Realm Db, нажмите "Выполнить", чтобы проверить, сохраните файл где-то удобным для быстрого доступа по клику.

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

Ответ 10

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

Ответ 11

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

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

Ответ 12

В Swift

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

Ответ 13

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

Сначала откройте "Device File Explorer" в студии Android (View → Tools Windows → Device File Explorer.

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

enter image description here

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

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

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

Ответ 14

Чтобы получить путь к базе данных для iOS, самый простой способ:

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

Tada... у вас есть путь к базе данных вашего королевства

Ответ 15

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

Ответ 16

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

Войти

console.log (Realm.defaultPath)

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

Ответ 17

В разделе Инструменты → Монитор устройств Android

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

Ответ 18

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

Ответ 19

Решение Swift 2.3

Простое решение, которое не будет работать с обновлениями Realm

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

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

Ответ 20

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

Realm.defaultPath