🔥 Swift 도구 버전 설정하기

416자
5분

Swift 패키지 매니저를 사용할 때는 Swift 도구 버전(tools version)을 설정하는 게 정말 중요해요. Swift 도구 버전은 패키지를 사용하는 데 필요한 Swift 도구의 최소 버전을 알려주고, Package.swift 파일에서 사용해야 하는 PackageDescription API 버전과 Package.swift 파일을 읽는 데 사용해야 하는 Swift 언어 호환성 버전도 정해줍니다.

패키지가 필요로 하는 다른 패키지를 찾을 때, 보통 선택되는 다른 패키지 버전이 현재 사용 중인 버전보다 높은 Swift 도구 버전을 요구하면 그 패키지 버전은 사용할 수 없는 걸로 간주되고, 그 다음으로 적합한 버전을 찾아봅니다. 만약 현재 사용 중인 Swift 도구 버전을 지원하는 패키지 버전이 하나도 없으면 오류가 발생해요.

Swift 도구 버전 지정하기

Swift 도구 버전은 Package.swift 파일의 첫 번째 줄에 있는 특별한 주석으로 지정합니다. 도구 버전을 지정하려면 Package.swift 파일은 // swift-tools-version: 문자열로 시작해야 하고, 그 뒤에 버전 번호가 와야 해요.

버전 번호는 시맨틱 버전 2.0에서 정의한 규칙을 따르며, 패치 버전은 생략 가능하고 생략하면 0으로 간주됩니다. semver 규칙은 선택적으로 사전 릴리스 버전이나 빌드 버전도 허용하는데, 현재 패지지 매니저는 이런 부분은 완전히 무시해요.
버전 번호 뒤에는 선택적으로 ; 문자가 올 수 있어요. 이 문자와 첫 번째 줄 끝까지의 내용은 현재 버전의 패지지 매니저에서는 무시되지만, 나중에 나올 패지지 매니저에서 사용하도록 남겨둔 거예요.

몇 가지 예를 들면 이렇습니다:

// swift-tools-version:3.1
// swift-tools-version:3.0.2
// swift-tools-version:4.0
swift

보시다시피 Swift 도구 버전을 지정하는 방법은 아주 간단해요. 첫 번째 줄에 // swift-tools-version: 주석을 쓰고 원하는 버전 번호를 적으면 끝!

Swift 도구 버전 명령어

Swift 패키지 매니저에는 다음과 같은 Swift 도구 버전 명령어가 있어요:

  • 패키지 도구 버전 알아보기:
$ swift package tools-version
shell
  • 패키지 도구 버전을 현재 사용 중인 도구 버전으로 설정하기:
$ swift package tools-version --set-current
shell
  • 도구 버전을 원하는 값으로 설정하기:
$ swift package tools-version --set <value>
shell

터미널에서 위 명령어를 사용하면 패키지 Swift 도구 버전을 쉽게 관리할 수 있어요. 가령 현재 프로젝트에서 사용 중인 Swift 도구 버전을 확인하려면 이렇게 하면 돼요:

$ swift package tools-version
3.1.0
shell

만약 패키지 Swift 도구 버전을 현재 사용 중인 버전으로 업데이트하고 싶다면, --set-current 옵션을 사용하세요:

$ swift package tools-version --set-current
$ swift package tools-version
5.5.0
shell

그러면 Package.swift 파일의 첫 번째 줄이 다음과 같이 바뀝니다:

// swift-tools-version:5.5
swift

특정 버전으로 Swift 도구 버전을 설정하고 싶다면 --set 옵션 뒤에 원하는 버전을 써주세요:

$ swift package tools-version --set 4.2.1
$ swift package tools-version
4.2.1
shell

그러면 Package.swift 파일의 첫 번째 줄이 이렇게 변경될 거예요:

// swift-tools-version:4.2.1
swift

이렇게 Swift 패키지 매니저가 제공하는 명령어를 사용하면 패키지 Swift 도구 버전을 쉽게 관리할 수 있어요. 프로젝트에 맞는 적절한 Swift 도구 버전을 설정하는 게 중요하니까, 프로젝트 시작할 때 꼭 한 번 확인해 보세요!