web-dev-qa-db-fra.com

Comment trouver mon fichier de royaume?

J'ai créé une base de données par royaume et je ne parviens pas à trouver le fichier car mon système d'exploitation (Yosemite) ne dispose pas d'un dossier mobile dans/private/var/mobile.

Comment dois-je accéder à mon royaume pour s'exécuter dans le navigateur?

Croix posté de google groupes

203
yoshyosh

Trouver un fichier de royaume

Pour Android

Comment afficher mon fichier de royaume dans le navigateur de royaume?

Pour iOS

Si votre application est sur l'appareil

Assurez-vous que votre appareil est connecté et accédez à la fenêtre des appareils dans le menu Xcode Fenêtre> Appareils (2). Là, vous pourrez choisir votre appareil et votre application parmi une liste d'applications installées avec des autorisations de débogage. 

Après avoir sélectionné votre application, accédez au rouage de la barre d’outils au bas de la vue tableau et sélectionnez “Télécharger le conteneur…“. Vous pourrez alors extraire le fichier de l’emplacement des documents sur votre Mac. Il sera enregistré en tant que bundle xcappdata. 

Lorsque vous ouvrez le chemin local dans le Finder, où vous l'avez enregistré, vous pouvez y accéder en sélectionnant “Afficher le contenu du paquet” dans le menu contextuel du Finder, lorsque vous sélectionnez le fichier. Une nouvelle fenêtre du Finder s’ouvrira, où vous trouverez votre royaume à l’intérieur du chemin suivant (par exemple): AppData/Documents/default.realm (le répertoire '/ private/var/mobile' est le chemin utilisé par iOS de la système de fichiers de l'appareil.

Si votre application est sur le simulateur

Allez dans le répertoire de votre utilisateur:

/Users/<username>/Library/Developer/CoreSimulator/Devices/<simulator-uuid>/data/Containers/Data/Application/<application-uuid>/Documents/default.realm

Le moyen le plus simple d’obtenir le chemin actuel du domaine par défaut consiste à suspendre le simulateur et à saisir les informations suivantes dans la console LLDB: 

Objectif c:
(lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL

Swift en utilisant le Royaume Objective-C:
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL

Swift en utilisant Realm Swift:
(lldb) po Realm.Configuration.defaultConfiguration.fileURL

Ou si vous avez une instance RLMRealm sous la main, vous pouvez utiliser:
(lldb) po myRealm.configuration.fileURL

Ensuite, copiez simplement ce chemin, ouvrez votre terminal et tapez open[chemin collé ici]

NOTE: Certains chemins ont un espace, assurez-vous donc d'utiliser "\" avant l'espace pour l'échapper

Helper Tool SimPholders

C'est probablement le moyen le plus rapide de trouver le fichier d'une application dans le simulateur. Installez SimPholders . Cela vous permettra d'accéder au répertoire des documents de votre application directement à partir de votre barre de menus.

Remarque Certaines personnes ont mentionné que SimPholders les avait transférées dans le mauvais dossier de l'application de simulation. Si c'est le cas pour vous, imprimez votre chemin de domaine en suivant les étapes ci-dessus, en imprimant votre domaine.path

418
yoshyosh

J'ai trouvé le moyen le plus simple pour iOS/macOS (pour Swift 3 Xcode 8.3)

override func viewDidLoad() {

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

Ensuite, x code enregistrera le chemin correct, vérifiez l’écran ci-dessous.

enter image description here

Ouvrez maintenant votre Finder et appuyez sur  +  + G (commande + shift + G) et collez le chemin qui se connecte sur votre Xcode

113
Kamaal ABOOTHALIB

Voici une solution facile .. Je me suis planté avec ça pendant un moment. Il convient de souligner qu’il s’agit d’un ensemble spécifique d’instructions utilisant Android Studio et AVD Emulator. 

1) Démarrez l’émulateur et lancez votre application. 

2) Pendant que l'application est toujours en cours d'exécution, ouvrez le moniteur de périphériques Android. (dans la barre d’outils à côté des icônes de gestionnaire AVD et SDK) 

3) Cliquez sur l'onglet Explorateur de fichiers dans le Moniteur de périphériques. Il devrait y avoir beaucoup de dossiers. 

4) Naviguez dans le chemin suivant: Données> Données> Votre nom de paquet > fichiers> Default.Realm (ou le nom de votre choix).

Ex. Si vous utilisez l'un des exemples de projets du domaine, le chemin d'accès sera du type Données> Données> io.realm.examples.realmgridview> fichiers> default.realm.

5) Mettez le fichier en surbrillance, cliquez sur l'icône de la disquette dans la partie supérieure droite "extraire un fichier du périphérique".

6) Économisez où vous voulez et fait. 

20
Michael Elkins

Une alternative facile pour les applications de simulateur

Créez un dossier intelligent/recherchez dans le Finder. Donne un accès simple et rapide à tous vos fichiers de domaine.

  1. Ouvrez le dossier /Users/$USER/Library/Developer/CoreSimulator/Devices dans le Finder. 

    Avec terminal open /Users/$USER/Library/Developer/CoreSimulator/Devices

  2. Rechercher .realm

  3. Modifiez la recherche pour rechercher uniquement dans le dossier "Devices".

  1. Enregistrez la recherche dans votre barre latérale (par exemple, en tant que royaumes)

Une fois triés par date, vous obtiendrez une liste simple et rapide des derniers fichiers Simulator .realm modifiés modifiés. 

18
Archdoog

Ce que j'ai fait était d'utiliser

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

et ensuite, il est créé dans son intégralité sur mon bureau et je peux double-cliquer dessus pour lancer le navigateur de domaine. Plus tard, je peux supprimer le paramètre et le laisser utiliser l'emplacement par défaut lorsque je suis convaincu que tout fonctionne comme prévu.

17
Stephen Watson

Objective-C - [RLMRealmConfiguration defaultConfiguration].fileURL

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

Exemple:/Utilisateurs/"Votre nom d'utilisateur"/Bibliothèque/Développeur/CoreSimulator/Appareils/E58645FF-90DE-434D-B2EB-FA145EB6F2EA/data/Conteneurs/Données/Application/E427BD21-2CB1-4F64-9ADF-8742FF731209/Documents /

C’est la commande la plus simple que vous puissiez exécuter pour obtenir votre chemin vers le fichier .realm. Vous verrez le fichier .realm une fois toutes vos opérations de lecture et d’écriture terminées. 

Ou 

Vous pouvez ouvrir source openSim , alternative à simpholders pour accéder au répertoire des documents de votre application directement à partir de votre barre de menus.

10
Priyansh

Réponse mise à jour au nouveau royaume:

Pour Android:

checkout stetho et https://github.com/uPhyca/stetho-realm Tutoriel vidéo ici: https://www.youtube.com/watch?v=9pFJz5VexRw

Pour IOS (rapide)

Non plus: 

debugPrint("Path to realm file: " + realm.configuration.fileURL!.absoluteString)

ou

Étape 1: Avoir une constante appelée dev quelque part. Disons fichier constant

public class Constants {

    public static var dev: Bool = true

}

Étape 2: Créez une autre classe appelée 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()
    }
}

Étape 3: enfin dans votre contrôleur de vue:

let realm = realmAndPath()

merci à Stewart Lynch pour la réponse originale

9
OWADVL

Si vous obtenez une erreur de la boîte de dialogue 'Entrer la clé de cryptage':

J'utilise Swift 2.1 avec Realm 0.96.2 et j'obtenais cette erreur en essayant d'ouvrir le fichier de base de données:

'default' n'a pas pu être ouvert. Il peut être crypté, ou ce n'est pas dans un format de fichier compatible. Si vous savez que le fichier est crypté, vous pouvez entrez manuellement sa clé de cryptage pour l'ouvrir.

Nous avons constaté que l'utilisation de la version préliminaire de Realm Browser 0.96 corrigeait le problème:

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

5
sameer

Les réponses ci-dessus manquent un moyen de trouver le fichier de royaume sur la plate-forme Android et croyez-moi, cela vous fera gagner beaucoup de temps que nous perdons généralement avec d'autres approches pour obtenir le fichier de royaume. Alors commençons ...

Commencez par ouvrir «Explorateur de fichiers de périphérique» dans Android studio (Affichage -> Outils Windows -> Explorateur de fichiers de périphérique.

Cela ouvrira l'explorateur de votre appareil.

 enter image description here

maintenant, ouvrez data -> data -> (your_app_package_name) -> files -> default.realm

default.realm est le fichier pour lequel nous sommes ici. Maintenant, Save_as ce fichier à votre emplacement et accédez au fichier à partir de realm_browser et vous obtiendrez votre base de données.

NOTE: L'approche mentionnée est testée sur un téléphone non rooté (un + 3).

4
anoopbryan2

Juste pour votre application est sur le simulateur iOS

Entrer 

console.log (Realm.defaultPath)

dans le code par exemple: App.js

3
leyliu.com

Tout d'abord, je reconnais qu'il s'agit d'un fil Android, mais qu'il s'agit du premier résultat de recherche relatif à ce problème en général.

Pour ouvrir la base de données Xcode Simulator Realm créée le plus récemment dans Realm Browser, vous pouvez utiliser ce script dans Automator ou saisir le tout au terminal. En utilisant Automator, j'ai un accès en un clic à mon royaume actuel.

    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

Installez Realm Browser . Dans Automator, cliquez sur Nouveau, sélectionnez Exécuter le script shell, collez le code, modifiez le nom de la base de données, cliquez sur Exécuter pour tester, enregistrez le fichier dans un endroit pratique pour un accès rapide.

Je ne sais pas où j'ai trouvé cette astuce la première fois, mais ce fil m'a rappelé comment j'avais accès à mes données en direct dans le passé.

3
J. Roth

En rapide 

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

J'ai franchi une étape supplémentaire .. J'ai créé un fichier Swift appelé RealmFunctions et dans lequel j'ai créé cette fonction

    import RealmSwift
    func realmAndPath() -> Realm {
        if dev {
            // location of my desktop
            return try! Realm(path: "/Users/slynch/Desktop/TestRealm.realm")
        } else {
            return try! Realm()
        }
    }

Maintenant, dans mon contrôleur de vue principale, j'ai une variable booléenne globale appelée 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.

Maintenant, tout ce que je dois faire dans mon code est

let realm = realmAndPath()

Ainsi, lorsque je suis en mode développement, je peux trouver ma base de données de domaines sur mon bureau et l’ouvrir dans le navigateur de domaines.

2
Stewart Lynch

J'ai trouvé mon fichier de domaine en exécutant cette commande dans Terminal: Sudo find / -name "*.realm"

J'espère que cela t'aides!

2
teechap

Pour obtenir le chemin de la base de données pour iOS, le moyen le plus simple consiste à: 

  1. Lancez votre application dans un simulateur
  2. Pause à tout moment dans le débogueur 
  3. Allez à la console (où vous avez (lldb)) et tapez: po RLMRealm.defaultRealmPath

Tada ... vous avez le chemin de votre base de données de royaume

1
denislexic

La commande correcte (lldb) est: Realm.Configuration.defaultConfiguration.path.

1
Kokotoni Wilf

Si vous utilisez la base de données Realm par défaut dans le simulateur:

po Realm().configuration.fileURL
0
superarts.org

La commande lldb correcte pour Xcode 7, Swift 2.2+ est po Realm.Configuration.defaultConfiguration.path!

0
Marquis103

Pour ceux qui utilisent React Native et le domaine par défaut:

Realm.defaultPath

0

Solution Swift 2.3

Solution plus facile qui ne cassera pas avec les mises à jour de royaume

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

Le fichier .realm doit être dans "Documents"

0
apinho

Sous Outils -> Moniteur de périphériques Android

Et sous l'explorateur de fichiers. Recherchez les applications. Et le fichier est sous data/data.

0
Spidey