无法编译生成的注册商代码-MT4109

Bru*_*iro 1 xamarin.ios xamarin.forms

在iOS中构建Xamarin.Forms应用程序,出现以下错误

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets (_CompileToNative target) ->

MTOUCH: error MT4109: Failed to compile the generated registrar code. Please file a bug report at http://bugzilla.xamarin.com

 6 Warning(s)
 1 Error(s)
Run Code Online (Sandbox Code Playgroud)

时间已过00:00:51.5040280

obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:6806:74: error: expected a type
            -(BOOL) gestureRecognizer:(UIGestureRecognizer *)p0 shouldReceivePress:(UIPress *)p1;
                                                                                    ^ 
    /obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:6848:74: error: expected a type
            -(BOOL) gestureRecognizer:(UIGestureRecognizer *)p0 shouldReceivePress:(UIPress *)p1
                                                                                    ^ 
    obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:6851:10: error: no matching function for call to 'native_to_managed_trampoline_37'
                    return native_to_managed_trampoline_37 (self, _cmd, &managed_method, p0, p1, "UIKit.UIGestureRecognizer, Xamarin.iOS", "UIKit.UIPress, Xamarin.iOS", "UIKit.UIGestureRecognizer+_UIGestureRecognizerDelegate, Xamarin.iOS", "ShouldReceivePress");

obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:1705:13: note: candidate function not viable: no known conversion from 'id' to 'int *' for 5th argument
    static BOOL native_to_managed_trampoline_37 (id self, SEL _cmd, MonoMethod **managed_method_ptr, UIGestureRecognizer * p0, UIPress * p1, const char *r0, const char *r1, const char *r2, const char *r3)
                ^ 
    4 errors generated.
Run Code Online (Sandbox Code Playgroud)

仅当尝试部署到物理设备上时,才会发生这种情况,在模拟器上,一切工作正常。

Adi*_*hya 5

我在Mac的Virtual Machine中遇到了与vs 2017相同的问题。这是因为Xcode 11.0的自动更新,vs 2017的Xamarin.ios版本与Xcode 11.0不兼容,

首先,我更新了vs 2017-> vs 2019,Mac的Visual Studio也更新到了最新版本,之后问题就解决了