Help us understand the problem. What is going on with this article?

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)

スクリーンショット 2019-06-28 15.07.56.png

下記記事を参考に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を追加

スクリーンショット 2019-06-28 14.58.39.png

RunScriptを作成、スクリプトを追記、InputFilesにライブラリのディレクトリを指定

スクリーンショット 2019-06-28 14.58.21.png

試したこと

  • Carthageのバージョンを上げて導入し直す。➡︎直らない
  • CleanBuild、再起動➡︎直らない
  • ググって色々試す➡︎直らない
  • 別のXcodeのバージョン(Xcode_10.2.1)でビルドしてみる➡︎成功!?🤔

解決策

  1. Xcode>Preferences>Locations>Command Line Toolsで
    利用しているXcodeのバージョンとCommand Line ToolsのXcodeのバージョンを合わせる。
    ※プルダウンできます。
    スクリーンショット 2019-07-02 20.42.41.png

  2. プロジェクト名>Carthage>Buildの"Build"ディレクトリを削除する。

  3. 「$ 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

snt-nbzw
iOS Developer / Swift / Objective-C
https://hyaku-juu-ichi.hatenablog.com/
caraquri
ネイティブモバイルアプリの開発を強みとする港区の開発会社。
https://caraquri.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした