WatchKit ऐप्स में iOS 8.2(8.3) के बराबर परिनियोजन लक्ष्य होना चाहिए?




apple-watch xcode6.3 (5)

6.4 में आश्चर्यजनक रूप से अभी भी सच ;-)

सभी लक्ष्य 8.2 पर सेट होने चाहिए

मैंने अभी अभी Xcode 6.3 Beta 4 को डाउनलोड किया है, और मेरा WatchKit ऐप अब एक त्रुटि के साथ बनाने में विफल है:

Embedded Binary Validation Utility Error
error: WatchKit apps must have a deployment target equal to iOS 8.2 (was 8.3)

IOS ऐप और प्रोजेक्ट में वास्तव में 7.1 का परिनियोजन लक्ष्य होता है और हमेशा होता है, लेकिन हम Xcode 6.3 बीटा 1, 2 और 3 का उपयोग किए बिना अपने वॉचकीट घटक (स्विफ्ट 1.2 का उपयोग करके) के लिए iOS 8.3 SDK के साथ काम कर रहे हैं। त्रुटि केवल Xcode 6.3 बीटा 4 के साथ उत्पन्न हुई।

किसी और की यह त्रुटि है, और इसे ठीक करना जानते हैं?


Xcode 7.3.1 के साथ सिम्युलेटर में एक ही समस्या का सामना करना पड़ा और इसे ऐप वॉच पर जाकर हल कर सकते हैं, फिर वॉच ओएस परिनियोजन लक्ष्य पर जाएं, वहां आप अपनी घड़ी के आधार पर निचले संस्करण को चुन सकते हैं। यदि यह मदद करता है तो।


इस में खुद भाग गया। Xcode 6.3 बीटा 4 में एक बग की तरह लगता है।

मैंने एक WatchKit एक्सटेंशन के साथ नए सिरे से बनाई गई परियोजना के प्रोजेक्ट। Pbxproj फ़ाइल (पाठ दृश्य में) का विश्लेषण किया। ऐसा लगता है कि कोई सेटिंग है:

IPHONEOS_DEPLOYMENT_TARGET = 8.2;

... जो पहले के एक्सकोड संस्करणों के साथ बनाई गई हमारी परियोजनाओं से गायब है।

इसलिए मैंने अपने प्रोजेक्ट के डिबग और रिलीज़ कॉन्फ़िगरेशन में मैन्युअल रूप से इस सेटिंग की प्रतिलिपि बनाई। यह त्रुटि दूर हो गई।

मुझे तब अपने ऐप और वॉचकट ऐप लक्ष्य के बीच एक संस्करण बेमेल के बारे में एक और त्रुटि मिली। इस संस्करण को ठीक करने से बेमेल ने निर्माण को साफ और ठीक चलाने के लिए अनुमति दी।

मुझे पता है कि यह थोड़ा हैकेसी है, लेकिन मुझे लगता है कि यह अपेक्षाकृत सुरक्षित है।

"_WatchKit_Extension" फ़ाइल के माध्यम से खोज करते समय, आप इस खोज शब्द के विरुद्ध मिलान करना चाहेंगे: "_WatchKit_Extension" । यह उस क्षेत्र की पहचान करना चाहिए जहां नया निर्देश जोड़ा जाना चाहिए।

Apple मंचों में चर्चा धागा:

https://devforums.apple.com/thread/266033?tstart=0

एक ताजा परियोजना से अंश:

4F9F32751AC2024F00673D86 /* Debug */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                GCC_PREPROCESSOR_DEFINITIONS = (
                    "DEBUG=1",
                    "$(inherited)",
                );
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Debug;
        };
        4F9F32761AC2024F00673D86 /* Release */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Release;
        };

मैं एक ही समस्या का सामना कर रहा था " iOS Deployment Target '8.3' is newer thatn SDK 'iOS 8.2' in target YUOR_PROJECT WatchKit Extension "

यहाँ इस मुद्दे का सरल समाधान है। आप .xcodeproj से लक्ष्य बदल सकते हैं, बस नीचे दिए गए चरणों का पालन करें:

  1. अपनी परियोजना या प्लिस्ट फाइल में कोई बदलाव करें (बिल्ड / संस्करण बदलें),
  2. अपनी संशोधित परियोजना फ़ाइल का चयन करें
  3. '8.3' (कमांड + एफ) का पता लगाएं और इसे 8.2 के साथ बदलें।
  4. मैंने संदर्भ के लिए फ़ाइल संलग्न की है।

बस।

अगर आपको मेरी जैसी ही समस्या है तो यह आपकी मदद करेगा।


लक्ष्य पर जाएं -> वॉच किट ऐप चुनें, तैनाती परिवर्तन मूल्य के तहत 8.3 से

//: कॉन्फ़िगरेशन = डीबग IPHONEOS_DEPLOYMENT_TARGET = 8.2

//: कॉन्फ़िगरेशन = रिलीज़ IPHONEOS_DEPLOYMENT_TARGET = 8.2

साफ और निर्माण। समस्या सुलझ गयी!







xcode6.3