Xamarin - 无法再在设备上调试 - 错误MT5211

Tan*_*ven 5 xamarin.ios ios xamarin

在最近的升级之前,我可以在设备上进行调试.我现在得到以下错误:

Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_ZipArchiveDelegate", referenced from:
   objc-class-ref in registrar.armv7.o
  _OBJC_CLASS_$_MiniZip_ZipArchive_ZipArchive__ZipArchiveDelegate in registrar.armv7.o
"_OBJC_METACLASS_$_ZipArchiveDelegate", referenced from:
  _OBJC_METACLASS_$_MiniZip_ZipArchive_ZipArchive__ZipArchiveDelegate in registrar.armv7.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error MT5211: Native linking failed, undefined Objective-C class: _OBJC_CLASS_$_ZipArchiveDelegate. If '_OBJC_CLASS_$_ZipArchiveDelegate' is a protocol from a third-party binding, please check that it has the [Protocol] attribute in its api definition file, otherwise verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_ZipArchiveDelegate. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
error MT5202: Native linking failed. Please review the build log.
Run Code Online (Sandbox Code Playgroud)

我已经清理,重建但无济于事.有任何想法吗?

Bre*_*ski 9

事实证明,此错误是由新默认静态注册器的严格性提高引起的:

您可以通过请求Xamarin.iOS使用legacy注册商暂时解决问题.为此,请在"项目选项 - > iOS构建 - >其他mtouch参数"下添加"--registrar:legacy".

组件团队还联系了ZipArchive组件的作者,让他们了解新注册商的问题,但他们尚未回复.如果他们不尽快提供更新,您可以查看转换为Xamarin组件团队[1]编写的同一个库的开源绑定.这种绑定的一个注意事项是方法和类名称可能与ZipArchive组件中的方法和类名称不同,命名空间肯定是不同的.因此,您需要相应地更新应用中的名称.

[1] https://github.com/mono/monotouch-bindings/tree/master/ZipArchive


小智 1

有完全相同的问题。但都在 zipArchive 和 SDWebImage 上。卸载重装xamarin. 没有帮助。

从头开始创建一个解决方案,添加 zipArchive 并添加到 using 部分。该项目不针对设备构建。但是为模拟器构建就可以了。

向 Xamarin 支持人员发送电子邮件寻求帮助。