ฉันสร้างฐานข้อมูลโดย realm แล้วและฉันไม่สามารถค้นหาไฟล์ดังกล่าวเป็น OS ของฉัน (โยเซมิตี) ไม่มีโฟลเดอร์มือถือใน / private / var / mobile
ฉันจะเข้าถึงอาณาจักรของฉันเพื่อเรียกใช้ในเบราว์เซอร์ได้อย่างไร
ข้ามการโพสต์จากกลุ่ม google
ฉันสร้างฐานข้อมูลโดย realm แล้วและฉันไม่สามารถค้นหาไฟล์ดังกล่าวเป็น OS ของฉัน (โยเซมิตี) ไม่มีโฟลเดอร์มือถือใน / private / var / mobile
ฉันจะเข้าถึงอาณาจักรของฉันเพื่อเรียกใช้ในเบราว์เซอร์ได้อย่างไร
ข้ามการโพสต์จากกลุ่ม google
คำตอบ:
จะดูไฟล์ Realm ของฉันใน Realm Browser ได้อย่างไร
ตรวจสอบให้แน่ใจว่าอุปกรณ์ของคุณเชื่อมต่ออยู่และไปที่หน้าต่างอุปกรณ์ในหน้าต่างเมนู Xcode หน้าต่าง> อุปกรณ์ (⌘⇧2) ที่นั่นคุณจะสามารถเลือกอุปกรณ์และแอพของคุณจากรายการแอพที่ติดตั้งพร้อมการอนุญาตการดีบัก
หลังจากที่เลือกแอปของคุณไปที่ฟันเฟืองในแถบเครื่องมือที่ด้านล่างของมุมมองตารางและเลือก“ดาวน์โหลดคอนเทนเนอร์ ...” คุณจะสามารถดึงไฟล์จากตำแหน่งเอกสารไปยัง Mac ของคุณได้ มันจะถูกบันทึกเป็นชุด xcappdata
เมื่อคุณเปิดพา ธ โลคัลใน Finder ซึ่งคุณบันทึกไว้คุณสามารถแตะที่นั้นโดยเลือก“ แสดงเนื้อหาแพ็คเกจ”ในเมนูบริบทของ 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
Swift โดยใช้ขอบเขต Realm-C :
(lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL
Swift โดยใช้ Realm Swift :
(lldb) po Realm.Configuration.defaultConfiguration.fileURL
หรือหากคุณมีRLMRealm
อินสแตนซ์ในมือคุณสามารถใช้:
(lldb) po myRealm.configuration.fileURL
จากนั้นเพียงคัดลอกพา ธ นี้เปิดเทอร์มินัลแล้วพิมพ์open
[วางเส้นทางที่นี่]
หมายเหตุ:บางพา ธ มีช่องว่างในนั้นโปรดใช้ "\" ก่อนช่องว่างเพื่อหลีกเลี่ยง
นี่อาจเป็นวิธีที่เร็วที่สุดในการค้นหาไฟล์ของแอพในเครื่องจำลอง ติดตั้งSimPholders สิ่งนี้จะช่วยให้คุณเข้าถึงไดเรกทอรีเอกสารของแอปโดยตรงจากแถบเมนูของคุณ
หมายเหตุบางคนได้กล่าวว่า SimPholders ได้นำพวกเขาไปยังโฟลเดอร์แอพจำลองที่ไม่ถูกต้องหากเป็นกรณีของคุณให้พิมพ์เส้นทางของอาณาจักรโดยทำตามขั้นตอนข้างต้นพิมพ์ realm.path ของคุณ
po RLMRealm.defaultRealmPath()
ทำ มันบอกว่าcalled object type 'NSString *' is not a function or function pointer
po [[RLMRealm defaultRealm]path]
Realm.Configuration.defaultConfiguration.fileURL
error: use of undeclared identifier 'Realm'
ฉันพบวิธีที่ง่ายที่สุดสำหรับ 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ของคุณ
Realm.Configuration.defaultConfiguration.fileURL
แทน
Realm.Configuration.defaultConfiguration.fileURL!
สร้างสมาร์ทโฟลเดอร์ / ค้นหาใน Finder ให้การเข้าถึงไฟล์ realm ทั้งหมดของคุณอย่างรวดเร็วและง่ายดาย
เปิดโฟลเดอร์/Users/$USER/Library/Developer/CoreSimulator/Devices
ใน Finder
ด้วยเทอร์มินัล open /Users/$USER/Library/Developer/CoreSimulator/Devices
ค้นหา .realm
เปลี่ยนการค้นหาเพื่อค้นหาใน"Devices"
โฟลเดอร์เท่านั้น
เมื่อจัดเรียงตามวันที่สิ่งนี้จะทำให้คุณมีรายชื่อ.realm
ไฟล์จำลองที่ได้รับการแก้ไขล่าสุดอย่างรวดเร็วและง่ายดาย
นี่เป็นทางออกที่ง่าย .. ฉันยุ่งกับเรื่องนี้สักครู่ ฉันควรชี้ให้เห็นว่านี่เป็นชุดคำสั่งเฉพาะที่ใช้ Android Studio และ AVD Emulator
1) เริ่มต้นโปรแกรมจำลองและเรียกใช้แอปของคุณ
2) ขณะที่แอปยังทำงานอยู่ให้เปิดการตรวจสอบอุปกรณ์ Android (อยู่ในแถบเครื่องมือถัดจากไอคอนผู้จัดการ AVD และ SDK)
3) คลิกที่แท็บ File Explorer ใน Device Monitor ควรมีโฟลเดอร์จำนวนมาก
4) นำทางเส้นทางต่อไปนี้: ข้อมูล> ข้อมูล> ชื่อแพคเกจของคุณ > ไฟล์> Default.Realm (หรืออะไรก็ตามที่คุณตั้งชื่อ)
อดีต หากคุณกำลังใช้หนึ่งในโครงการตัวอย่างของ realm พา ธ จะเป็นเช่น Data> Data> io.realm.examples.realmgridview> files> default.realm
5) ไฮไลต์ไฟล์คลิกที่ไอคอนฟลอปปี้ดิสก์ในพื้นที่ด้านขวาบน "ดึงไฟล์จากอุปกรณ์"
6) บันทึกลงในทุกที่ที่คุณต้องการและทำ
สิ่งที่ฉันทำคือการใช้
let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")
จากนั้นมันจะถูกสร้างขึ้นในมุมมองแบบเต็มบนเดสก์ท็อปของฉันและฉันสามารถดับเบิลคลิกเพื่อเปิด Realm Browser บน ต่อมาฉันสามารถลบพารามิเตอร์และปล่อยให้มันใช้ตำแหน่งเริ่มต้นเมื่อฉันพึงพอใจว่าทุกอย่างทำงานตามที่คาดไว้
วัตถุประสงค์ -C - [RLMRealmConfiguration defaultConfiguration].fileURL
NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);
Eg- / ผู้ใช้ / "ของคุณผู้ใช้ชื่อ" / Library / Developer / CoreSimulator / อุปกรณ์ / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / ข้อมูล / บรรจุภัณฑ์ / ข้อมูล / แอพลิเคชัน / E427BD21-2CB1-4F64-9ADF-8742FF731209 / เอกสาร /
นี่เป็นคำสั่งที่ง่ายที่สุดที่คุณสามารถเรียกใช้เพื่อให้ได้พา ธ ของคุณไปยังไฟล์. realm คุณจะเห็นไฟล์. realm หลังจากการดำเนินการอ่านและเขียนทั้งหมดเสร็จสมบูรณ์
หรือ
คุณสามารถเปิดโอเพนซอร์ซทางเลือกของซิมการ์ดเพื่อเข้าถึงไดเรกทอรีเอกสารของแอปโดยตรงจากแถบเมนูของคุณ
คำตอบข้างต้นไม่มีวิธีในการค้นหาไฟล์ realm ในแพลตฟอร์ม Android และเชื่อฉันด้วยวิธีนี้จะช่วยประหยัดเวลาของคุณได้มากซึ่งโดยทั่วไปเราเสียวิธีการอื่นในการรับไฟล์ realm เริ่มกันเลย ...
เปิด "Device File Explorer" เป็นครั้งแรกใน android studio (ดู -> เครื่องมือ Windows -> Device File Explorer
นี่จะเปิด explorer อุปกรณ์ของคุณ
ตอนนี้เปิดข้อมูล -> data -> (your_app_package_name) -> ไฟล์ -> default.realm
default.realmเป็นไฟล์ที่เราอยู่ที่นี่ ตอนนี้ Save_ เป็นไฟล์นี้ที่ตำแหน่งของคุณและเข้าถึงไฟล์จาก realm_browser และคุณจะได้รับฐานข้อมูลของคุณ
หมายเหตุ: วิธีการดังกล่าวได้รับการทดสอบบนโทรศัพท์ที่ไม่ได้รูท (หนึ่ง + 3)
หากคุณใช้ฐานข้อมูลเริ่มต้นในตัวจำลอง:
po Realm().configuration.fileURL
ชำระเงิน stetho และhttps://github.com/uPhyca/stetho-realm วิดีโอสอนที่นี่: https://www.youtube.com/watch?v=9pFJz5VexRw
ทั้ง:
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 สำหรับคำตอบเดิม
realm.path
ไปrealm.configuration.fileURL!.absoluteString
หากคุณได้รับข้อผิดพลาดกล่องโต้ตอบ 'ป้อนรหัสเข้ารหัส':
ฉันใช้ Swift 2.1 กับ Realm 0.96.2 และได้รับข้อผิดพลาดนี้เมื่อพยายามเปิดไฟล์ฐานข้อมูล:
ไม่สามารถเปิด 'เริ่มต้น' มันอาจถูกเข้ารหัสหรือไม่ได้อยู่ในรูปแบบไฟล์ที่ใช้งานร่วมกันได้ หากคุณรู้ว่าไฟล์นั้นถูกเข้ารหัสคุณสามารถป้อนรหัสการเข้ารหัสด้วยตนเองเพื่อเปิด
พบว่าการใช้ Realm Browser 0.96 รุ่นก่อนวางจำหน่ายแก้ไขปัญหาได้:
https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease
ครั้งแรกฉันรับทราบว่านี่เป็นเธรด 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 คลิกใหม่เลือก Run Shell Script วางรหัสเปลี่ยนชื่อ Realm Db คลิก Run เพื่อทดสอบบันทึกไฟล์ที่สะดวกสำหรับการเข้าถึงคลิกด่วน
ฉันไม่รู้ว่าฉันพบเคล็ดลับนี้ครั้งแรกที่ไหน แต่กระทู้นี้เตือนฉันว่าฉันเข้าถึงข้อมูลสดของฉันในอดีตได้อย่างไร
เพียงแค่แอพของคุณอยู่ใน iOS Simulator
เข้าสู่
console.log (Realm.defaultPath)
ในรหัสเช่น: App.js
ฉันก้าวไปอีกขั้นหนึ่งแล้ว ฉันสร้างไฟล์ swift ที่ชื่อว่า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 ของฉันบนเดสก์ท็อปและสามารถเปิดใน Realm Browser
sudo find / -name "*.realm"
ผมพบว่าไฟล์ราชอาณาจักรของเราโดยการออกคำสั่งนี้ในเทอร์มิ:
หวังว่านี่จะช่วยได้!
ในสวิฟท์
func getFilePath() -> URL? {
let realm = try! Realm()
return realm.configuration.fileURL
}
ในการรับเส้นทาง DB สำหรับ iOS วิธีที่ง่ายที่สุดคือ:
(lldb)
) และพิมพ์:po RLMRealm.defaultRealmPath
ธาดา ... คุณมีเส้นทางไปยังฐานข้อมูลอาณาจักรของคุณ
ที่ถูกต้อง (lldb) Realm.Configuration.defaultConfiguration.path
คำสั่ง:
สำหรับผู้ที่ใช้ React Native และใช้ขอบเขตเริ่มต้น:
Realm.defaultPath
componentDidMount() { console.log(Realm.defaultPath) }
ในส่วนของฉันโดยใช้ Realm ทำงานให้ฉัน ตรวจสอบคอนโซล xcode เพื่อหาเส้นทางในภายหลัง
ภายใต้เครื่องมือ -> การตรวจสอบอุปกรณ์ Android
และภายใต้ File Explorer ค้นหาแอพ และไฟล์นั้นอยู่ภายใต้ data / data
คำสั่ง lldb ที่ถูกต้องสำหรับ Xcode 7, Swift 2.2+ คือ po Realm.Configuration.defaultConfiguration.path!
path
แต่fileURL
: Realm.Configuration.defaultConfiguration.fileURL!
po Realm.Configuration.defaultConfiguration.fileURL?.path
โซลูชันของ Swift 2.3
วิธีแก้ปัญหาที่ง่ายกว่าที่จะไม่เกิดขึ้นกับการอัพเดตของ Realm
let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
print("App Path: \(dirPaths)")
ไฟล์. realm ควรอยู่ใน "Documents"