방금 Xcode에서 새로운 Swift 프로젝트를 만들었습니다. 사용중인 Swift의 버전이 궁금합니다.
Xcode 또는 터미널에서 프로젝트 내에서 사용중인 Swift 버전을 어떻게 확인할 수 있습니까?
방금 Xcode에서 새로운 Swift 프로젝트를 만들었습니다. 사용중인 Swift의 버전이 궁금합니다.
Xcode 또는 터미널에서 프로젝트 내에서 사용중인 Swift 버전을 어떻게 확인할 수 있습니까?
답변:
프로젝트 빌드 설정에는 Swift Language Version에 대한 정보를 키-값 형식으로 저장하는 'Swift Compiler-Languages'블록이 있습니다. Xcode 및 활성 버전에 사용할 수있는 (지원되는) Swift 언어 버전도 체크 표시로 표시합니다.
프로젝트 ► (프로젝트 대상 선택) ► 빌드 설정 ► (검색 막대에 'swift_version'을 입력하십시오.) Swift Compiler Language ► Swift Language Version ► 언어 목록을 클릭하여 엽니 다 (그리고 목록 중 하나에 체크 표시가 나타납니다) -항목, 현재 빠른 버전이 될 것입니다).
이해하기 쉽게이 스냅 샷을보십시오.
프로그래밍 방식으로 다음 코드를 사용하면 프로젝트에서 지원하는 Swift 버전을 찾을 수 있습니다.
#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
다음은 Playground를 사용한 결과입니다 ( Xcode 11.x 사용 ).
내가하는 일은 터미널에서 말합니다 :
$ xcrun swift -version
Xcode 6.3.2의 출력은 다음과 같습니다.
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
물론 그것은 xcrunXcode 사본을 올바르게 가리키고 있다고 가정 합니다. 나처럼 Xcode의 여러 버전을 저글링하는 경우 걱정할 수 있습니다! 그것이 맞는지 확인하려면
$ xcrun --find swift
Xcode의 경로를 살펴보십시오. 예를 들면 다음과 같습니다.
/Applications/Xcode.app/...
그것이 당신의 Xcode라면, 출력 -version은 정확합니다. 을 다시 지정해야하는 경우 xcrunXcode의 위치 환경 설정 패널에있는 명령 행 도구 팝업 메뉴를 사용하십시오.
xcode-select -pxcrun가 사용하고있는 엑스 코드의 경로를 인쇄 할 sudo xcode-select -s /path/to/Xcode.app을 변경할 수 있습니다.
Xcode 8.3부터는 대상이 사용하는 신속한 버전의 가치 Build Settings가있는 열쇠 Swift Language Version가 있습니다.
구형 Xcode의 경우이 솔루션을 사용하려면 터미널을 열고 다음 명령을 입력하십시오.
사례 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에서 swift 3.x를 기본 swift 버전으로 사용하더라도 Xcode 8에서 Xcode 8.2.x까지 swift 2.3을 사용할 수 있습니다. 신속한 2.3을 사용하려면 from 플래그 Use Legacy Swift Language Version를 켜면 XCode가 해당 프로젝트 대상에 Swift 2.3을 사용합니다.YESBuild Setting
Xcode가 사용하는 Swift 버전을보고 선택할 수 있습니다.
대상 -> 빌드 설정 -> Swift Language Version :
Xcode 8.3 및 Xcode 9에서 사용할 수 있습니다 (이전 버전은 확인하지 않았습니다)
Swift Language Version내 Xcode 8.2.1 프로젝트에서 설정으로 나타나지 않습니다. 있습니다 Use Legacy Swift Language Version.
Swift Language Version존재하지 않았습니다 Build Settings... Xcode 8.x 이전 버전 Use Legacy Swift Language Version에서는 No= Swift 3, Yes= Swift 2.3
이 레딧 게시물이 도움이되었습니다 : https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
Xcode 8은 Swift 3.0을 기본값으로 사용합니다. 그러나 Swift 2.3을 켤 수 있습니다. 프로젝트의 빌드 설정으로 이동하여 '레거시 스위프트 언어 버전 사용'을 예로 설정하십시오.
좋은 오래된 레딧 :)
시스템에 설치된 기본 버전의 swift를 보려면 명령 행에서 다음을 입력하십시오.
swift --version
Apple Swift 버전 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
대상 : x86_64-apple-darwin17.6.0
이것은 설치 한 Xcode의 앱 스토어 버전에 포함 된 버전 일 가능성이 높습니다 (변경하지 않은 경우).
Xcode의 특정 버전 (예 : 베타)에서 사용중인 Swift의 실제 버전을 확인하려면 명령 행에서 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
보너스 기여 : Jazzy 문서와 함께 사용할 깨끗한 문자열을 추출하기 위해 사용자 정의 node.js 스크립트를 사용하고 있습니다. 개발 프로세스에서 작업 할 수있는 장소를 찾을 수 있다면 이것을 사용할 수 있습니다.
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
물론 정규 표현식을 사용할 수도 있지만 원하는대로 수행하십시오.]