我用的是Unity 2019.3.2f1,更新UnityAds到3.4.4后,出现了一些错误。
duplicate symbol '_NetworkChange' in:
/Users/Desktop/UnityAdsTest/ios/Libraries/libiPhone-lib.a(SSRVConnectivityMonitor.o)
/Users/Desktop/UnityAdsTest/ios/Frameworks/Plugins/iOS/UnityAds.framework/UnityAds(UnityAds)
duplicate symbol '_kChinaIsoAlpha2Code' in:
/Users/Desktop/UnityAdsTest/ios/Libraries/libiPhone-lib.a(SSRVSdkProperties.o)
/Users/Desktop/UnityAdsTest/ios/Frameworks/Plugins/iOS/UnityAds.framework/UnityAds(UnityAds)
duplicate symbol '_kChinaIsoAlpha3Code' in:
/Users/Desktop/UnityAdsTest/ios/Libraries/libiPhone-lib.a(SSRVSdkProperties.o)
/Users/Desktop/UnityAdsTest/ios/Frameworks/Plugins/iOS/UnityAds.framework/UnityAds(UnityAds)
ld: 3 duplicate symbols for architecture arm64
我已经尝试创建新的项目,问题依然存在。重复方法。
我没有启用UnityAds服务器,XCode中只有一个UnityAds.framework文件。看起来有些内容被打包到libiPhone-lib.a中了。
有人遇到过同样的问题吗?
我通过删除UnityAds.framework中的3个符号解决了这个问题。
首先,在 "sym_need_remove.txt "中写下下面的三行字。
_NetworkChange
_kChinaIsoAlpha2Code
_kChinaIsoAlpha3Code
然后,提取lib,去掉那3个符号。
cd UnityAds.framework
lipo UnityAds -thin arm64 -output UnityAds-64.a
strip -u -S -R sym_need_remove.txt UnityAds-64.a
如果你需要同时支持armv7和arm64,你还需要。
lipo UnityAds -thin armv7 -output UnityAds-v7.a
strip -u -S -R sym_need_remove.txt UnityAds-v7.a
lipo -create UnityAds-64.a UnityAds-v7.a -output UnityAdsStrip.a
最后,将UnityAds-64. a或UnityAdsStrip. a替换回UnityAds. frameworkUnityAds。
它将工作。
希望能帮到你