1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【swift5,CocoaPods】同じライブラリが2つinstallされてたら、最初からやり直しましょう

Posted at

#はじめに
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」が付いているファイルが出てくると思います。
スクリーンショット 2021-01-03 16.32.40.png
「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 installpod updateかに関わらず発生し得ます。

この不具合が起きてても、自身の開発環境では普通にビルドが通るので気付きにくいんですよね。
他人にプロジェクトを渡したときにはじめて気づくので、滅茶苦茶焦ると思います。

消して再インストールすれば簡単に治るので、落ち着いて処理しましょう。

###参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?