Edited at

【Tips】Xcodeのβ版を使用した際にCarthageでbuild済みのライブラリで出るエラー対応


導入

iOS12がそろそろリリースされますね!

そんな中、開発陣はiOS12向けにアプリを作り既存のコンテンツでiOS12だとエラーがあるのではないかチェックする工程はあるかと思います。

そこで、本記事ではβ版のXcodeを使用した際にCarthage経由で導入しているライブラリで表示されるエラーの解決方法を書いてみようと思います。

私的に今回対応することがあり今後iOSのバージョンが上がるたびに対応する必要がありそうだったので個人のメモとして纏めようと思いました。


概要

既存XcodeのSwiftVersionでBuildされたCharthage経由ライブラリをβ版のXcodeのSwiftVersionでBuildし直す方法について


Error内容

Module compiled with Swift 4.1.2 cannot be imported by the Swift 4.2 compiler

Swift4.1.2でコンパイルされているモジュールのため4.2のコンパイラではインポートできない

SwiftのVersion確認方法

Xcode.appの箇所をXcode-beta.appに変えて10(β6)のVersionを確認

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -v

XcodeVersion
SwiftVersion

9.1.2
4.1.2

10(β6)
4.2

Xcode9.1.2とXcode10(β6)では使っているSwiftVersionが異なることを確認


対応


方針

Buildで使うXcodeをXcode10(β6)に切り替えたのちCarthageで再Build


方法

1.Buildに使っているXcodeのpath確認

xcode-select -p

2. Buildに使っているXcodeを切り替える

sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer

3. CarthageでライブラリをBuildでライブラリをBuild

carthage update --platform iOS --no-use-binaries

4. ProjectをBuildしエラー表示が消えるか確認

※3ではBuildし直すので割と時間がかかります。(Cartfileで管理しているライブラリ数による)