从Unity到Xcode的Unity Ads错误构建

时间:2016-03-01 13:10:18

标签: xcode linker duplicates ads

我最近从Unity到Xcode构建了我的项目,运行得非常好。从那时起,我已经将Unity广告添加到Unity中的项目中(然后意识到我不再需要它,因为它来自于使用服务的统一5.3)所以我删除了下载。然而,当我构建到Xcode时,我注意到在构建时链接的框架中有2个Unity Ads。我收到这个错误:

  

/Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper- 6D362980BD529555.o       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-498FCC2E7A8DF058.o   重复符号_OBJC_CLASS _ $ _ UnityAdsUnityWrapper in:       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-6D362980BD529555.o       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-498FCC2E7A8DF058.o   重复符号_OBJC_METACLASS _ $ _ UnityAdsUnityWrapper in:       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-6D362980BD529555.o       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-498FCC2E7A8DF058.o   重复符号_UnityAdsCreateNSString in:       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-6D362980BD529555.o       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-498FCC2E7A8DF058.o   重复符号_OBJC_IVAR _ $ _ UnityAdsUnityWrapper._gameId in:       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-6D362980BD529555.o       /Users/Clive/Library/Developer/Xcode/DerivedData/Unity-iPhone-dprwctphrztswsbrhuqrdbgezzuy/Build/Intermediates/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAdsUnityWrapper-498FCC2E7A8DF058.o   ld:架构armv7 clang的5个重复符号:错误:链接器   命令失败,退出代码为1(使用-v查看调用)

我尝试删除其中一个链接库Unity广告,但仍然遇到同样的错误,有什么想法吗?

9 个答案:

答案 0 :(得分:8)

我找到了解决方法。

打开Xcode项目,在 UnityAds文件夹中选择 UnityAdsUnityWrapper.mm 然后取消选中目标会员 Unity-Iphone

似乎现在正在工作。

enter image description here

答案 1 :(得分:1)

我在Unity版本中遇到了同样的问题。我升级到今天的最新版本仍然存在问题。有一个名为“Package Uninstaller”的免费Unity商店包 - 抓住它并用它来搜索“广告”。完成后,如果它们仍在您的包中,它将公开Unity Ads原始版本和2.0版本所在的位置。正如ikoukas所说,您需要删除Unity Ads文件。我删除了所有这些。然后,我的构建工作,错误消失了。

答案 2 :(得分:1)

好的,这是每个人都在等待的答案。问题仍然存在,

“为什么统一广告为arm64 / arm7创建重复的符号?”

3年后,我遇到了“扯掉头发”的问题。不好。.但是我要解决此问题的方法是禁用Unity Ads Services中的“内置广告扩展”。

但是在采取行动之前,您必须了解它为什么对我有用!启用统一的内置广告扩展后,Unity会安装一个插件来处理所有广告。然后,大多数人会继续从资产存储中安装另一个插件,然后该插件会创建相互冲突的文件,因此Xcode搞砸了,不知道该怎么办。也就是说,如果您想使用Ad插件在资产商店中,确保已禁用“内置广告扩展程序”(在统一广告服务中),但是,如果您只想在统一广告服务中使用内置广告扩展程序,则需要确保您使用的每个插件从处理广告的资产商店获取的信息已被卸载!

答案 3 :(得分:0)

之前我遇到过这个问题,但我知道如何解决它。

当我为自己的项目导入统一广告时,我以某种方式下载了两个相同的文件,这搞砸了。在您的错误消息中,它显示

  

Phone.build/Objects-normal/armv7/UnityAdsUnityWrapper-498FCC2E7A8DF058.o ld:架构armv7 clang的5个重复符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

请注意“重复符号”行。这意味着您有一个额外的架构文件。尝试删除两个重复项中的一个。祝你好运!

答案 4 :(得分:0)

我找到了解决方法。

打开Xcode项目,在UnityAds文件夹中选择UnityAdsUnityWrapper.mm然后取消选中Target成员身份Unity-Iphone

答案 5 :(得分:0)

实际上,这意味着Unity项目中添加了2个UnityAds库。

不要从资源商店添加lib。只需打开“服务”面板并激活UnityAds。

答案 6 :(得分:0)

在尝试用Asset Store版本替换Package Manager版本时遇到了这个问题(由于某些原因,Asset Store具有较新的版本)。

我只需要在Unity的“广告”设置中取消标记Enable built-in Ad extension

enter image description here

然后,我还必须自己调用Advertisement.Initialize(gameId)初始化插件,其中gameId not Unity项目ID

答案 7 :(得分:0)

  1. 选择“窗口/包管理器”
  2. 在“项目中”模块“广告”中找到标签
  3. 删除“广告”模块
  4. 去资产商店
  5. 重新导入“统一获利X.X”

答案 8 :(得分:-2)

我遇到了同样的问题。看来我在我的"插件/ iOS"中有一个UnityAdsUnityWrapper.mm + .h库。目录。尝试搜索UnityAds'在您的项目中删除相关的库文件。