2015-04-19 11 views
11

हमारे आईओएस ऐप में हम [NSFileManager containerURLForSecurityApplicationGroupIdentifier:] विधि का उपयोग करके, हमारे मुख्य आईओएस ऐप और इसके एक्सटेंशन (विशेष रूप से वॉचकिट एक्सटेंशन) के बीच फ़ाइलों को साझा करने के लिए एक साझा कंटेनर का उपयोग करते हैं। डीबगिंग उद्देश्यों के लिए हम इस साझा कंटेनर की सामग्री का उपयोग करने की जरूरत है, तो हम Xcode में डिवाइस विंडो का उपयोग कर पूरे ऐप्लिकेशन कंटेनर निर्यात करने की कोशिश की है:Xcode6.2 के साथ आईओएस ऐप के साझा कंटेनर को कैसे निर्यात करें?

Screenshot from Xcode

लेकिन, साझा भंडारण में शामिल नहीं है कंटेनर, शायद क्योंकि यह डिवाइस पर एक अलग रास्ते में बैठता है।

प्रश्न यह है कि यदि हम भी संभव हो तो साझा कंटेनर कैसे प्राप्त कर सकते हैं?

उत्तर

2

मैं अपने स्थानीय SQLite डेटाबेस के लिए पथ कंसोल में प्रिंट आउट के लिए इस कोड का उपयोग कर रहा:

NSString *groupContainer = [[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.myapp.mycontainer"] path]; 
NSString *sqlitePath = [NSString stringWithFormat:@"%@/Database.sqlite", groupContainer]; 
NSURL *url = [NSURL fileURLWithPath:sqlitePath]; 

मैं तो कॉपी और खोजक में स्ट्रिंग पेस्ट -> तो मैं करने के लिए सीधे जाने के लिए जाओ फ़ोल्डर। यह सिम्युलेटर में ठीक काम करता है लेकिन मुझे नहीं लगता कि आप अपने मैक से अपने आईफोन के साझा कंटेनर समूह तक पहुंच सकते हैं।

+1

धन्यवाद @ बालेस्ट्रापैट्रिक, मुझे सिम्युलेटर समाधान के बारे में पता है, लेकिन हमें बीटा टेस्टर डिवाइस से वास्तविक तथ्य लॉग क्रंचिंग के लिए वास्तविक उपकरणों के लिए समाधान की आवश्यकता है। –

0

मुझे मिला सबसे अच्छा समाधान आपके डिवाइस का बैकअप बना रहा है और फिर बैकअप का पता लगाने के लिए iExplorer का उपयोग कर रहा है। AppDomainGroup-* फ़ोल्डर्स का गुच्छा है। हालांकि किसी कारण से सभी फ़ाइलों का बैक अप नहीं लिया गया है (शायद बैकअप के दौरान फ़ाइलों को अनदेखा करने के लिए लागू सेटिंग्स की वजह से)।

1

अपने डेटा को समूह कंटेनर से दस्तावेज़ निर्देशिका में कॉपी करें। फिर एक्सकोड का उपयोग कर ऐप कंटेनर डाउनलोड करें।

NSFileManager.defaultManager().copyItemAtURL(url, toURL: NSURL.fileURLWithPath(AppDelegate.applicationUserDirectory())) 

यूआरएल यहाँ NSFileManager के समारोह

func containerURL(forSecurityApplicationGroupIdentifier groupIdentifier: String) -> URL? 
+0

आपके चर यहां यूआरएल, यह एक वास्तविक डीबी i.e. के डिफ़ॉल्ट स्थान तक पहुंचने का प्रयास कर रहा है, जो पैकेज सामग्री दिखाने के बाद दस्तावेज़ों के अंतर्गत दिखाई दे रहा है? – user2363025

+0

@ user2363025 आप कंटेनर की सभी सामग्री को दस्तावेज़ निर्देशिका में कॉपी कर सकते हैं और फिर चुनें कि आप क्या देखना चाहते हैं। – Vishun

6

मैं WWDC पर Xcode टीम के सदस्यों द्वारा बताया गया है कि इस लेखन के समय में संभव (नहीं है नीचे का उपयोग कर, Xcode 7.3 & 8 प्राप्त किया जा सकता बीटा 1)। मैंने radar दायर किया है, जिसे मैं सभी को डुप्ली या टिप्पणी करने की सलाह देता हूं ताकि हम इस कार्यक्षमता को प्राप्त कर सकें।

+1

इसके बारे में कोई अद्यतन? – Rygen

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

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