मैंने अभी Xcode के भीतर एक नई Swift परियोजना बनाई है। मैं सोच रहा हूँ कि स्विफ्ट का कौन सा संस्करण इसका उपयोग कर रहा है।
मैं Xcode या टर्मिनल में कैसे देख सकता हूं, मैं अपने प्रोजेक्ट के अंदर स्विफ्ट का कौन सा संस्करण उपयोग कर रहा हूं?
मैंने अभी Xcode के भीतर एक नई Swift परियोजना बनाई है। मैं सोच रहा हूँ कि स्विफ्ट का कौन सा संस्करण इसका उपयोग कर रहा है।
मैं Xcode या टर्मिनल में कैसे देख सकता हूं, मैं अपने प्रोजेक्ट के अंदर स्विफ्ट का कौन सा संस्करण उपयोग कर रहा हूं?
जवाबों:
प्रोजेक्ट बिल्ड सेटिंग्स में एक ब्लॉक 'स्विफ्ट कंपाइलर - लैंग्वेज' होता है, जो की-वैल्यू फॉर्मेट में स्विफ्ट लैंग्वेज वर्जन के बारे में जानकारी स्टोर करता है। यह आपको अपने Xcode के लिए उपलब्ध (समर्थित) स्विफ्ट लैंग्वेज संस्करण और टिक मार्क द्वारा सक्रिय संस्करण भी दिखाएगा।
प्रोजेक्ट Project (सेलेक्ट योर प्रोजेक्ट टारगेट) ► बिल्ड सेटिंग्स Search (सर्च बार में टाइप v स्विफ्ट_वर्सन) स्विफ्ट कंपाइलर भाषा ift स्विफ्ट लैंग्वेज वर्जन ► इसे खोलने के लिए भाषा सूची पर क्लिक करें (और सूची में से किसी एक पर टिक मार्क होगा। -item, यह वर्तमान स्विफ्ट संस्करण होगा)।
आसान समझने के लिए इस स्नैपशॉट को देखें:
निम्नलिखित कोड की मदद से, प्रोग्रामेटिक रूप से आप अपने प्रोजेक्ट द्वारा समर्थित स्विफ्ट संस्करण पा सकते हैं।
#if swift(>=5.2)
print("Hello, Swift 5.2")
#elseif swift(>=5.1)
print("Hello, Swift 5.1")
#elseif swift(>=5.0)
print("Hello, Swift 5.0")
#elseif swift(>=4.2)
print("Hello, Swift 4.2")
#elseif swift(>=4.1)
print("Hello, Swift 4.1")
#elseif swift(>=4.0)
print("Hello, Swift 4.0")
#elseif swift(>=3.2)
print("Hello, Swift 3.2")
#elseif swift(>=3.0)
print("Hello, Swift 3.0")
#elseif swift(>=2.2)
print("Hello, Swift 2.2")
#elseif swift(>=2.1)
print("Hello, Swift 2.1")
#elseif swift(>=2.0)
print("Hello, Swift 2.0")
#elseif swift(>=1.2)
print("Hello, Swift 1.2")
#elseif swift(>=1.1)
print("Hello, Swift 1.1")
#elseif swift(>=1.0)
print("Hello, Swift 1.0")
#endif
यहां प्लेग्राउंड ( Xcode 11.x के साथ ) का उपयोग करने का परिणाम है
मैं टर्मिनल में क्या कहता हूं:
$ xcrun swift -version
Xcode 6.3.2 के लिए आउटपुट है:
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
बेशक, यह मान लेता है कि आपका xcrun
Xcode की आपकी कॉपी पर सही ढंग से इशारा कर रहा है। अगर, मेरी तरह, आप Xcode के कई संस्करणों को टटोल रहे हैं, तो यह एक चिंता का विषय हो सकता है! यह सुनिश्चित करने के लिए कि यह है, कहो
$ xcrun --find swift
और Xcode के पथ को देखें जो यह आपको दिखाता है। उदाहरण के लिए:
/Applications/Xcode.app/...
अगर वह आपका Xcode है, तो आउटपुट से -version
सटीक है। यदि आपको पुन: निर्माण करने की आवश्यकता है xcrun
, तो Xcode के स्थान वरीयता फलक में कमांड लाइन टूल पॉप-अप मेनू का उपयोग करें।
xcode-select -p
उस Xcode का पथ प्रिंट करने के लिए भी उपयोग कर सकते हैं जिसे xcrun उपयोग करेगा, और sudo xcode-select -s /path/to/Xcode.app
इसे बदलने के लिए।
Xcode 8.3 से आगे Build Settings
की ओर Swift Language Version
आपके द्वारा उपयोग किए जा रहे स्विफ्ट संस्करण के मान के साथ कुंजी है।
पुराने Xcodes के लिए इस समाधान का उपयोग करें, टर्मिनल खोलें और निम्न कमांड टाइप करें
केस 1: आपने केवल एक Xcode ऐप इंस्टॉल किया है
swift -version
केस 2: आपने कई एक्सकोड एप इंस्टॉल किए हैं
स्विच active developer directory
(बदलें Xcode_7.3.app
से अपने Xcode एप्लिकेशन फ़ाइल नाम के साथ आदेश के बाद से आवेदन जिसके लिए आप तेजी से संस्करण की जांच करना चाहते निर्देशिका)
sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
फिर
swift -version
नोट: Xcode 8 से Xcode 8.2.x तक आप स्विफ्ट 2.3 का उपयोग कर सकते हैं, हालांकि Xcode 8 डिफ़ॉल्ट स्विफ्ट संस्करण के रूप में स्विफ्ट 3.x का उपयोग करता है। उपयोग तेजी से 2.3 के लिए, बस ध्वज को चालू Use Legacy Swift Language Version
करने के लिए YES
से Build Setting
और XCode है कि परियोजना के लक्ष्य के लिए स्विफ्ट 2.3 का प्रयोग करेंगे।
आप देख सकते हैं और चुन सकते हैं कि स्विफ्ट संस्करण Xcode किसका उपयोग कर रहा है:
लक्ष्य -> बिल्ड सेटिंग्स -> स्विफ्ट भाषा संस्करण :
यह Xcode 8.3 और Xcode 9 में उपलब्ध है (पुराने संस्करणों की जाँच नहीं की गई है)
Swift Language Version
मेरे Xcode 8.2.1 प्रोजेक्ट में सेटिंग के रूप में नहीं आता है। यह करता है Use Legacy Swift Language Version
।
Swift Language Version
यहाँ मौजूद नहीं था Build Settings
Xcode 8.3 तक .... पूर्व Xcode 8.x संस्करणों में Use Legacy Swift Language Version
, No
= स्विफ्ट 3, और Yes
= स्विफ्ट 2.3
इस Reddit पोस्ट ने मेरी मदद की: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
Xcode 8 डिफ़ॉल्ट रूप में स्विफ्ट 3.0 का उपयोग करता है। लेकिन आप स्विफ्ट 2.3 को चालू कर सकते हैं। प्रोजेक्ट की बिल्ड सेटिंग्स पर जाएं और 'यूज़ लिगेसी स्विफ्ट लैंग्वेज वर्जन' को YES पर सेट करें।
अच्छा पुराना रेडिट :)
अपनी मशीन पर स्थापित कमांड लाइन से स्विफ्ट के डिफ़ॉल्ट संस्करण को देखने के लिए, निम्न टाइप करें:
swift --version
Apple स्विफ्ट संस्करण 4.1.2 (स्विफ्टलैंग -902.0.54 क्लैंग -902.0.39.2)
लक्ष्य: x86_64-apple-darwin17.6.0
यह सबसे अधिक संभावना है कि संस्करण जो आपके द्वारा इंस्टॉल किए गए Xcode के ऐप स्टोर संस्करण में शामिल है (जब तक कि आपने इसे बदल नहीं दिया है)।
यदि आप Xcode (उदाहरण के लिए एक बीटा, उदाहरण के लिए) के किसी विशेष संस्करण द्वारा उपयोग किए जा रहे स्विफ्ट के वास्तविक संस्करण को निर्धारित करना चाहते हैं, तो कमांड लाइन से, Xcode बंडल के भीतर स्विफ्ट बाइनरी को आमंत्रित करें और इसे पैरामीटर पास करें --version
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
Apple स्विफ्ट संस्करण 4.2 (स्विफ्टलैंग -1000.0.16.7 क्लैंग -1000.10.25.3)
लक्ष्य: x86_64-apple-darwin17.6.0
/usr/bin/swiftc --version
बोनस योगदान: मैं Jazzy प्रलेखन के साथ उपयोग के लिए एक साफ स्ट्रिंग निकालने के लिए एक कस्टम नोड .js स्क्रिप्ट का उपयोग कर रहा हूं। अगर आपको इसे अपनी देव प्रक्रिया में काम करने के लिए जगह मिल सकती है, तो आपको इसका कुछ उपयोग मिल सकता है:
बैश स्क्रिप्ट से मंगाई गई:
#!/bin/bash
swiftversion=$(node SwiftVerSlicer.js "${xcrun swift -version}");
echo $swiftversion
SwiftVerSlicer.js:
// begin script
const inputString = `${process.argv[2]}`
let searchTerm = (inputString.indexOf('(') - 1)//-1 cause whitespace
let version = inputString.slice(0,searchTerm)
console.log(version)
// end script
तुम भी regex का उपयोग कर सकते हैं, लेकिन आप जो कुछ भी पसंद करते हैं:]