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를 사용해 넣고 있는 라이브러리가 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 bootstrap --platform iOS --no-use-binaries
or
$ carthage update --platform iOS --no-use-binaries
Reference
이 문제에 관하여(Xcode8.1,Swift3.0.1의 Carthage 대응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hikarut/items/a9d652ce05aecdc925b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)