В сборке релиза получение MTOUCH: ошибка MT5213: дубликат символа - PullRequest
0 голосов
/ 01 сентября 2018

Наша сборка выпуска Xamarin.iOS завершается с ошибкой MTOUCH: ошибка MT5213: повторяющийся символ. Эта ошибка появилась недавно и, вероятно, из-за какого-то пакета nuget, но забавно то, что ни один из этих API не выглядит знакомым вообще. Я пытался исследовать источник, но не могу найти, куда они попадают.

Я пробовал. 1. Понижение формы Xamarin с последней версии до последней версии 2.5xxxx 2. Удаление всех пакетов nuget, добавленных с момента нашего последнего обновления в июле. 3. Добавление --registrar: статический 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: собственная ошибка связи: ссылка на символ (которому не был назначен адрес) _WebPInitYUV444Конвертеры в '_CustomSetup' из /Users/vsts/agent/2.136.1/work/1/ s / Client / projectName.Client.Forms / iOS / obj / iPhone / Release / mtouch-cache / WebP.a (libwebpdecode_la-io_dec.o) для архитектуры armv7 [/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 DLL. Как получить полную ошибку? Могу ли я пройти мимо этого? Вот часть файла журнала, любая помощь / указатели с благодарностью.

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 повторяющийся символ _WebPMultARGBСтроки в: 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)

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Для меня работало добавление следующего к аргументам mtouch во всех конфигурациях, особенно для выпуска | iphone (симулятор работал до этого)

- регистратор: статические -gcc_flags "-framework libSkipSharp -dead_strip"

Эта ссылка была полезной, включая множество проб и ошибок: https://docs.microsoft.com/en-us/xamarin/ios/troubleshooting/mtouch-errors#mt5xxx-gcc-and-toolchain-error-messages

0 голосов
/ 03 сентября 2018

Возможные причины этой ошибки:

  • Одна и та же нативная библиотека включена дважды.
  • Две разные нативные библиотеки определяют одни и те же символы.
  • Собственная библиотека построена неправильно и содержит тот же символ больше чем единожды. Вы можете подтвердить это с помощью следующего набора команды от терминала (замените i386 на x86_64 / armv7 / armv7s / arm64 в соответствии с какой архитектурой вы строите):

    для получения дополнительной информации вы можете получить доступ к ссылке сообщения об ошибках

...