Xamarin Forms - iOS - 错误 MT3001:无法 AOT 程序集

MBD*_*Dev 5 xamarin.ios aot ios xamarin xamarin.forms

Xamarin Forms iOS 项目于 2019 年 10 月 10 日在昨天构建。今天更新到 Mac 和 Windows 上的最新组件,项目不再构建。

构建:发布 - iPhone - TestMobile.iOS - 设备

项目适用于 Mac 模拟器。项目在 iPhone 硬件上部署和调试。

  • Visual Studio Pro 2019 - 16.3.4
  • 适用于 Mac 的 Visual Studio 2019 - 8.3.3 版本 8
  • Mac 上最新的所有组件
  • MacOS Catalina 10.15

构建日志:

3>  AOT Compilation exited with code 1, command:
3>  MONO_PATH=/Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C:/Temp/iOS/mtouch-cache/32/3-Build /Library/Frameworks/Xamarin.iOS.framework/Versions/13.4.0.2/bin/arm-darwin-mono-sgen --debug -O=gsharedvt -O=-float32  --aot=mtriple=armv7-ios,data-outfile=/Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C:/Temp/iOS/mtouch-cache/armv7/ZXingNetMobile.aotdata.armv7,static,asmonly,direct-icalls,full,soft-debug,dwarfdebug,no-direct-calls,outfile=/Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C:/Temp/iOS/mtouch-cache/armv7/ZXingNetMobile.dll.s "/Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C:/Temp/iOS/mtouch-cache/32/3-Build/ZXingNetMobile.dll"
3>  '/Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C' in MONO_PATH doesn't exist or has wrong permissions.
3>  '/Temp/iOS/mtouch-cache/32/3-Build' in MONO_PATH doesn't exist or has wrong permissions.
3>  The assembly mscorlib.dll was not found or could not be loaded.
3>  It should have been installed in the `/Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/sdks/out/ios-cross32-release/lib/mono/4.5/mscorlib.dll' directory.
3>  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang  -Wno-receiver-forward-class -Wno-objc-missing-super-calls -Wno-unguarded-availability-new -stdlib=libc++ -gdwarf-2 -std=c++14 -I/Library/Frameworks/Xamarin.iOS.framework/Versions/13.4.0.2/SDKs/MonoTouch.iphoneos.sdk/usr/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk -Qunused-arguments -miphoneos-version-min=8.0 -arch arm64 -c -o /Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C:/Temp/iOS/mtouch-cache/arm64/registrar.o -x objective-c++ -DDEBUG /Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C:/Temp/iOS/mtouch-cache/64/registrar.m

3>  C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(842,3): 
error MT3001: Could not AOT the assembly '/Users/bob/Library/Caches/Xamarin/mtbs/builds/TestMobileXF.iOS/e5f1c3a4936492ad245f1c68c3157dfc/C:/Temp/iOS/mtouch-cache/64/3-Build/TestMobileXF.iOS.exe'
Run Code Online (Sandbox Code Playgroud)

尝试 iOS 构建设置:

  • 链接器行为
  • 支持的架构
  • LLVM 编译器
  • 增量构建

恢复 Visual Studio Pro 2019 是最后的手段。任何想法表示赞赏。

Iai*_*KER 2

仅将架构更改为ARM64,它将成功构建。

请参阅此处: https: //github.com/xamarin/xamarin-macios/issues/6925

失败的原因是 Xamarin.iOS 12.99(和 13.0)附带的 32 位 AOT 编译器本身就是 32 位二进制文​​件,并且 32 位二进制文​​件无法在 macOS 10.15 Catalina 上执行。

希望这可以帮助