Xamarin 窗体 - iOS - 错误 MT3001:无法对程序集进行 AOT



>Xamarin Forms iOS项目昨天10/10/19正在构建。今天更新到Mac和Windows上的最新组件,项目不再构建。

版本: 发布 - iPhone - 测试移动 iOS - 设备

项目在 Mac 模拟器上工作。在 iPhone 硬件上进行项目部署和调试。

  • Visual Studio Pro 2019 - 16.3.4
  • Visual Studio 2019 for Mac - 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 Studio2019ProfessionalMSBuildXamariniOSXamarin.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'

已尝试 iOS 构建设置:

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

恢复Visual Studio Pro 2019是最后的手段。任何想法都值得赞赏。

发现问题。在 iOS.csproj 文件中为 iPhone - 发布配置文件设置此项:

<IntermediateOutputPath>objiPhoneReleaseTemp</IntermediateOutputPath>

链接 链接

我在详细的构建日志中看到"MONO_PATH不存在或权限错误"。

项目现在已构建,我可以创建一个存档,并在 Mac 上查看 IPA 文件。

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

看这里: https://github.com/xamarin/xamarin-macios/issues/6925

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

希望这有帮助

最新更新