LoginSignup
20
14

More than 5 years have passed since last update.

【メモ】Xcode9ビルドでCarthage経由で導入したライブラリに関してswift version errorが発生

Last updated at Posted at 2017-07-22

はじめに

xcode9でビルドを行おうとしたところ、carthageで導入しているライブラリに関して以下のエラーがでました。

Module compiled with Swift 3.0.1 cannot be imported in Swift 3.2

解消までに少々ハマったので、備忘録がてら原因と解決方法を記載いたします。

検証環境

以下の環境を使用しています。

  • macOS Sierra Version 10.12.5
  • Xcode Version 9.0.0 β3
  • Xcode Version 8.3.2 (異なるversionのxcodeを入れています)
  • iPhone7 iOS11.0.0 β3

原因

carthageでライブラリを導入する際に使用する以下のコマンドでxcode buildが内部的に行われますが、ここで使用されているXcodeがXcode8.3.2であることが原因でした。

carthage update --platform iOS

解決方法

以下の手順で解決しました。

  1. Xcode build で使用しているXcodeのpath確認

    • xcode-select -p
    • 出力例 /Applications/Xcode.app/Contents/Developer
  2. 使用するXcodeのパス変更

    • sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
    • root権限が必要とされるので、sudoで実行しています。
  3. 再度、Xcode build で使用しているXcodeのpath確認

    • xcode-select -pで指定したものに変わっていればOK
    • /Applications/Xcode-beta.app/Contents/Developer
  4. ライブラリ再ビルド前の準備

    • projectのderived dataを削除
    • 削除したderived dataをゴミ箱から削除
  5. carthageでライブラリをビルド

    • carthage update --platform iOS --no-use-binaries
  6. projectのビルドを実施

上記手順で、carthageでライブラリをビルドする際のxcodeとしてXcode-betaが使用されますので、Xcode9で対象プロジェクトのビルドができるようになります。
※ Xcode-betaとしているところはご自身で使用されているXcodeの名前と合わせてください。

20
14
4

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
20
14