はじめに
今回はドハマリして解決に時間がかかった linker command failed with exit code 1 についての解決方法のメモです。
前提は、
Xcode10.1CocoaPodsのバージョンがv1.5.3だったのをv1.6.0.rc1にアップデートした
とします。
現象
Git上のConflictを解消しようと思っていたら、いつの間にかエラーが出るようになってしまっていました。
筆者の場合は RealmSwift を利用していたのですが、急に Realm に対して linker command failed with exit code 1 と表示されるようになっていました。
解決方法
筆者の場合、2段階でハマりました。
CocoaPodsがsudoあり/なし両方でインストールしてしまっていたv1.6.0.rc1にアップデートしてしまっていた
CocoaPodsを重複してインストールしてしまった
恐らく試行錯誤している間に誤ってインストールしてしまったのだと思います。
CocoaPods の何かでハマった時に、 CocoaPods のバージョンを旧バージョンに下げるなどの記事が見つかったりしますが、
知らず知らずのうちに重複してインストールしていると正しくバージョン管理ができません。
よって怪しいなと思ったら、 CocoaPods を全てアンインストールしましょう。
1 2 | |
アンインストール後に pod --version を実行してバージョンが非表示であれば、全て削除できています。
v1.6.0.rc1にアップデートしてしまった
どうも v1.6.0.rc1 が悪さをしているようでしたので、下記手順を実行して解決しました。
- “pod deintegrate”
- “sudo gem install cocoapods-clean”
- “pod clean”
- Open the project and delete the “Pods” folder that should be red
- “pod setup”
- “pod install”
XCConfig files are not properly deintegrated from the user projectで同様に苦しんでいる方々がいたので、コメントに書かれた上記の解決策で解消できました。
まとめ
CocoaPods 系ってたまにドハマリして時間取られることがあるので、気をつけねば…
ということで本日はここまで。