2015-09-18 9 views
7

पर अलग-अलग परिणाम देता है मैंने डिफ़ॉल्ट एक्सकोड टेम्पलेट के साथ वॉचकिट एप्लिकेशन बनाया है। मैंने वॉचकिट ऐप लक्ष्य और वॉचकिट ऐप एक्सटेंशन लक्ष्य में आईओएस लक्ष्य के लिए ऐप समूह एंटाइटेलमेंट जोड़ा। (इस एप्लिकेशन को समूह का नाम है: group.com.lombax.fiveminutes) फिर , मैं दोनों iOS एप्लिकेशन और WatchKit एक्सटेंशन के साथ साझा किए गए फ़ोल्डर यूआरएल पहुँचने का प्रयास किया:containerURLForSecurityAplicationGroupIdentifier: आईफोन और घड़ी सिम्युलेटर

एक्सटेंशन:

@implementation ExtensionDelegate 

- (void)applicationDidFinishLaunching { 
    // Perform any final initialization of your application. 
    NSURL *test = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.lombax.fiveminutes"]; 
} 

iOS एप्लिकेशन:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 

    NSURL *test = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.lombax.fiveminutes"]; 
// ... 
} 

हालांकि, test NSURL अलग है:

iOS पर:

file: /// उपयोगकर्ताओं/Lombardo/Library/डेवलपर/CoreSimulator/उपकरण/38B983DB-342F-4A47-8C26-5D2C92CDB666/डेटा/कंटेनर/साझा/AppGroup/8DEE182E-AFE6-47DD-BA2B-6B0520158A8B/

घड़ी पर

:

file: /// उपयोगकर्ताओं/Lombardo/Library/डेवलपर/CoreSimulator/उपकरण/BF52D613-25FF-4092-A5B2-9C3F1B616160/डेटा/कंटेनर/साझा/AppGroup/सीईसीबी 5 ईएफसी -7 एफबीडी -4 सी 84-ए 878-1314 सीबी 7 सीएफ 211/

और इस कारण से मैं आईओएस ऐप और वॉचकिट एक्सटेंशन के बीच डेटा साझा करने में असमर्थ हूं।

मैं एक असली डिवाइस पर कोशिश कर सकता हूं क्योंकि मेरे पास मेरे ऐप्पल वॉच पर वॉचोज़ 2.0 नहीं है। कोई सलाह?

  • स्थापित WatchOS 2, समस्या अभी भी वास्तविक उपकरणों पर बनी रहती है: धन्यवाद

    अद्यतन मैं कुछ अन्य परीक्षण किया था।

    NSURL * @ "फ़ाइल:

यह मेरी iPhone के लिए दुकान यूआरएल है /// निजी/var/मोबाइल/कंटेनर/साझा/AppGroup/3D05D159-94D6-409C-9A38 -90E0830D0C3F/FiveMinutes.sqlite "

और ये मेरे घड़ी के लिए दुकान यूआरएल है:

NSURL * @" file: /// निजी ई/var/मोबाइल/कंटेनर/साझा/AppGroup/F1E89377-F456-4FC2-BAAC-3DD705EF381A/FiveMinutes.sqlite "

दो क्षुधा पढ़ता है और करने के लिए से दो अलग अलग .sqlite फ़ाइलें लिखने।

  • सिम्युलेटर पर, अगर मैं कड़ी मेहनत से कोड URL में से एक है, दोनों आईओएस सिम्युलेटर और घड़ी सिम्युलेटर ही .sqlite फ़ाइल को पढ़ने-लिखने और सामग्री साझा करने में सक्षम हैं। बहरहाल, यह वास्तविक उपकरणों पर संभव नहीं है के बाद से घड़ी विस्तार आईओएस पथ के लिए नहीं लिख सकता:

यूआरएल: file: /// निजी/var/मोबाइल/कंटेनर/साझा/AppGroup/3D05D159-94D6 -40 9 सी -9 ए 38-90E0830D0C3F/FiveMinutes.sqlite विकल्प: (शून्य) ... त्रुटि लौटा त्रुटि डोमेन = NSCocoaErrorDomain कोड = 512 "फ़ाइल सहेजी नहीं जा सका।" UserInfo = {कारण = फ़ाइल बनाने में विफल; कोड = 2} userInfo शब्दकोश के साथ { कारण = "फ़ाइल बनाने में विफल; कोड = 2"; }

+0

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

+0

हां, मैंने फ़ाइलों को लिखने की कोशिश की और उन्हें अलग-अलग स्थानों पर रखा गया, आईओएस घड़ी फ़ाइल तक नहीं पहुंच सकता है और आईओएस फाइल तक नहीं पहुंच सकता है। मैंने आईओएस ऐप, घड़ी ऐप और घड़ी एक्सटेंशन में एंटाइटेलमेंट जोड़ा। एंटाइटेलमेंट को ठीक जोड़ा जाना प्रतीत होता है, क्योंकि अगर मैं कुछ अलग करने के लिए एंटाइटेलमेंट स्ट्रिंग बदलता हूं तो वापस लौटाए गए NSURL शून्य हो जाते हैं – LombaX

उत्तर

12

ठीक है, मुझे लगता है कि मुझे मेरा जवाब मिल गया है। मुझे याद आया कि वॉच ओएस 2 में संक्रमण के साथ एक्सटेंशन कोड अब ऐप्पल वॉच पर सीधे निष्पादित किया गया है, और युग्मित आईफोन पर और नहीं। तो यह स्पष्ट प्रतीत होता है कि दो डिवाइस समान भंडारण साझा नहीं करते हैं।

पहली बात मैंने एक आईओएस प्रोजेक्ट से शुरू होने वाली एक नई परियोजना बनाने के लिए किया था, और उसके बाद वॉच ओएस 1 (पुराना संस्करण) ऐप टार्गेट जोड़ना था। इस मामले में, निर्देशिका समान थे और वे बातचीत कर सकता:

घड़ी पथ: file: /// उपयोगकर्ताओं/Lombardo/Library/डेवलपर/CoreSimulator/उपकरण/BF52D613-25FF-4092-A5B2-9C3F1B616160/डेटा/कंटेनर/साझा/AppGroup/30B39103-CEEB-4C64-9531-FB27DC40180D/

आईओएस पथ file: /// उपयोगकर्ताओं/Lombardo/Library/डेवलपर/CoreSimulator/उपकरण/BF52D613-25FF-4092-A5B2-9C3F1B616160/डेटा/कंटेनर/साझा/AppGroup/30B39103-CEEB-4C64-9531-FB27DC40180D/

फिर, मैं पहली बात यह है कि हर प्रोग्रामर किया जाना चाहिए करें: दस्तावेज़ पढ़ें।

आपका एक्सटेंशन अब एप्पल घड़ी फ़ाइलें और डेटा संग्रहीत करता है: WatchOS 2 संक्रमण गाइड के पहले पृष्ठ में इस वाक्य है। कोई भी डेटा जो आपके वॉच ऐप या वॉचकिट एक्सटेंशन बंडल का हिस्सा नहीं है, उसे नेटवर्क से या उपयोगकर्ता के आईफोन पर चल रहे साथी आईओएस ऐप से लाया जाना चाहिए। आप अपने आईओएस ऐप के साथ फाइलों का आदान-प्रदान करने के लिए किसी साझा समूह कंटेनर पर भरोसा नहीं कर सकते हैं। फाइलों को लाने में उन्हें ऐप्पल वॉच को वायरलेस रूप से स्थानांतरित करना शामिल है।

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