用途:指导在 .NET MAUI 的 iOS 与 Mac Catalyst 上启用原生 AOT 编译。基线要求 .NET 8.0+,需 MAUI 工作负载、Xcode 及相应 SDK,真机部署还需 Apple 开发者账号与配置文件。注意该 AOT 仅针对 iOS 与 Mac Catalyst,Android 使用不同编译模型。
主要能力:发布时由 NativeAOT 编译器(ILC)将 IL 直接编译为原生机器码,经 tree shaking 裁剪可达代码并与平台框架链接,产出不含 IL 程序集的原生可执行 .app。据资料可实现最高约 50% 体积缩减与最高约 50% 冷启动提升;提供库兼容性对照(如 System.Text.Json 源代码生成、CommunityToolkit.Mvvm、HttpClient、MAUI Essentials、SQLite-net 可用;Newtonsoft.Json、AutoMapper、Refit 旧版不兼容),并说明退出机制(PublishAot=false、TrimmerRootAssembly)与裁剪配置(ILLink 描述符、[DynamicDependency]、源代码生成替代反射)。
使用方式:在 csproj 按目标框架设置 PublishAot 为 true,可选 StripSymbols;发布命令形如 dotnet publish -f net8.0-ios -c Release -r ios-arm64,模拟器可用 iossimulator-arm64。开发期建议启用 EnableAotAnalyzer 与 EnableTrimAnalyzer 以捕获 IL3050、IL2026 等警告。
适用场景与限制:适用于为 iOS/Mac Catalyst 做体积与启动优化的 MAUI 应用、排查 AOT 不兼容库及在模拟器与真机验证 AOT 构建。限制包括:AOT 强制启用裁剪,反射与运行时动态代码会破坏兼容性,实际收益取决于应用复杂度与可达代码量;须在真机测试,模拟器无法完全覆盖启动、内存与平台服务差异。具体收费与授权未提供。