Xcode8.1,Swift3.0.1의 Carthage 대응

개요



최근 Xcode8에서 Xcode8.1에 올려 Swift의 버전도 3.0에서 3.0.1에 올랐습니다. Xcode8,Swift3.0에서는 문제 없었던 것이 Xcode8.1,Swift3.0.1에 준 것으로 Carthage에서 넣고 있는 라이브러리가 일부 에러가 되었으므로 해결 방법을 가볍게 정리합니다.

오류: Module compiled with swift 3.0 cannot be imported in Swift 3.0.1



이 오류가 발생했습니다.
Carthage를 사용해 넣고 있는 라이브러리가 Swift3.0.1에 대응되어 있지 않은 것일까라고 생각해,
라이브러리 작성자에게 issue에서도 던질까라고 생각했습니다만, 아무래도 그 필요는 없을 것 같습니다.

대응 방법



원인으로서는 읽은 대로로, Swift3.0으로 컴파일 된 모듈 때문에 Swift3.0.1에서는 움직이지 않는다고 하는 것입니다.
그래서 로컬 3.0.1 환경에서 라이브러리를 컴파일 해주면 해결하는 것 같습니다.
$ carthage bootstrap --platform iOS --no-use-binaries
or 
$ carthage update --platform iOS --no-use-binaries
--no-use-binaries 는 빌드된 바이너리의 다운로드를 하지 않고, 반드시 로컬로 빌드 시키려는 옵션인 것 같습니다.
그래서 이 옵션을 넣어 로컬 Swift3.0.1의 환경에서 빌드 시키면 괜찮은 것 같습니다.

이 후 clean하고 빌드하면 무사히 빌드 지나갔습니다

참고


  • Carthage에 대해 알고 싶은 n 개의 것
  • Module compiled with swift 3.0 cannot be imported in Swift 3.0.1
  • 좋은 웹페이지 즐겨찾기