Apple Silicon Mac上.NET MAUI iOS应用AOTCompile任务因目录错误失败的解决咨询
我刚从x86 Intel Mac换到Apple Silicon Mac时,在JetBrains Rider里开发.NET 9 MAUI iOS应用碰到过完全一样的问题——项目能正常构建,但一部署就卡在AOTCompile任务,提示找不到x64架构对应的AOT工具目录,可明明装的是arm64版本的.NET 9。结合我踩过的坑和社区里的实用方案,给你几个可行的排查和解决方向:
检查Rider的架构目标设置
打开Rider的项目设置(Project Settings),找到Build -> Runtime Identifiers,确认目标架构设的是osx-arm64,别不小心继承了之前x86项目的配置。另外在Rider的Settings里搜索“Dotnet CLI”,看看是不是指定了x64版本的dotnet路径,改成Apple Silicon对应的/usr/local/share/dotnet/dotnet(arm64版默认路径)。手动验证.NET 9的安装架构
打开终端,运行dotnet --info,看输出里的“RID”是不是osx-arm64;再运行ls /usr/local/share/dotnet/packs/ | grep ios-arm64,确认存在Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64/9.0.4目录。如果x64版本的那个包你用不上,直接删除或者重命名,避免工具误找。修复项目文件的目标架构配置
直接编辑MAUI项目的.csproj文件,确保<RuntimeIdentifier>或<RuntimeIdentifiers>节点明确指定ios-arm64,比如:<PropertyGroup> <RuntimeIdentifier>ios-arm64</RuntimeIdentifier> </PropertyGroup>同时检查有没有残留的x86相关属性,比如
<MtouchArch>如果设成了x64,改成arm64。清理并重建项目缓存
在Rider里点Build -> Clean Solution,然后删掉项目目录下的bin和obj文件夹,重启Rider后重新构建。也可以在终端进入项目目录,运行dotnet clean && dotnet restore,强制重新拉取正确的依赖包路径。检查Xamarin/Maui工具链的架构适配
你提到是Xamarin工具找错了目录,大概率是旧的x86版本工具链残留导致的。在终端运行dotnet workload list,看看已安装的MAUI相关workload是不是arm64版本;如果有x64的workload,用dotnet workload remove删掉,再重新安装arm64版:dotnet workload install maui-ios。
你碰到的具体错误信息:
Xamarin.Shared.Sdk.targets(1266,3): Error MSB4018 : The "AOTCompile" task failed unexpectedly. System.AggregateException: One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (An error occurred trying to start process '/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64/9.0.4/Sdk/../tools/mono-aot-cross' with working directory '/Users/me/Documents/folder/project'. No such file or directory)))
内容来源于stack exchange

