Bölge dosyamı nasıl bulabilirim?


239

Bölge tarafından bir DB yarattık ve benim OS (Yosemite) / private / var / mobile bir mobil klasör yok gibi dosyayı bulamıyorum.

Tarayıcıda çalıştırmak için bölgeme nasıl erişmeliyim?

Google gruplarından gönderilen çapraz


Kontrol bu out. Bu yöntem, hem köklü hem de köklendirilmemiş cihazlar için çalışır.
krhitesh

Yanıtlar:


474

Bir Bölge Dosyası Bulma

Android için

Bölge Dosyamı Bölge Tarayıcısında nasıl görüntüleyebilirim?

İOS için

Uygulamanız Cihazdaysa

Cihazınızın bağlı olduğundan emin olun ve Xcode menüsü Pencere> Cihazlar (⌘⇧2) içindeki cihazlar penceresine gidin . Burada, hata ayıklama izinlerine sahip yüklü uygulamalar listesinden cihazınızı ve uygulamanızı seçebileceksiniz.

Uygulamanızı seçtikten sonra, tablo görünümünün altındaki araç çubuğunda bulunan dişli çark seçeneğine gidin ve “Kapsayıcıyı İndir…” seçeneğini seçin . Orada dosyayı belge konumundan Mac'inize çekebileceksiniz. Bir xcappdata paketi olarak kaydedilecektir.

Yerel yolu Finder'da kaydettiğiniz yerde açtığınızda , dosyayı seçtiğinizde bulucunun içerik menüsünde “Paket İçeriğini Göster” i seçerek buna dokunabilirsiniz . Bölgenizi aşağıdaki yolda bulduğunuz yeni bir bulucu penceresi açılacaktır (örn.): AppData / Documents / default.realm ('/ private / var / mobile' dizini, iOS tarafından aygıt dosya sistemi.

Uygulamanız Simülatördeyse

Kullanıcının dizinine gidin:

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

Muhtemelen varsayılan bölgenin geçerli yolunu elde etmenin en kolay yolu simülatörü duraklatmak ve LLDB konsoluna aşağıdakileri girmektir:

Amaç-C :
(lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL

Realm Objective-C kullanarak hızlı :
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL

Realm Swift kullanarak Swift :
(lldb) po Realm.Configuration.defaultConfiguration.fileURL

Veya elinizde bir RLMRealmörnek varsa , şunları kullanabilirsiniz:
(lldb) po myRealm.configuration.fileURL

Ardından bu yolu kopyalayın, terminalinizi açın ve open [Buraya yapıştırılan yol] yazın

NOT: Bazı yollarda boşluk vardır, bu nedenle boşluktan kaçmak için "\" kullandığınızdan emin olun.

Yardımcı Araç SimP sahipleri

Bu muhtemelen simülatörde bir uygulamanın dosyasını bulmanın en hızlı yoludur. SimPholders'ı yükleyin . Bu, uygulamanızın belgeler dizinine doğrudan menü çubuğunuzdan erişmenizi sağlar.

Not Bazı insanlar SimP sahiplerinin onları yanlış simülatör uygulama klasörüne götürdüğünü belirtmiştir, eğer durum buysa, yukarıdaki adımları izleyerek bölge yolunuzu yazdırın.


1
son güncellemeden sonra u yaptığınızda bir hata var po RLMRealm.defaultRealmPath(). Diyorcalled object type 'NSString *' is not a function or function pointer
carbonr

@Carbonr ile aynı sorunum var. Birisi yardım edebilir mi?
denislexic

2
po [[RLMRealm defaultRealm]path]
0.97'nin

5
Bu cevabın bir kısmı artık eskimiş. RealmSwift kullanarak bölge veritabanı dosyanızı (default.realm) bulmanın en son yolu:Realm.Configuration.defaultConfiguration.fileURL
nodebase

1
RealmSwift yöntemini kullanarak aşağıdakileri alıyorum:error: use of undeclared identifier 'Realm'
Simon Bengtsson

122

İOS / macOS için en basit yolu buldum (hızlı 3 Xcode 8.3 için)

override func viewDidLoad() {

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

Sonra x kodu doğru yolu kaydedecektir, aşağıdaki ekranı kontrol edin.

resim açıklamasını buraya girin

Şimdi Finder'ınızı açın ve + + G(command + shift + G) tuşlarına basın ve Xcode'unuzda oturum açan yolu yapıştırın


10
yol kullanımdan kaldırıldı. kullanmak Realm.Configuration.defaultConfiguration.fileURLyerine
hewigovens

2
Realm.configuration.fileURL olarak değiştirildi
Reshad

3
swift 3, xcode8.3 ile de çalışırRealm.Configuration.defaultConfiguration.fileURL!
xmhafiz

Ben aynı işlemi takip etti ama bulucu dosya yolunu bulamıyorum
RejoylinLokeshwaran

1
Bu simülatör için mükemmel ve dosyanızı bulduktan sonra, Realm Studio'yu başlatmak için "Birlikte Aç" için kolay bir cmd tıklama. Bu, şu soruyu veya düşünceyi yalvarır: Realm Studio'nun "son aç" Dosya menü seçeneğine ihtiyacı vardır!
çekti ..

39

Simülatör Uygulamaları İçin Bir Kolay Alternatif

Finder'da akıllı bir klasör oluşturun / arayın. Tüm bölge dosyalarınıza hızlı ve kolay tıklanabilir erişim sağlar.

  1. Klasörü /Users/$USER/Library/Developer/CoreSimulator/DevicesFinder'da açın .

    Terminal ile open /Users/$USER/Library/Developer/CoreSimulator/Devices

  2. Aramak .realm

  3. Aramayı "Devices"yalnızca klasöre bakacak şekilde değiştirin .

  1. Aramayı kenar çubuğunuza kaydedin (örneğin Realms olarak)

Tarihe göre sıralandığında, bu size en son değiştirilen Simülatör .realmdosyalarının hızlı ve kolay bir tıklanabilir listesini verecektir .


Teşekkürler @Archdoog - Realm ile birçok yeni projeye girdiğinizde kötü bir fikir değil
Allen

4
Bir arama olarak kaydetmek deha! Teşekkür ederim! :)
karlingen

22

İşte kolay bir çözüm .. Bir süredir bununla uğraştım. Şunu belirtmeliyim ki, bu Android Studio ve AVD Emulator kullanan belirli bir talimatlar dizisidir.

1) Öykünücüyü başlatın ve uygulamanızı çalıştırın.

2) Uygulama hala çalışırken Android Cihaz Monitörü'nü açın. (AVD ve SDK yöneticisi simgelerinin yanındaki araç çubuğundadır)

3) Aygıt İzleyicisi'nde Dosya Gezgini sekmesini tıklatın. Çok sayıda klasör olmalı.

4) Aşağıdaki yolda gezinin: Veri> Veri> Paket Adınız > dosyalar> Varsayılan. Gerçek (veya adınız ne olursa olsun)

Ör. Bölge örnek projelerinden birini kullanıyorsanız, yol Veri> Veri> io.realm.examples.realmgridview> dosyalar> default.realm gibi bir şey olacaktır.

5) Dosyayı vurgulayın, sağ üst kısımdaki "cihazdan bir dosya çekin" bölümündeki Disket simgesini tıklayın

6) istediğiniz yere kaydedin ve yapılır.


18

Yaptığım şey kullanmaktı

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

ve masaüstümde tam görünümde oluşturulur ve üzerinde Realm Tarayıcısını başlatmak için çift tıklayabilirim. Daha sonra, parametreyi kaldırabilir ve her şeyin beklendiği gibi çalıştığından memnun olduğumda varsayılan konumu kullanmasına izin verebilirim.


1
"Bağımsız Değişken etiketleri '(yol :)' mevcut aşırı yüklerle eşleşmiyor" hatası alıyorum. Neden olduğu hakkında bir fikrin var mı?
Marcelo Gracietti

Bu inanılmaz haha!
WilomGfx

Simülatörde test etmek için harika, ancak muhtemelen gerçek bir cihazda düzgün çalışmaz.
Arıza

alem = deneyelim! Bölge (fileURL: URL (dize: "/Users/[me Cialis/Desktop/TestRealm.realm")!)
Harris

11

Hedef-C - [RLMRealmConfiguration defaultConfiguration].fileURL

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

EG-/ Users / "Sizin-kullanıcı adı" / Library / Geliştirici / CoreSimulator / Cihazlar / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / veri / Kapları / Veri / Uygulama / E427BD21-2CB1-4F64-9ADF-8742FF731209 / Belgeler /

Bu, .realm dosyasına giden yolu almak için çalıştırabileceğiniz en basit komuttur. Tüm okuma ve yazma işlemleriniz tamamlandıktan sonra .realm dosyasını göreceksiniz.

Veya

Uygulamanızın belgeler dizinine doğrudan menü çubuğunuzdan erişmek için basitlerin alternatifi açık kaynaklı openSim'i açabilirsiniz.


11

Yukarıdaki cevaplar, android platformunda bölge dosyasını bulmanın bir yolunu eksik ve bana bu şekilde inanıyorum, genellikle bölge dosyasını almak için diğer yaklaşımlarda boşa harcadığımız zamanınızı kurtaracaktır. Haydi başlayalım...

İlk önce Android Studio'da "Aygıt Dosya Gezgini" ni açın (Görünüm -> Araçlar Windows -> Aygıt Dosya Gezgini.

Bu, cihaz gezgini açacaktır.

resim açıklamasını buraya girin

şimdi verileri aç -> veriler -> (uygulama_paketiniz_adı) -> dosyalar -> default.realm

default.realm , burada olduğumuz dosyadır. Şimdi bu dosyayı bulunduğunuz yere kaydedin ve dosyaya realm_browser'dan erişin ve veritabanınızı alacaksınız.

NOT: Bahsedilen yaklaşım, root olmayan telefonda (bir + 3) test edilir.


10

Simülatörde varsayılan Realm DB kullanıyorsanız:

po Realm().configuration.fileURL

Bazı ayrıntılar ekleyebilir misiniz?
zeeshan

@zeeshan lütfen çalıştırırken simülatörünüzü duraklatın ve komutu yazın, ardından enter tuşuna basın.
superarts.org

9

En yeni Diyar'a cevap güncellendi:

Android için:

ödeme stetho ve https://github.com/uPhyca/stetho-realm Burada video eğitimi: https://www.youtube.com/watch?v=9pFJz5VexRw

IOS için (Swift)

Ya:

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

veya

Adım 1: Bir yerde dev olarak adlandırılan bir sabit bulundurun. Diyelim ki Sabit dosya

public class Constants {

    public static var dev: Bool = true

}

Adım 2: RealmFunctions.swift adlı başka bir sınıf oluşturun

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.Adım: Son olarak görünüm denetleyicinizde:

let realm = realmAndPath()

orijinal cevap için Stewart Lynch'e teşekkürler


hızlı 3 için değiştirmek realm.pathiçin gereklirealm.configuration.fileURL!.absoluteString
Andy

5

'Şifreleme Anahtarını Girin' iletişim kutusu hatası alıyorsanız:

Swift 2.1 Realm 0.96.2 ile kullanıyorum ve veritabanı dosyasını açmaya çalışırken bu hatayı alıyordum:

'varsayılan' açılamadı. Şifrelenmiş olabilir veya uyumlu bir dosya biçiminde değil. Dosyanın şifrelenmiş olduğunu biliyorsanız, açmak için şifreleme anahtarını manuel olarak girebilirsiniz.

Realm Browser 0.96'nın yayın öncesi sürümünü kullanmanın sorunu çözdüğü bulundu:

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


3

İlk olarak, bunun bir Android iş parçacığı olduğunu kabul ediyorum, ancak genel olarak bu sorun için ilk arama sonucu.

En son oluşturulan Xcode Simulator Realm db'yi Realm Browser'da açmak için bu komut dosyasını Automator'da kullanabilir veya terminalde hepsini yazabilirsiniz. Automator'ı kullanarak, geçerli bölgeme tek tıklamayla erişebiliyorum.

    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

Bölge Tarayıcısını yükleyin. Automator'da Yeni'yi tıklatın, Kabuk Betiğini Çalıştır'ı seçin, kodu yapıştırın, Bölge Db adını değiştirin, Test etmek için Çalıştır'ı tıklayın, dosyayı hızlı tıklama erişimi için uygun bir yere kaydedin.

Bu ipucunu ilk kez nerede bulduğumu bilmiyorum ama bu konu bana geçmişte canlı verilerime nasıl eriştiğimi hatırlattı.


3

Sadece Uygulamanız için iOS Simulator'da

Giriş

console.log (Realm.defaultPath)

kodda örneğin: App.js


2

Bunu bir adım daha ileri götürdüm. RealmFunctions adlı hızlı bir dosya oluşturdum ve içinde bu işlevi yarattım

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

Şimdi ana görünüm denetleyicimde dev adında global bir boole değişkenim var

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.

Şimdi, kodumda tek yapmam gereken

let realm = realmAndPath()

Geliştirme modundayken bölge veritabanımı masaüstümde bulabilir ve Bölge Tarayıcısında açabiliyorum.


1
Hata: (13, 21) argüman etiketleri '(yol :)' mevcut aşırı
yüklerle eşleşmiyor

2

Ben Terminal'de bu komutu vererek benim bölge dosyası bulundu: sudo find / -name "*.realm".

Bu yardımcı olur umarım!


2

Swift'te

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

1

İOS için DB yolunu elde etmenin en basit yolu:

  1. Uygulamanızı bir simülatörde başlatın
  2. Hata ayıklayıcıda istediğiniz zaman duraklatın
  3. Konsola (sahip olduğunuz yere (lldb)) gidin ve şunu yazın:po RLMRealm.defaultRealmPath

Tada ... bölge veri tabanına giden yolun var


1

Doğru (lldb) komut şöyledir: Realm.Configuration.defaultConfiguration.path.


1

React Native kullanan ve varsayılan alanı kullanan kişiler için:

Realm.defaultPath


Bunu bulamıyorum!
Ali Hesari

@Natividad bu kodu nereye koyacak? bölge dosyası alma konusunda herhangi bir öneriniz var mı?
Bikram Thapa

@AliHesari buldun mu?
Bikram Thapa

componentDidMount() { console.log(Realm.defaultPath) }Realm kullanan bileşenimde benim için çalıştı. Daha sonra yol için xcode konsolunu kontrol edin.
Paul Schorey

0

Araçlar -> Android Cihaz Monitörü altında

Ve Dosya Gezgini altında. Uygulamaları arayın. Ve dosya veri / veri altında.


0

Xcode 7, Swift 2.2+ için doğru lldb komutu: po Realm.Configuration.defaultConfiguration.path!


1
üye çağrı değildir pathama fileURL: Realm.Configuration.defaultConfiguration.fileURL!
nburk

1
haklısın ... bu realm1.0'da değişti ... Bunu cevapladığımda 0.98 sürümünü kullanıyordum ... doğru cevap po Realm.Configuration.defaultConfiguration.fileURL?.path
Marquis103

0

Swift 2.3 çözümü

Bölge güncellemeleriyle kırılmayacak daha kolay çözüm

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

.Realm dosyası "Belgeler" içinde olmalıdır

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.