2019年02月19日

[Unity] ビルドエラー(duplicate symbol _UnityAdsSetMetaData in:)とかの解決方法

Unity2018.2からUnity2018.3に上げ、プロジェクトもそれに合わせて
更新がかかって、エディターで問題なく動いたので、いざiPhoneで動かそうと
Xcodeのプロジェクトを吐いたところ、以下のビルドエラーが出てしまいました。

※長いので一部のみ抜粋
----------------------------------
duplicate symbol _UnityAdsSetMetaData in:
/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-adkzvnjbwnmurigbllxsqtzsreyi/Build/Intermediates.noindex/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/arm64/UnityAdsUnityWrapper-93c2ad48068dacbe184311ba522ef4791b259c6a734020a5be22b528a7e5696d.o
/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-adkzvnjbwnmurigbllxsqtzsreyi/Build/Intermediates.noindex/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/arm64/UnityAdsUnityWrapper-93c2ad48068dacbe184311ba522ef479f3f3b1a13002e9ef587ebcbda266a24e.o
----------------------------------

たぶん、「UnityAdsUnityWrapperの中身が重複してるよ」という事だと思います。
「duplicate symbol」という文言が入るとだいたいそう。

色々調べた結果、原因は、
「以前Asset StoreからインポートしたUnityAds」と「PackageManagerから
インポートしたUnityAds」で、「UnityAds.framework」が重複している

でした。

↓Pacage ManagerからインポートしたUnityAdsが入っている場所
unity_package_ads.png

Asset StoreからインポートしたUnityAdsは、
Assets > Plugins > iOS
の方に入っていました。
念のため、Assets配下にある「UnityAdsに関連するファイルを全て削除」しました。

この後、Unityから「置き換え(Replace)」でビルドしてXcodeプロジェクトを吐き出したところ、
無事Xcode側でもビルドが通りました。

Unityのデフォルト機能は、今後PackageManagerからインポートする様に統一しよう。。。
posted by be-style at 02:51| Comment(0) | Unity