Takahiro Octopress Blog

-1から始める情弱プログラミング

CocoaPods v1.6.0でハマる『linker Command Failed With Exit Code 1』エラーの対応

はじめに

今回はドハマリして解決に時間がかかった linker command failed with exit code 1 についての解決方法のメモです。

前提は、

  • Xcode10.1
  • CocoaPods のバージョンが v1.5.3 だったのを v1.6.0.rc1 にアップデートした

とします。

現象

Git上のConflictを解消しようと思っていたら、いつの間にかエラーが出るようになってしまっていました。
筆者の場合は RealmSwift を利用していたのですが、急に Realm に対して linker command failed with exit code 1 と表示されるようになっていました。

解決方法

筆者の場合、2段階でハマりました。

  1. CocoaPodssudoあり/なし 両方でインストールしてしまっていた
  2. v1.6.0.rc1 にアップデートしてしまっていた

CocoaPodsを重複してインストールしてしまった

恐らく試行錯誤している間に誤ってインストールしてしまったのだと思います。
CocoaPods の何かでハマった時に、 CocoaPods のバージョンを旧バージョンに下げるなどの記事が見つかったりしますが、
知らず知らずのうちに重複してインストールしていると正しくバージョン管理ができません。

よって怪しいなと思ったら、 CocoaPods を全てアンインストールしましょう。

1
2
$ gem uninstall cocoapods
$ sudo gem uninstall cocoapods

アンインストール後に pod --version を実行してバージョンが非表示であれば、全て削除できています。

v1.6.0.rc1にアップデートしてしまった

どうも v1.6.0.rc1 が悪さをしているようでしたので、下記手順を実行して解決しました。

  1. “pod deintegrate”
  2. “sudo gem install cocoapods-clean”
  3. “pod clean”
  4. Open the project and delete the “Pods” folder that should be red
  5. “pod setup”
  6. “pod install”

XCConfig files are not properly deintegrated from the user projectで同様に苦しんでいる方々がいたので、コメントに書かれた上記の解決策で解消できました。

まとめ

CocoaPods 系ってたまにドハマリして時間取られることがあるので、気をつけねば…
ということで本日はここまで。

Comments