LoginSignup
17
9

More than 3 years have passed since last update.

Xcode10.2にしたらCarthageでinstallしたライブラリがエラーになる

Last updated at Posted at 2019-09-13

なんだこれ

今日xcodeを10.1から10.2.1にあげたのですが、コンパイルが通らなくなったので忘却録で残します。

エラーメッセージは
image.png

で、google先生に翻訳をお願いすると
Swift 4.2.1でコンパイルされたモジュールは、Swift 5.0.1コンパイラーではインポートできません:・・・・
とのこと。

コンパイラが違うよ!ダメだよ!とのこと。いいじゃん別に!(ダメです)
なのでちゃんとどっちかに合わせる必要がありそうです。

コマンドラインに使うToolを確認

Xcode→preference→Locationsの
Command Line Toolsを合わせます。
image.png

Charthageでupdateの前に

じゃあ早速carthageをと行きたいところですが、その前にcarthageのバージョンを確認しましょう。

例えば普通に
sh
carthage update --platform iOS

と実行すると下のようなエラーになリました。

*** Downloading RxSwift.framework binary at "[4,5]"
***  Skipped installing RxSwift.framework binary due to the error:
    "Incompatible Swift version - framework was built with 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3) and the local version is 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5)."

    Falling back to building from the source

これはリモートブランチにあなたのxcodeで使えるバージョンのバイナリがないよ!!って言っています。
ので、こういう場合はローカルでビルドしてバイナリを作る必要がありますが、
Charthageのversion0.20からはSwiftのバージョンが異なる場合ビルドしてくれるそうです。👍(連打!!)

なので、Charthageをversion0.20以上にあげておきましょう。

Charthageでupdateだー

--no-use-binariesオプションを指定してあげると、できているバイナリを使わないでビルドし直してくれます。
👍(連打!!)

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

エラーなくなった!

終わりに

普段何気なく使ってるCarthageですが、versionで色々できることとか増えてるのでちゃんと調べないと駄目だなあと改めて実感しました。壁に当たって乗り越えて成長ですね。(よく当たるんですがw)

参考

大変おせわになりました。
https://qiita.com/kokoheia/items/7d3c2107d281316173be
https://doroidpanic.com/xcode10-2-10e125%E3%81%AB%E3%81%97%E3%81%9F%E3%82%89carthage%E3%81%A7incompatible-swift-version/

17
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
9