#はじめに
CocoaPods
にて、既にライブラリが入ってる状態で、更にライブラリを追加すると遭遇しうる不具合です。
(筆者は既にFireBase
系のライブラリが入っている状態にて、2回遭遇しました。)
Error文としては35 duplicate symbols for architecture x86_64
とかが出ると思います。
解消方法だけ知りたい場合は「解決策」まで飛ばしてください。
#筆者の遭遇した状況
開発初期に、ターミナルから以下のライブラリを導入。
pod 'IQKeyboardManagerSwift'
pod 'Firebase/Analytics'
pod 'Firebase/Auth'
pod 'Firebase/Firestore'
pod 'Alamofire'
###1回目の遭遇
ターミナルにてpod update
を実行した直後。
提出先より「ビルドできない」との連絡があり発覚。
###2回目の遭遇
アプリにオンボーディングを実装するため、
pod 'Onboard'
を導入。
pod install
後前回の不具合を思い出し、Pods
ファイルを確認したところ発覚。
#エラーの原因
当該プロジェクトのPods
ファイルを確認してみると、画像のように名前の後ろに「2」が付いているファイルが出てくると思います。
「2」が付いているファイルが1つ2つならまだしも、ご覧の通り滅茶苦茶ありますね。
これが今回のErrorの原因です。
#解決策
1つ1つダブっているファイルを消していくやり方だと、面倒な上にエラーが起きます。
単純ですが、pod install
からやり直しましょう。
###手順① プロジェクトにアクセス
Finderやターミナルを使ってプロジェクトにアクセスしましょう。
####※バックアップを取っておくのも忘れずに
プロジェクトの上で右クリック。「”(アプリ名)”を圧縮」を選んでzip
形式のバックアップをとっておきましょう。
Githubなどの管理ツールを使ってる方は、そちらででもいいですね。
###手順② 「Podfile.lock
」と「Pods
」を削除
プロジェクト下にある「Podfile.lock
」と「Pods
」のみ削除しましょう。
なお、Podfile
は消さないように注意。
もし消しちゃったらゴミ箱から漁って戻すか、ターミナルでpod init
して再作成しましょう。
###手順③ ライブラリを再インストール
ターミナルを開いて、プロジェクト下に移動してからpod install
。
ライブラリの再インストールが始まるので、終わったらxcworkspace
から開いて完了です。
#最後に
このエラーは、同プロジェクトに対する2回目のライブラリ導入が、pod install
かpod update
かに関わらず発生し得ます。
この不具合が起きてても、自身の開発環境では普通にビルドが通るので気付きにくいんですよね。
他人にプロジェクトを渡したときにはじめて気づくので、滅茶苦茶焦ると思います。
消して再インストールすれば簡単に治るので、落ち着いて処理しましょう。
###参考文献