導入
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で管理しているライブラリ数による)