iOS 개발 기록

[Error] SDK is not supported by the compiler 본문

iOS/에러

[Error] SDK is not supported by the compiler

택꽁이 2023. 4. 7. 15:14
728x90
📄

Error

Failed to build module '\(SDK 이름)’; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51)', while this compiler is 'Apple Swift version 5.8 (swiftlang-5.8.0.124.2 clang-1403.0.22.11.100)'). Please select a toolchain which matches the SDK.

발생 상황

  • iPhone의 OS를 iOS 16.4로 업데이트 했더니 Xcode에서 지원 안하는 OS 버전이라 Xcode도 업데이트 해야했다.
  • Xcode 버전을 14.2에서 14.3으로 올렸더니 잘 쓰고 있던 라이브러리가 갑자기 수없이 많은 에러를 내뱉었다.

원인

  • Xcode 14.3으로 업데이트 되면서 Swift 5.8도 함께 릴리즈 되었다. 그러면서 기존의 라이브러리 컴파일러와 버전이 맞지 않아서 생기는 문제인것 같다.
  • 라이브러리 개발자라면 이에 대해 두가지 해결 방법이 있는 것 같다.
    • Swift 5.8 버전의 컴파일러로 만든 라이브러리를 재배포
    • 두번째가 더 나은 방법인 것 같지만 나는 라이브러리 개발자가 아니기 때문에 내가 선택할 수 있는 방법은 아니다.

해결

  • 에러에 보면 맞는 SDK에 맞는 ToolChain을 선택하라고 한다. 여기에서 Swift 5.7버전을 다운 받아서 설치하면 Xcode에 다음과 같이 Toolchains 항목이 생기는 것을 확인할 수 있다.

→ 안타깝게도 해당 방법으로 해결이 안된다. 시뮬레이터나 macOS에서는 잘 돌아가지만 실제 기기에 연결해서 빌드하려고 하면 다음과 같은 에러가 뜬다. 결국 삽질이었다.

  • 결국 해결방법은 애플 개발자 사이트에서 기존 버전 Xcode를 다운받는 수밖에 없다. 최신 버전과 기존버전 이 설치되어 있다면 기존 버전 Xcode에서도 최신 버전 iPhone이 지원이 되고, 최신 버전 Xcode에서도 기존 버전의 언어로 개발할 수 있다.

  • 최신 버전에서 기존 버전의 언어로 개발을 하려면 Xcode > Settings > Locations > Command Line Tools 에서 이전 버전의 Xcode를 선택하면 된다.

Reference

https://developer.apple.com/download/all/
Swift.org
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
https://www.swift.org/download/#releases
swift compiler version 바꾸기
가능?! 앱스토어에 올릴 앱을 만들 때는, release 버전의 Xcode만 쓸 수 있고, (베타는 안됨) 그 Xcode 버전에 맞는 tool chain만 쓸 수 있다. Xcode 7.2를 쓰면 무조건 Swift 2.1을 써야하고, Xcode 7.3을 쓰면 무조건 Swift 2.2를 써야한다는 말이다. 하지만, Xcode를 하나만 깔 수 있는건 아니다. 여러개 깔 수 있다!!! Xcode 옛날버전 다운받기 하지만 Xcode를 여러개 깔아두면, 열 때마다 Xcode 버전을 골라줘야한다는 단점이 있다. +) 앱스토어에 올릴 앱이 아니라면, .xctoolchain을 분리해서 다른 버전의 Xcode에서 쓸 수도 있게 할 수도 있겠지만..미지의 영역이라고 한다.
https://sweetdev.tistory.com/441

Uploaded by N2T