UnityAds 3.4.4 IOS重复的内容

问题描述 投票:-1回答:1

我用的是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

我已经尝试创建新的项目,问题依然存在。重复方法。

  1. 创建新的Unity项目
  2. 从包管理器导入UnityAds,版本更新到3.4.4。
  3. 构建iOS项目。
  4. 在XCode中运行。

我没有启用UnityAds服务器,XCode中只有一个UnityAds.framework文件。看起来有些内容被打包到libiPhone-lib.a中了。

有人遇到过同样的问题吗?

unity3d unityads
1个回答
0
投票

我通过删除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。

它将工作。

希望能帮到你

© www.soinside.com 2019 - 2024. All rights reserved.