2011-01-10 6 views
7

मुझे अपने आईफोन ऐप में किसी समस्या को समझने का प्रयास करने में कठिनाई हो रही है।आईफोन सिम्युलेटर के अंदर ओपन एसक्लाइट डेटाबेस फ़ाइल?

मेरे पास मेरे स्क्लाइट डेटाबेस में एक सेट विधि है जो ऐसा लगता है कि यह ठीक काम कर रहा है। मैं एक NSLog करता हूं जब मैं मूल्य निर्धारित कर रहा हूं और यह सही है। यह "2010-10-10 12:13:14" मान के साथ एक स्ट्रिंग है।

जब मैं एक ही डेटा पर प्राप्त विधि का उपयोग करता हूं, तो यह पता चला है कि मान सही नहीं है। यह 1.

क्या आईफोन सिम्युलेटर के अंदर डेटाबेस फ़ाइल खोलने का कोई तरीका है, इसलिए मैं देख सकता हूं कि सिम्युलेटर डेटाबेस में संग्रहीत वास्तविक डेटा क्या है?

क्या मेरे सिम्युलेटर और वास्तविक फ़ाइल के बीच स्क्लाइट कॉल को स्नीफ करने का कोई तरीका है? चार्ल्स, या सेवा कैप्चर की तरह कुछ?

बहुत धन्यवाद!

+1

संभावित डुप्लिकेट [आईफोन एप्लिकेशन में चल रहे SQLite फ़ाइल में डेटा को कैसे देखें?] (Http://stackoverflow.com/questions/4644158/how-to-view-the-data -इन-SQLite-फ़ाइल-चल-इन-iphone-आवेदन) –

उत्तर

22

आप डेटाबेस आपने बनाया है को देखना चाहते हैं, तो

ओपन खोजक -> प्रेस शिफ्ट + कमान + जी -> "~/लाइब्रेरी/एप्लिकेशन समर्थन/आईफोन सिम्युलेटर "तो जाओ।

ओपन 5.0 (सिम्युलेटर के अपने संस्करण के अनुसार) -> अनुप्रयोग> का चयन करें PGM फ़ोल्डर

-> दस्तावेज़

enter image description here

तो फिर तुम डेटाबेस देख सकते हैं

enter image description here

5

6.1 सिम्युलेटर के लिए, स्थान अलग है। पर

प्रारंभ:

~/Library/Application Support/iPhone Simulator/6.1/Applications/ 

फ़ोल्डर खोलें है कि आपके सिम्युलेटर पर आवेदन का प्रतिनिधित्व करता है। नाम इस समान दिखेगा:

0951F670-1DAC-9A39-450A-B8EEFFC0FFE1 

आप एक से अधिक फ़ोल्डर है, तो आप प्रत्येक फ़ोल्डर में क्लिक करें और अनुप्रयोग आइकन देखें आप अनुप्रयोग है कि आप देख रहे हैं लगता है जब तक कर सकते हैं। वैकल्पिक रूप से, सिम्युलेटर से अन्य सभी ऐप्स अनइंस्टॉल करें, जिसमें आप रुचि रखते हैं।

इस फ़ोल्डर के अंदर से, यहां जाएं:

Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite 

कुल पथ इस तरह दिखना चाहिए:

~/Library/Application Support/iPhone Simulator/6.1/Applications/<APP_ID>/Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite 
11

आईओएस 8 के बाद से वे एक अलग फ़ोल्डर में रख:

Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/

Check this answer for more info

3
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSLog(@"path is %@",documentsDirectory); 

उपर्युक्त कोड आपके डेटाबेस के पथ को प्रिंट करेगा और इसकी प्रतिलिपि करेगा। खोजक पर जाएं और मेनू से फ़ोल्डर में जाएं (शिफ्ट + विन + जी) और यहां पथ पेस्ट करें, यह आपको कोर डेटा फ़ाइल का सटीक पथ देगा। इस खिड़की को खुला रखें।

अगला चरण मोज़िला फ़ायरफ़ॉक्स पर जाएं मेनूबार पर क्लिक करें टूल्स -> SQLite प्रबंधक। यह नई खिड़की खुल जाएगा। नई विंडो में खुली फ़ाइल पर क्लिक करें और वर्तमान विंडो में coredata फ़ाइल के उस पथ को खींचें और खुले पर क्लिक करें।

नोट - आपने अपने मोज़िला फ़ायरफ़ॉक्स में SQLite प्रबंधक स्थापित किया होगा।

2

अद्यतन: मैं इस

Android और iOS के लिए दोनों

स्वचालित करने के लिए एक उपकरण है, it's available here


पुराना सवाल बना है, लेकिन एप्पल तर्क बदल रखने के लिए लग रहे हैं ...

पर मैकोज़ सिएरा आप निम्न आदेश जारी करके डेटाबेस स्थान पा सकते हैं (सिम्युलेटर प्रक्रिया के दौरान चलाना चाहिए!)

ps aux | grep 'CoreSimulator/Devices' 
अब पाया सिम्युलेटर फ़ोल्डर में

/Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/data/var/run/launchd_bootstrap.plist 

नेविगेट:

परिणाम सिम्युलेटर के लिए पथ में सूचीबद्ध करना चाहिए, उदाहरण के लिए

cd /Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/Data/Application/ 

यह फ़ोल्डर सभी सिम्युलेटर अनुप्रयोग शामिल करता

यहां से यदि आप डेटाबेस नाम जानते हैं, तो बस इसे ढूंढें, जैसे:

find ./ -type f -name 'my_db.db’ 

और व्हायोला! आपके पास डेटाबेस पथ है :)

संबंधित मुद्दे