ios - Xcode 9 स्विफ्ट भाषा संस्करण(SWIFT_VERSION)




swift3 xcode9 (6)

मैंने हाल ही में xcode को संस्करण 9 में अपडेट किया है। इससे पहले कि Xcode 8.x में जब भी मैं pod update करने के लिए उपयोग करता हूं, तो यह मुझे कोड को स्विफ्ट 3 में बदलने और त्रुटियों को हल करने के लिए एक अपडेट कोड दिखाता है। लेकिन अब यह मुझे यह त्रुटि दे रहा है:

"स्विफ्ट भाषा संस्करण" (SWIFT_VERSION) बिल्ड सेटिंग को उन लक्ष्यों के लिए एक समर्थित मूल्य पर सेट किया जाना चाहिए जो स्विफ्ट का उपयोग करते हैं। यह सेटिंग बिल्ड सेटिंग्स एडिटर में सेट की जा सकती है।

इस त्रुटि के लिए मैंने Build Settings > Swift Language Version की कोशिश की है और यह स्विफ्ट 3.2 था लेकिन जैसा कि अपडेट कॉल में कुछ पॉड्स फिर से स्थापित किए गए हैं जैसे कि अल्मोफायर और यह कोड को स्विफ्ट 3 में बदलने के लिए Xcode 8.x स्थापित करने के लिए कहता है। क्या मुझे नवीनतम Xcode के साथ एक अतिरिक्त संस्करण स्थापित करने की आवश्यकता है? यदि हाँ, तो मैं Xcode 9 के साथ Xcode 8 कैसे स्थापित कर सकता हूँ?


यह समाधान तब काम करता है जब कुछ और काम नहीं करता है:

मैंने पूरी परियोजना को बदलने के लिए एक सप्ताह से अधिक समय बिताया और नीचे दिए गए समाधान पर आया:

सबसे पहले, प्रोजेक्ट से कोकोपोड्स निर्भरता को डी-इंटीग्रेट करें और फिर प्रोजेक्ट को नवीनतम स्विफ्ट संस्करण में परिवर्तित करना शुरू करें।

टर्मिनल में प्रोजेक्ट डायरेक्टरी पर जाएं और टाइप करें:

pod deintegrate

यह प्रोजेक्ट से कोकोपोड्स को डी-इंटीग्रेट करेगा और प्रोजेक्ट में कोकोआपॉड का कोई निशान नहीं छोड़ा जाएगा। लेकिन एक ही समय में, यह xcworkspace और पॉडफाइल्स को नष्ट नहीं करेगा। अगर वे मौजूद हैं तो ठीक है।

अब आपको xcodeproj (xcworkspace) नहीं खोलनी है और आपको बहुत सारी त्रुटियां मिलेंगी क्योंकि आपने अपने मुख्य प्रोजेक्ट्स में कोकोपोड्स निर्भरता विधियों को कॉल किया है।

तो उन त्रुटियों को दूर करने के लिए आपके पास दो विकल्प हैं:

  1. कोकोपोड्स लाइब्रेरी से आपके द्वारा उपयोग किए गए सभी कोड नीचे टिप्पणी करें।
  2. एक रैपर क्लास बनाएं जिसमें कोकोपीड्स लाइब्रेरी के समान डमी तरीके हों, और फिर उसे कॉल करें।

एक बार सभी त्रुटियां दूर हो जाने के बाद आप कोड को नवीनतम स्विफ्ट संस्करण में बदल सकते हैं।

कभी-कभी यदि आपको अजीब त्रुटियां हो रही हैं, तो व्युत्पन्न डेटा को साफ करने और फिर से प्रयास करें।


अपने मामले में, दो चेतावनी के अलावा बिल्ड सेटिंग्स में मैंने सीधे 2.x से 4.0 तक स्विफ्ट संस्करण को बदलने के बाद सभी चेतावनी गायब हो गई।

ये चेतावनी myprojectnameTests और myprojectnameUITests फ़ोल्डर से संबंधित है। मैंने ध्यान नहीं दिया और मुझे लगा कि इसका सीधा संबंध Xcode 7 से Xcode 9 तक है और मुझे लगा कि मैं इस समस्या को हल नहीं कर सकता और मुझे Xcode 8 संस्करण को याद रखना चाहिए।

मेरे मामले में, मैंने इन फ़ोल्डरों को हटा दिया और सभी चेतावनी गायब हो गई, लेकिन आप इस फ़ोल्डर को फिर से बना सकते हैं और इसमें इसका उपयोग कर सकते हैं:

file > new > target > (uitest or unittest extensions)

और परीक्षण मामलों को बनाने के लिए इस लेख का उपयोग करें: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html


मुझे Xcode 10 में एक नया Objective-C प्रोजेक्ट बनाने के बाद बस यही मिला, क्योंकि मैंने प्रोजेक्ट में एक कोर डेटा मॉडल फ़ाइल जोड़ी थी।

मुझे इसे ठीक करने के दो तरीके मिले:

  1. आसान तरीका: कोर डेटा मॉडल का फाइल इंस्पेक्टर ( ) - 1 ) खोलें और स्विफ्ट से ऑब्जेक्टिव-सी में भाषा बदलें

  1. लंबा और अधिक खतरनाक तरीका

इस लाइन के साथ मॉडल में एक "सामग्री" फ़ाइल है:

<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14460.32" systemVersion="17G5019" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">

इसमें एक sourceLanguage="Swift" प्रविष्टि है। इसे sourceLanguage="Objective-C" बदलें और त्रुटि दूर हो जाती है।

"सामग्री" फ़ाइल को खोजने के लिए, Xcode में .xcdatamodeld पर राइट क्लिक करें और "शो इन फाइंडर" करें। वास्तविक (खोजक) फ़ाइल पर राइट-क्लिक करें और "पैकेज सामग्री दिखाएँ" करें

भी: मॉडल की भाषा को बदलने से स्विफ्ट में प्रबंधित ऑब्जेक्ट सबक्लास फ़ाइलों को बनाने से Xcode बंद हो जाएगा।


मैं सिर्फ नवीनतम स्विफ्ट कन्वर्ट बटन पर क्लिक करता हूं और ऐप टारगेट बिल्ड सेटिंग सेट करता हूं-> स्विफ्ट भाषा संस्करण: स्विफ्ट 4.0,

आशा है कि यह मदद करेगा।


शायद आपको टूलचिन डाउनलोड करने की आवश्यकता है। यह त्रुटि तब होती है जब आपके पास स्विचर कंपाइलर का सही संस्करण नहीं होता है।


अपने प्रश्न का उत्तर दें:
आप Apple डाउनलोड पोर्टल से Xcode 8.x डाउनलोड कर सकते हैं या Xcode 8.3.3 डाउनलोड कर सकते हैं (या देखें: जहां Xcode का पुराना संस्करण डाउनलोड करना है ), यदि आपने प्रीमियम डेवलपर खाता (ऐप्पल आईडी) बनाया है। आप सिंगल (मैक) सिस्टम में Xcode 9 और Xcode 8.x दोनों के साथ इंस्टॉल और काम कर सकते हैं। (टर्मिनल के साथ काम करने के लिए Xcode के दोनों संस्करण का समर्थन करने वाले Command Line Tools सुनिश्चित करें (देखें: 'कमांड लाइन टूल' कैसे स्थापित करें ))

संकेत: अपने कोड Xcode 9 संगत स्विफ्ट संस्करणों को कैसे स्थानांतरित करें (3.2 या 4 स्विफ्ट)
Xcode 9 केवल Swift 3.0 से Swift 3.2/4.0 रूपांतरण / माइग्रेशन की अनुमति देता है। इसलिए यदि आपकी परियोजना की स्विफ्ट भाषा का वर्तमान संस्करण 3.0 से नीचे है, तो आपको अपना कोड स्विफ्ट 3 संगत संस्करण में एक्सपीटी 8. टी का उपयोग करके माइग्रेट करना होगा।

यह सामान्य त्रुटि संदेश है जो Xcode 9 दिखाता है कि यह प्रवासन के दौरान 3.0 से नीचे स्विफ्ट भाषा की पहचान करता है।


स्विफ्ट 3.2 Xcode 9 और Xcode 8 दोनों द्वारा समर्थित है।

प्रोजेक्ट Project (सेलेक्ट योर प्रोजेक्ट टारगेट) ► बिल्ड सेटिंग्स bar (सर्चबार में टाइप in स्विफ्ट) स्विफ्ट कंपाइलर भाषा ► स्विफ्ट भाषा संस्करण ► इसे खोलने के लिए भाषा सूची पर क्लिक करें।



Xcode 8 का उपयोग करके अपने स्रोत कोड को Swift 2.0 से 3.2 में बदलें और फिर Xcode 9 (Swift 3.2 या 4) के साथ जारी रखें।

अपने कोड के आसान माइग्रेशन के लिए, इन चरणों का पालन करें: (यह आपके Xcode टूल द्वारा समर्थित स्विफ्ट के नवीनतम संस्करण में परिवर्तित करने में आपकी सहायता करेगा)

Xcode: मेनू: वर्तमान स्विफ्ट सिंटैक्स में Syn गुप्त: संपादित करें





xcode9