영역 파일을 찾는 방법은 무엇입니까?


239

영역별로 DB를 만들었고 / private / var / mobile에 모바일 폴더가 없어 내 OS (Yosemite)로 파일을 찾을 수 없습니다.

브라우저에서 실행하려면 영역에 어떻게 액세스해야합니까?

Google 그룹에서 교차 게시


이것을 확인하십시오 . 이 방법은 루팅 된 장치와 루팅되지 않은 장치 모두에서 작동합니다.
krhitesh

답변:


474

영역 파일 찾기

안드로이드

Realm Browser에서 Realm 파일을 보는 방법은 무엇입니까?

iOS의 경우

앱이 기기에있는 경우

장치가 연결되어 있는지 확인하고 Xcode 메뉴 창> 장치 (⌘⇧2) 에서 장치 창으로 이동하십시오 . 여기에서 디버깅 권한이있는 설치된 앱 목록에서 기기와 앱을 선택할 수 있습니다.

앱을 선택한 후 테이블보기 하단의 툴바에서 톱니 바퀴로 이동하여 “컨테이너 다운로드…”를 선택하십시오 . 거기에서 파일을 문서 위치에서 Mac으로 가져올 수 있습니다. xcappdata 번들로 저장됩니다.

파인더에서 저장 한 로컬 경로를 열면 파일을 선택할 때 파인더의 상황에 맞는 메뉴에서 "패키지 내용 표시" 를 선택하여 경로를 열 수 있습니다 . 새로운 파인더 창이 열리면 다음 경로에서 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 콘솔에 다음을 입력하는 것입니다.

목표 -C :
(lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL

Realm Objective-C를 사용하는 스위프트 :
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL

Realm Swift를 사용한 스위프트 :
(lldb) po Realm.Configuration.defaultConfiguration.fileURL

또는 RLMRealm인스턴스 가있는 경우 다음을 사용할 수 있습니다.
(lldb) po myRealm.configuration.fileURL

그런 다음이 경로를 복사하고 터미널을 열고 [Pasted path here]를 입력 open 하십시오.

참고 : 일부 경로에는 공백이 있으므로 이스케이프하려면 공백 앞에 "\"를 사용해야합니다.

도우미 도구 SimPholders

시뮬레이터에서 앱 파일을 찾는 가장 빠른 방법 일 것입니다. SimPholders를 설치 하십시오 . 이를 통해 메뉴 표시 줄에서 직접 앱의 문서 디렉토리에 액세스 할 수 있습니다.

참고 일부 사람들은 SimPholders가 잘못된 시뮬레이터 앱 폴더로 가져 갔다고 언급했습니다.이 경우에는 위의 단계에 따라 영역 경로를 인쇄하고 영역을 인쇄하십시오.


1
최신 업데이트 후 u 할 때 오류가 발생 po RLMRealm.defaultRealmPath()합니다. 그것은 말한다called object type 'NSString *' is not a function or function pointer
carbonr

@carbonr과 동일한 문제가 있습니다. 아무도 도와 줄 수 있습니까?
denislexic 2016 년

2
0.97 이상의 Objective-C 버전 사용po [[RLMRealm defaultRealm]path]
AlexHsieh

5
이 답변의 일부는 현재 구식입니다. 다음은 RealmSwift를 사용하여 영역 데이터베이스 파일 (default.realm)을 찾는 가장 최근의 방법입니다.Realm.Configuration.defaultConfiguration.fileURL
nodebase

1
: 나는 다음과 같은 얻을 RealmSwift 방법을 사용error: use of undeclared identifier 'Realm'
사이먼 벵 트손

122

iOS / macOS에서 가장 간단한 방법을 찾았습니다 (swift 3 Xcode 8.3의 경우)

override func viewDidLoad() {

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

그런 다음 x 코드가 올바른 경로를 기록합니다. 아래 화면을 확인하십시오.

여기에 이미지 설명을 입력하십시오

이제 열 찾기 를 눌러 + + G(명령 + Shift + G)를하고 붙여 경로를 귀하에 로그온 엑스 코드


10
경로는 더 이상 사용되지 않습니다. 사용 Realm.Configuration.defaultConfiguration.fileURL대신에
hewigovens을

2
Realm.configuration.fileURL로 변경되었습니다
Reshad

3
빠른 3 xcode8.3도 함께 작동Realm.Configuration.defaultConfiguration.fileURL!
xmhafiz

나는 같은 프로세스를 수행했지만 파인더에서 파일 경로를 찾을 수 없습니다
RejoylinLokeshwaran

1
이것은 시뮬레이터에 적합하며 파일을 찾으면 "Open WIth"를 cmd-click하여 쉽게 Realm Studio를 실행할 수 있습니다. Realm Studio에는 "최근에 열린"파일 메뉴 옵션이 필요합니다!
drew ..

39

시뮬레이터 앱을위한 쉬운 대안

Finder에서 스마트 폴더 / 검색을 생성하십시오. 모든 영역 파일에 빠르고 쉽게 클릭하여 액세스 할 수 있습니다.

  1. /Users/$USER/Library/Developer/CoreSimulator/DevicesFinder 에서 폴더 를여십시오.

    터미널 open /Users/$USER/Library/Developer/CoreSimulator/Devices

  2. 검색 .realm

  3. "Devices"폴더 만 찾도록 검색을 변경하십시오 .

  1. 검색을 사이드 바에 저장하십시오 (예 : 영역)

날짜별로 정렬하면 최신 수정 된 Simulator .realm파일을 빠르고 쉽게 클릭 할 수있는 목록으로 제공 합니다.


@Archdoog에게 감사드립니다-Realm으로 많은 새로운 프로젝트를 진행할 때 나쁜 생각은 아닙니다
Allen

4
검색으로 저장하면 천재입니다! 감사합니다! :)
karlingen

22

여기에 쉬운 해결책이 있습니다. 잠시 동안이 문제를 해결했습니다. Android Studio 및 AVD 에뮬레이터를 사용하는 특정 지침 세트입니다.

1) 에뮬레이터를 시작하고 앱을 실행하십시오.

2) 앱이 계속 실행되는 동안 Android 장치 모니터를 엽니 다. (AVD 및 SDK 관리자 아이콘 옆의 도구 모음에 있음)

3) 장치 모니터에서 파일 탐색기 탭을 클릭하십시오. 많은 폴더가 있어야합니다.

4) 다음 경로를 탐색하십시오. 데이터> 데이터> 패키지 이름 > 파일> Default.Realm (또는 지정한 이름)

전의. 영역 예제 프로젝트 중 하나를 사용하는 경우 경로는 Data> Data> io.realm.examples.realmgridview> files> default.realm과 같습니다.

5) 파일을 강조 표시하고 오른쪽 상단의 "장치에서 파일 가져 오기"에서 플로피 디스크 아이콘을 클릭하십시오.

6) 원하는 곳에 저장하십시오.


18

내가 한 일은

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

그런 다음 데스크탑에서 전체 화면으로 생성되며 두 번 클릭하여 Realm Browser를 시작할 수 있습니다. 나중에 매개 변수를 제거하고 모든 것이 예상대로 작동한다고 만족할 때 기본 위치를 사용하도록 할 수 있습니다.


1
"인수 레이블 '(경로 :)'이 (가) 사용 가능한 오버로드와 일치하지 않습니다"라는 오류가 발생합니다. 왜 그런지 알아?
Marcelo Gracietti

하하!
WilomGfx

시뮬레이터에서 테스트하기에는 좋지만 실제 장치에서는 제대로 작동하지 않을 수 있습니다.
오작동

영역 = 시도하자! 영역 (fileURL : URL (문자열 : "/Users/[me]/Desktop/TestRealm.realm")!)
Harris

11

목표 -C- [RLMRealmConfiguration defaultConfiguration].fileURL

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

예 : / 사용자 / "사용자 이름"/ 라이브러리 / 개발자 / CoreSimulator / 장치 / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / data / Containers / Data / Application / E427BD21-2CB1-4F64-9ADF-8742FF731209 / 문서 /

.realm 파일의 경로를 얻기 위해 실행할 수있는 가장 간단한 명령입니다. 모든 읽기 및 쓰기 작업이 완료되면 .realm 파일이 표시됩니다.

또는

당신은 당신이 오픈 소스 수 openSim는 , 대체 simpholders은 메뉴 표시 줄에서 직접 앱의 문서 디렉토리에 액세스 할 수


11

위의 답변은 안드로이드 플랫폼에서 영역 파일을 찾는 방법이 누락되어 있으며이 방법으로 나에게 많은 시간을 절약 할 수 있다고 생각합니다. 우리는 일반적으로 영역 파일을 얻는 데 다른 접근 방식을 낭비합니다. 그럼 시작합시다 ...

먼저 android studio에서 "장치 파일 탐색기"를 엽니 다 (보기-> 도구 Windows-> 장치 파일 탐색기).

장치 탐색기가 열립니다.

여기에 이미지 설명을 입력하십시오

이제 데이터-> 데이터-> (your_app_package_name)-> 파일-> default.realm을 엽니 다.

default.realm 은 우리가있는 파일입니다. 이제이 파일을 현재 위치에 저장하고 realm_browser에서 파일에 액세스하면 데이터베이스를 얻게됩니다.

참고 : 언급 된 접근 방식은 루팅되지 않은 전화 (1 + 3)에서 테스트됩니다.


10

시뮬레이터에서 기본 Realm DB를 사용하는 경우 :

po Realm().configuration.fileURL

세부 사항을 추가 할 수 있습니까?
zeeshan

@zeeshan 실행 중에 시뮬레이터를 일시 중지하고 명령을 입력 한 다음 Enter 키를 누릅니다.
superarts.org

9

최신 영역에 대한 업데이트 된 답변 :

안드로이드의 경우 :

체크 아웃 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()

원래 답변을 주신 Stewart Lynch에게 감사드립니다.


빠른 3 내가 변경할 필요 realm.pathrealm.configuration.fileURL!.absoluteString
앤디

5

'암호화 키 입력'대화 상자 오류가 발생하는 경우 :

Realm 0.96.2에서 Swift 2.1을 사용하고 있으며 데이터베이스 파일을 열려고 할 때이 오류가 발생했습니다.

'기본'을 열 수 없습니다. 암호화되었거나 호환 가능한 파일 형식이 아닙니다. 파일이 암호화 된 것을 알고 있으면 암호화 키를 수동으로 입력하여 열 수 있습니다.

시험판 버전의 Realm Browser 0.96을 사용하면 문제가 해결되었습니다.

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


3

먼저, 이것은 Android 스레드이지만 일반적 으로이 문제의 첫 번째 검색 결과라는 것을 알고 있습니다.

Realm Browser에서 가장 최근에 생성 된 Xcode Simulator Realm db를 열려면 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 Db 이름을 변경 한 후 실행을 클릭하여 테스트하고 빠른 클릭 액세스를 위해 편리한 파일을 저장하십시오.

이 팁을 처음 찾은 곳을 모르지만이 스레드는 과거에 내 라이브 데이터에 어떻게 액세스하고 있는지 상기시켜주었습니다.


3

앱이 iOS 시뮬레이터에 있다면

시작하다

console.log (Realm.defaultPath)

코드에서 예 : App.js


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

따라서 개발 모드에있을 때 데스크탑에서 영역 데이터베이스를 찾고 영역 브라우저에서 열 수 있습니다.


1
오류 : (13, 21) '(path :)'인수 레이블이 사용 가능한 과부하와 일치하지 않습니다. 최신 버전에서 변경된 것 같습니다
OWADVL

2

터미널에서이 명령을 실행하여 영역 파일을 찾았습니다 sudo find / -name "*.realm".

도움이 되었기를 바랍니다!


2

스위프트에서

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

1

iOS 용 DB 경로를 얻는 가장 간단한 방법은 다음과 같습니다.

  1. 시뮬레이터에서 앱을 시작하십시오.
  2. 디버거에서 언제든지 일시 중지
  3. 콘솔 (있는 곳)로 이동하여 다음을 (lldb)입력하십시오.po RLMRealm.defaultRealmPath

타다 ... 당신은 당신의 영역 데이터베이스에 대한 경로가



1

React Native를 사용하고 기본 영역을 사용하는 경우 :

Realm.defaultPath


나는 이것을 찾을 수 없다!
알리 Hesari

@Natividad이 코드를 어디에 둘 것인가? 영역 파일을 얻는 방법에 대한 제안?
Bikram Thapa

@AliHesari sth를 찾았습니까?
Bikram Thapa

componentDidMount() { console.log(Realm.defaultPath) }Realm을 사용하는 구성 요소에서 나를 위해 일했습니다. 나중에 xcode 콘솔에서 경로를 확인하십시오.
Paul Schorey

0

도구-> Android 장치 모니터에서

그리고 파일 탐색기에서. 앱을 검색하십시오. 그리고 파일은 데이터 / 데이터에 있습니다.


0

Xcode 7, Swift 2.2+에 대한 올바른 lldb 명령은 po Realm.Configuration.defaultConfiguration.path!


1
회원은 전화를하지 않습니다 path하지만 fileURL: Realm.Configuration.defaultConfiguration.fileURL를!
nburk

1
당신이 ...이 내가이 대답 할 때 내가 버전 0.98을 사용하고 있었다 ... realm1.0에 올바른 변경 ... 정답은 po Realm.Configuration.defaultConfiguration.fileURL?.path
Marquis103

0

스위프트 2.3 솔루션

Realm 업데이트로 깨지지 않는 더 쉬운 솔루션

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

.realm 파일은 "문서"안에 있어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.