ฉันเพิ่งสร้างโครงการ Swift ใหม่ภายใน Xcode ฉันสงสัยว่า Swift รุ่นใดที่ใช้
ฉันจะดูได้อย่างไรใน Xcode หรือเทอร์มินัลฉันใช้ Swift รุ่นใดในโครงการของฉัน
ฉันเพิ่งสร้างโครงการ Swift ใหม่ภายใน Xcode ฉันสงสัยว่า Swift รุ่นใดที่ใช้
ฉันจะดูได้อย่างไรใน Xcode หรือเทอร์มินัลฉันใช้ Swift รุ่นใดในโครงการของฉัน
คำตอบ:
การตั้งค่าการสร้างโครงการมีบล็อก 'Swift Compiler - Languages' ซึ่งเก็บข้อมูลเกี่ยวกับ Swift Language Version ในรูปแบบคีย์ - ค่า มันจะแสดงให้คุณเห็นทั้งหมดที่มีอยู่ (ได้รับการสนับสนุน) เวอร์ชั่นภาษา Swift สำหรับ Xcode ของคุณและรุ่นที่ใช้งานด้วยเครื่องหมายถูก
โครงการ► (เลือกเป้าหมายโครงการของคุณ) ►สร้างการตั้งค่า► (พิมพ์ 'swift_version' ในแถบค้นหา) Swift Compiler Language ► Swift Language Version ►คลิกที่รายการภาษาเพื่อเปิด (และจะมีเครื่องหมายถูกที่รายการใดรายการหนึ่ง) - รายการนั้นจะเป็นเวอร์ชั่นที่รวดเร็วปัจจุบัน)
ดูภาพรวมนี้เพื่อความเข้าใจง่าย:
ด้วยความช่วยเหลือของรหัสต่อไปนี้โดยทางโปรแกรมคุณสามารถค้นหา Swift version ที่โครงการของคุณรองรับ
#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
เปลี่ยนได้
เปิด Terminal และเขียน:
swift -version
ตั้งแต่ Xcode 8.3 ขึ้นไปBuild Settings
มีรหัสที่Swift Language Version
มีค่าเป็น swift ที่เป้าหมายของคุณใช้
สำหรับ Xcodes รุ่นเก่าให้ใช้วิธีนี้เปิดเทอร์มินัลแล้วพิมพ์คำสั่งต่อไปนี้
กรณีที่ 1: คุณติดตั้งแอป Xcode เพียงแอปเดียว
swift -version
กรณีที่ 2: คุณได้ติดตั้งแอป Xcode หลายตัว
สลับ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 คุณสามารถใช้ swift 2.3 ได้แม้ว่า Xcode 8 จะใช้ swift 3.x เป็นเวอร์ชัน swift เริ่มต้น หากต้องการใช้งานที่รวดเร็ว 2.3 เพียงแค่เปิดธงUse Legacy Swift Language Version
ไปYES
จากBuild Setting
และ XCode จะใช้สวิฟท์ 2.3 เป้าหมายโครงการที่
คุณสามารถดูและเลือก Xcode เวอร์ชัน Swift ที่ใช้ใน:
เป้าหมาย -> การตั้งค่าการสร้าง -> เวอร์ชันภาษา Swift :
มีให้ใน 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 ใช้ Swift 3.0 เป็นค่าเริ่มต้น แต่คุณสามารถเปิดใช้ Swift 2.3 ได้ ไปที่การตั้งค่า Build ของโครงการและตั้งค่า 'Use Legacy Swift Language Version' เป็น YES
Reddit เก่าดี :)
หากต้องการดูรุ่นเริ่มต้นของ swift ที่ติดตั้งบนเครื่องของคุณจากบรรทัดคำสั่งให้พิมพ์ดังต่อไปนี้:
swift --version
Apple Swift เวอร์ชัน 4.1.2 (clift-902.0.54 clang-902.0.39.2)
เป้าหมาย: x86_64-apple-darwin17.6.0
นี่น่าจะเป็นเวอร์ชั่นที่รวมอยู่ในเวอร์ชัน Xcode ของ app store ที่คุณติดตั้ง (ยกเว้นว่าคุณได้ทำการเปลี่ยนแปลง)
หากคุณต้องการกำหนดเวอร์ชันจริงของ Swift ที่ใช้โดย Xcode (เบต้าเป็นต้น) จากบรรทัดคำสั่งให้เรียกใช้ swift binary ภายในชุด Xcode แล้วส่งพารามิเตอร์ --version
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
Apple Swift เวอร์ชัน 4.2 (swiftlang-1000.0.16.7 clang-1000.10.25.3)
เป้าหมาย: x86_64-apple-darwin17.6.0
/usr/bin/swiftc --version
ฉันใช้ Swift จาก Google Colab นี่คือวิธีการตรวจสอบใน Colab
!/swift/toolchain/usr/bin/swift --version
ผลที่ได้คือ 5.0-dev
การมีส่วนร่วมโบนัส: ฉันใช้สคริปต์ node.js ที่กำหนดเองเพื่อแยกสตริงที่สะอาดสำหรับใช้กับเอกสาร Jazzy คุณอาจได้รับประโยชน์จากสิ่งนี้หากคุณสามารถหาสถานที่ทำงานในกระบวนการพัฒนาของคุณ:
เรียกใช้จากสคริปต์ Bash:
#!/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 แน่นอน แต่ทำสิ่งที่คุณต้องการ:]
เพียงแค่ป้อนคำสั่ง swift ในเทอร์มินัลมันจะแสดงเวอร์ชันขณะที่เข้าสู่คอนโซล Swift (บางอย่างเช่นด้านล่าง)
System-IOSs-MacBook-Air:~ system$ swift
Welcome to Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7).
Type :help for assistance.