見出し画像

duplicate symbols for architecture arm64の解決策

どうも、マカロンです。

今回は超久しぶりに技術記事書いていきます。

僕は日頃からXcodeと仲があまり良くないのですが、久しぶりに喧嘩したので皆様が今後喧嘩になった時のお役に立てれば幸いです。

それではいきましょう1



エラーの種類

さて、

【A】duplicate symbols for architecture arm64(本文)
【A】アーキテクチャarm64のシンボルが重複している(翻訳)

というエラーですが、【A】の数値が低いものであればAdmobPodfileなどのファイルが重複してしまっているなどの一部データが重複してる可能性があります。

これに関しては既に記事が出回っているのでそちらをご確認ください。

しかし【A】が4,5桁になっている場合、プロジェクト全体がXCode側の不具合で重複している可能性があります。(あなたは100%悪くないです)

というわけでこの記事では後者に紹介した場合の解決策を書いていきます。



本題

2022年10月9日に追記です。
元々は「最終手段」の項目で紹介している方法で解決していたのですが、
その手法だとSorting Layerだとが初期化されて再設定が面倒
根本的な問題を解決したわけではなかったので今回新たに追記します。

以下解決方法となります。

1.LibraryのPackageCacheとPackageManager以外のフォルダを削除
2.Unityプロジェクト再起動
3.ビルドで解決

原因はLibraryフォルダ内のファイルの重複です。
〇〇.a 2 などのファイルが何万と生成されており、それをXcode君は

「こんだけ被ったフォルダ見つけたよ!どこで被ったかは教えないけどw」

って感じでエラーを出してくれます。

また、PackageCacheとPackageManagerを削除しない理由は
これを削除するとPackageManagerdeでインスストールしたアセットなどの情報が消えてエラー祭りになり、さらに大変なことになるためです。

念の為、元のLibraryフォルダをどこかにコピーしてこの手法で解決しなくても元の状態に戻せる体制で検証することをお勧めします。




                                                                                                                     PR




最終手段

上記で解決しなかった場合の最終手段としてこの方法は載せているので
あまり推奨はしませんが確実にエラーからは解放されます。

解決方法はシンプルです。

1.エラーが発生してしまうUnityプロジェクトをエクスポート
2.Unityの新しいプロジェクトを作成
3.そのプロジェクトにエクスポートしたデータをインポート

以上です。

今回の問題はファイルの重複ですので、新規プロジェクトにデータを移動してしまえばまっさらな場所にデータが入った状態になり重複しようがなくなります。

今回のエラーは何も中身を変えていない状態でもBuildデータの上書きや更新のタイミングで重複してしまう可能性があるように感じるので、このエラーの発生自体を防ぐにはUnityおよびXcodeの改善待ちですね。




                                                                                                                        PR




最後に

今回はXcodeのエラーの解決策を紹介しましたが、過去にXcodeを使わずにiOSビルドをするやり方も紹介していますので気になる方はそちらもぜひご確認いただけると嬉しいです。

それではまた!!!


ゲームを作るにはやはりお金がないとできることが限られてしまいます。なのでよろしければどうか支援してくださるとうれしいです