Xamarin.iOS[13.6.0.12] 可以使用 xcode10.2 和设备支持 sdk13.2(来自 xcode11.3)

can Xamarin.iOS[13.6.0.12] use xcode10.2 with devicesupport sdk13.2(from xcode11.3)

由于我使用的是在macos10.13中受限的hackintosh,它的最高xcode是10.1,

但 Xamarin.iOS 已升级到 13.6,它需要 ios sdk 13.2xcode11.3

我已经手动下载了DeviceSupport/13.2目录复制到xcode10.1对应的位置,

但是xamarin构建过程好像不识别,还是提示:

MTOUCH : error MT0091: This version of Xamarin.iOS requires the iOS 13.2 SDK (shipped with Xcode 11.2). Either upgrade Xcode to get the required header files or set the managed linker behaviour to Link Framework SDKs Only in your project's iOS Build Options > Linker Behavior (to try to avoid the new APIs). [/Users/wellbye/repos/m/my/xamarin/mb.iOS/mb.iOS.csproj]

如果我将 MtouchLink 设置为 SdkOnly,它仍然会产生错误:

/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/src/Xamarin.iOS/UIResponder.g.cs(204): error MT4162: The type 'UIKit.IUIMenuBuilder' (used as a parameter in UIKit.UIResponder.BuildMenu) is not available in iOS 12.2 (it was introduced in iOS 13.0). Please build with a newer iOS SDK (usually done by using the most recent version of Xcode). [/Users/wellbye/repos/m/my/xamarin/mb.iOS/mb.iOS.csproj] /Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/src/Xamarin.iOS/UIResponder.g.cs(744): error MT4162: The type 'UIKit.UICommand' (used as a parameter in UIKit.UIResponder.ValidateCommand) is not available in iOS 12.2 (it was introduced in iOS 13.0). Please build with a newer iOS SDK (usually done by using the most recent version of Xcode). [/Users/wellbye/repos/m/my/xamarin/mb.iOS/mb.iOS.csproj]

有没有办法拯救我的旧电脑用于 xamarin 开发?

成功了:

  1. 复制${xcode11}/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk到旧xcode的对应位置。

  2. 复制${xcode11}/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.2到旧xcode的对应位置。