Carthageでライブラリを導入した際に嵌ってしまった。
備忘録も兼ねて記します。
clang: error: linker command failed with exit code 1 (use -v to see invocation)
下記記事を参考にCarthageでライブラリを導入していたが、コンパイル時に「clang: error: linker command failed with exit code 1 (use -v to see invocation)」という謎のエラーが出て、進めなくなった。
【Swift】Carthage導入手順 - Qiita
https://qiita.com/ShinokiRyosei/items/9b856ebdec5379b6c631
環境
- Xcode_10.1
手順通りにやっているはず・・・。😂
以下、手順通りに試したこと。
Linked Frameworks and Librariesにframeworkを追加
RunScriptを作成、スクリプトを追記、InputFilesにライブラリのディレクトリを指定
試したこと
- Carthageのバージョンを上げて導入し直す。➡︎直らない
- CleanBuild、再起動➡︎直らない
- ググって色々試す➡︎直らない
- 別のXcodeのバージョン(Xcode_10.2.1)でビルドしてみる➡︎成功!?🤔
解決策
Xcode>Preferences>Locations>Command Line Toolsで
利用しているXcodeのバージョンとCommand Line ToolsのXcodeのバージョンを合わせる。
※プルダウンできます。
プロジェクト名>Carthage>Buildの"Build"ディレクトリを削除する。
「$ carthage update --platform ios --no-use-binaries」でライブラリを入れ直す。
結果
直った🥳
結局、複数のXcodeのバージョンを保持しているがゆえに、Command Line Toolsのバージョンが合っていなくてCarthageでライブラリを導入していたのが原因?
教訓: XcodeのバージョンとCommandLineToolsのバージョンは揃える!
他にいい方法がありましたらアドバイスいただけると嬉しいです🙇🏽♀️
参考記事
・「clang: error: linker command failed with exit code 1」というエラーへの対処 - Action Script書きの日記
https://goodbyegirl1974.hatenadiary.org/entry/20120920/1348106337
・【swiftエラー】clang: error: linker command failed with exit code 1 (use -vto see invocation) - Qiita
https://qiita.com/miyamotok0105/items/8562964e58965f0abe16
・Xcode 8.3 でビルドした時に “The following binaries use incompatible versions of Swift:” のエラーが発生│U2Kの覚え書き
https://u2k772.blog.fc2.com/blog-entry-439.html