swift - Xcode 8 बीटा 3 लिगेसी स्विफ्ट समस्या का उपयोग करें




xcode8 xcode8-beta3 (13)

XCode 8 के बाद से, आप स्विफ्ट 2.3 का उपयोग कर सकते हैं, हालांकि XCode 8 स्विफ्ट 3.x का उपयोग डिफ़ॉल्ट स्विफ्ट संस्करण के रूप में करता है। स्विफ्ट 2.3 का उपयोग करने के लिए, बस फ्लैग का उपयोग करें बिल्ड सेटिंग से यस के लिए लिगेसी स्विफ्ट लैंग्वेज संस्करण का उपयोग करें, फिर एक्सकोड उस प्रोजेक्ट लक्ष्य के लिए स्विफ्ट 2.3 का उपयोग करेगा।

मेरे पास Xcode 8 Beta 3 में एक Objective-C प्रोजेक्ट है। अपडेट करने के बाद से, जब भी मैं बनाने की कोशिश करता हूं, मुझे निम्न त्रुटि प्राप्त होती है:

"उपयोग स्विफ्ट स्विफ्ट भाषा संस्करण" (SWIFT_VERSION) को स्विफ्ट का उपयोग करने वाले लक्ष्यों के लिए सही ढंग से कॉन्फ़िगर करने की आवश्यकता है। स्विफ्ट संस्करण को चुनने या बिल्ड सेटिंग को सीधे कॉन्फ़िगर करने के लिए बिल्ड सेटिंग्स संपादक का उपयोग करने के लिए [संपादित करें> कन्वर्ट> करंट स्विफ्ट सिंटैक्स…] मेनू का उपयोग करें।

क्या किसी ने इसका सामना किया है? चूंकि यह एक उद्देश्य-सी परियोजना है, इसलिए स्विफ्ट को कॉन्फ़िगर करने के लिए कोई बिल्ड सेटिंग नहीं है। मैंने यह भी सुनिश्चित किया है कि कोई भी परियोजना निर्भरता या कोकोआपोड्स स्विफ्ट का उपयोग नहीं कर रहे हैं। एकमात्र उपाय मेरे पास बीटा 2 का उपयोग करना है। किसी भी विचार मैं इस मुद्दे को कैसे ठीक कर सकता हूं?

मुझे यह भी उल्लेख करना चाहिए कि मैं OSX 10.12 बीटा 2 चला रहा हूं।


Xcode 9 बीटा में। प्रोजेक्ट सेटिंग्स पर जाएं, सेटिंग्स का निर्माण करें, स्विफ्ट भाषा संस्करण की खोज करें। यदि आप स्विफ्ट 3.2 या स्विफ्ट 4 का उपयोग कर रहे हैं तो Xcode 9 में आपको निर्दिष्ट करना होगा।


पॉडफाइल के अंत में नीचे कोड जोड़ें।

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['SWIFT_VERSION'] = '3.0'
    end
  end
end

प्रोजेक्ट के लिए प्रोजेक्ट बिल्ड सेटिंग पर जाएं और टारगेट दो से नीचे करें।

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
And
Swift Compiler - Version  = Swift 3

नवीनतम Swift 3 बदलें।

त्रुटि हल हो गई।

यदि यह आपकी त्रुटि को हल कर देता है, तो कृपया इसे पसंद करें।


मुझे बस इसे ठीक करने का एक तरीका मिला।

प्रोजेक्ट या लाइब्रेरी की बिल्ड सेटिंग्स पर जाएं और स्विफ्ट कंपाइलर वर्जन विशेषता "Unspecified से Yes या NO" लिगेसी स्विफ्ट लैंग्वेज वर्जन का उपयोग करें।


मुझे भी यही त्रुटि मिली। मैंने "Use Legacy Swift Language Version" की खोज करने की कोशिश की, लेकिन नहीं मिला। मैं Xcode 8.3.3 का उपयोग कर रहा हूं। बहुत अधिक सर्फिंग के बाद और चारों ओर काम करने पर मुझे यह समाधान मिला, और इसने मेरे लिए काम किया।

Here are the steps.
1=> select your target from Xcode
2=> go to build setting
3=> search for "Swift Language Version"
4=> change it to swift 3. (or accordingly.)

मेरा प्रोजेक्ट स्विफ्ट में लिखा है। fastlane साथ मुझे वही त्रुटि fastlane । जो हुआ वह मेरा Xcode ऑटो-अपडेट था इसलिए मुझे अपने प्रोजेक्ट को Swift 3.0 में अपडेट करना पड़ा। त्रुटियों का एक टन मिला। फिक्सिंग और डिबगिंग में बहुत अधिक समय लग रहा था और यह उस समय इसके लायक नहीं था इसलिए मैंने Xcode का एक पुराना संस्करण स्थापित करने का निर्णय लिया। मेरे कोड को 2.3 पर वापस ला दिया। तब fastlane beta अब काम नहीं कर रहा था। पता चला, मुझे कमांड लाइन टूल को 7.3 पर सेट करने की आवश्यकता है।


मेरे मामले में मेरे पास सिर्फ निम्नलिखित बातें हैं

प्रोजेक्ट लक्ष्य चुनें>> बिल्ड सेटिंग पर जाएं => "स्विफ्ट भाषा संस्करण" के लिए खोजें => वर्तमान स्विफ्ट संस्करण को मान दें

यह सब मेरा मुद्दा तय हो गया है


मैं इसी मुद्दे पर चल रहा था और निम्न कार्य करके इसे हल किया था:

प्रोजेक्ट में> सेटिंग बनाएँ:

Always Embed Swift Standard Libraries = $(inherited) Use Legacy Swift Language Version = YES

फिर मेरे पॉडफाइल में:

config.build_settings['SWIFT_VERSION'] = '3.0'

इन तीन सेटिंग्स का उपयोग करके सभी चेतावनियों को हटा दिया और मुझे ठीक से संकलन करने की अनुमति दी।

सबसे अस्पष्ट और जिसे वास्तव में संकलन के लिए प्रगति मिली, वह यहां सुझाए गए अनुसार 3 से 3.0 तक पॉडफाइल में SWIFT_VERSION बदल रहा था।


मैं एक ऐसी परियोजना पर काम कर रहा हूं जिसमें मिश्रित उद्देश्य-सी और स्विफ्ट कोड है जो मैंने पहले स्विफ्ट संस्करण 2.3 का उपयोग किया था और स्विफ्ट 3 में अपग्रेड करने के बाद मैं प्रोजेक्ट का निर्माण करने में असमर्थ था। Xcode ने उल्लेखित त्रुटि संदेश के साथ शिकायत की।

जाहिर है, अभी भी मेरी परियोजना में निर्दिष्ट कुछ पुराने स्विफ्ट संस्करण थे। पीपीएक्सएक्सप्रोज फाइल। वहाँ तेजी से 3.0.1 निर्दिष्ट किया गया था:

SWIFT_VERSION = 3.0.1;

जबकि, मैंने पहले से ही 3.0.2 स्थापित किया था:

$ xcrun swift -version
Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
Target: x86_64-apple-macosx10.9

Sooo, मैंने प्रोजेक्ट-pbxproj फ़ाइल में स्विफ़्ट संस्करण को बदलकर इसे ठीक कर दिया है:

SWIFT_VERSION = 3.0;

लगता है कि पैच लेवल वर्जन स्पेसिफिक भी विशिष्ट था।


यदि आप Xcode 8 या उसके बाद का उपयोग कर रहे हैं

  1. बिल्ड सेटिंग्स पर जाएं
  2. उपयोग लीगेसी स्विफ्ट भाषा संस्करण का पता लगाएं
  3. हां - स्विफ्ट 2.3
  4. नहीं - स्विफ्ट 3.0

यदि आप अपने प्रोजेक्ट में स्विफ्ट के पुराने संस्करण का उपयोग कर रहे हैं या किसी स्विफ्ट 3rd पार्टी में "लिगेसी स्विफ्ट लैंग्वेज संस्करण" का उपयोग "YES" पर करें। "नहीं" यदि आपकी परियोजना वर्तमान स्विफ्ट संस्करण को अपटूडेट करती है। यदि आप अपने स्विफ्ट संस्करण को कॉन्फ़िगर नहीं करते हैं, तो हर अपडेट और इंस्टॉल के बाद, पॉड फ्रेमवर्क को यह निर्दिष्ट करने की आवश्यकता होती है।


यह समस्या Xcode-8.1 में भी दिखाई देती है। जब हम एक्सटेंशन या विजेट जैसे नए टारगेट को जोड़ते हैं और थर्ड पार्टी लाइब्रेरी कोकोपोड्स की मदद से नए टारगेट में एकीकृत होती है। पॉड स्थापित करने के बाद। हम ऊपर के रूप में एक ही त्रुटि का सामना कर सकते हैं।

प्रत्येक लाइब्रेरी बिल्ड सेटिंग में उपयोग करें लिगेसी स्विफ्ट भाषा संस्करण बदलें

नहीं





xcode8-beta3