在发布版本中获取MTOUCH:错误MT5213:重复符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在发布版本中获取MTOUCH:错误MT5213:重复符号相关的知识,希望对你有一定的参考价值。

我们的Xamarin.ios版本构建失败了MTOUCH:错误MT5213:重复符号。这个错误最近开始发生,可能是由于某个地方有一个nuget包,但有趣的是这些API看起来都不熟悉。我已经尝试调查来源,但无法找到他们被包括在哪里。

我试过了。 1.将Xamarin表格从最新版本降级到最后一个版本2.5xxxx 2.删除自7月份上次更新以来添加的所有nuget包。 3.添加--registrar:static 4.添加-gcc_flags -dead_strip可减少错误,但仍导致此错误___ 2018-08-24T22:01:20.5791820Z clang:错误:链接器命令失败,退出代码为1(使用-v看到调用)[/Users/vsts/agent/2.136.1/work/1/s/Client/projectName.Client.Forms/iOS/projectName.Forms.iOS.csproj] 2018-08-24T22:01:20.5920220Z错误MT5209:本机链接错误:对符号的引用(尚未分配地址)_WebPInitYUV444Converters在/Users/vsts/agent/2.136.1/work/1/s/Client/projectName.Client.Forms/的'_CustomSetup'中架构armv7的iOS / obj / iPhone / Release / mtouch-cache / WebP.a(libwebpdecode_la-io_dec.o)[/Users/vsts/agent/2.136.1/work/1/s/Client/projectName.Client.Forms /iOS/projectName.Forms.iOS.csproj] 2018-08-24T22:01:20.6050340Z MTOUCH:错误MT5201:本机链接失败。请查看构建日志和提供给gcc的用户标志:-dead_strip [/Users/vsts/agent/2.136.1/work/1/s/Client/projectName.Client.Forms/iOS/projectName.Forms.iOS.csproj ] 2018-08-24T22:01:20.6130420Z MTOUCH:错误MT5202:原生链接失败。请查看构建日志。 [/Users/vsts/agent/2.136.1/work/1/s/Client/projectName.Client.Forms/iOS/projectName.Forms.iOS.csproj] 2018-08-24T22:01:20.6148240Z 2018-08- 24T22:01:20.6180880Z 60警告2018-08-24T22:01:20.6215590Z 4错误

各种--linkskip选项怀疑nuget dlls。我如何得到完整的错误?我可以通过这些吗?这是日志文件的一部分,非常感谢任何帮助/指针。

2018-08-29T07:57:46.1674730Z重复符号_WebPMultRows in:2018-08-29T07:57:46.1761750Z /Users/vsts/agent/2.138.6/work/1/s/Client/projectName.Client.Forms/ iOS / obj / iPhone / Staging / mtouch-cache / WebP.a(libwebpdspdecode_la-alpha_processing.o)2018-08-29T07:57:46.1944120Z /Users/vsts/agent/2.138.6/work/1/s/Client /projectName.Client.Forms/iOS/obj/iPhone/Staging/mtouch-cache/liblibwebp.a(alpha_processing.o)2018-08-29T07:57:46.2117500Z复制符号_WebPMultARGBRows in:2018-08-29T07:57: 46.2265350Z /Users/vsts/agent/2.138.6/work/1/s/Client/projectName.Client.Forms/iOS/obj/iPhone/Staging/mtouch-cache/WebP.a(libwebpdspdecode_la-alpha_processing.o)

答案

出现此错误的可能原因:

  • 两次包含相同的本机库。
  • 两个不同的本机库恰好定义相同的符号。
  • 本机库未正确构建,并且多次包含相同的符号。您可以使用终端中的以下命令集来确认这一点(根据您正在构建的架构,将i386替换为x86_64 / armv7 / armv7s / arm64): 有关更多信息,您可以访问链接error-messages
另一答案

对我有用的是在所有配置中添加以下内容到mtouch参数,特别是发布| iphone(模拟器之前工作)

--registrar:static -gcc_flags“-framework libSkipSharp -dead_strip”

这个链接很有帮助,包括很多试验和错误:https://docs.microsoft.com/en-us/xamarin/ios/troubleshooting/mtouch-errors#mt5xxx-gcc-and-toolchain-error-messages

以上是关于在发布版本中获取MTOUCH:错误MT5213:重复符号的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Firebase iOS Analytics 抛出 AOT MTOUCH ERROR MT3001 - Firebase.Analytics.dll

由于 Xamarin iOS SDK 版本,AzureDevops 构建失败

MT5211:本机链接失败,未定义的Objective-C类

ORA-00600: 内部错误代码,参数:[5213],[][][][],oracle 8

Visual Studio 2015 / Xamarin,调试不工作:执行 MTouch 时出错

从封面艺术档案 (archive.org) API 中获取专辑封面会由于重定向导致 CORS 错误