MAUI 对 macOS 的支持不是通过 Mac Catalyst,而是原生集成——它直接编译为 macOS 原生应用(基于 AppKit),无需 Catalyst 桥接层。这点常被误解,尤其因为早期 Xamarin.Forms 曾依赖 Catalyst 实验性支持,但 MAUI 已彻底转向原生 macOS 目标框架。
确认开发环境已就绪
macOS 平台开发 MAUI 的前提是:你正在 macOS 系统上开发(不能在 Windows 上“交叉编译”出 macOS 应用)。必须满足:
macOS 12.0 或更高版本(推荐 macOS 14+) .NET SDK 9.0 或 10.0(2025年主流是 .NET 10.0,已进入正式发布阶段) 已安装 Xcode 15.3+(含 Command Line Tools) Visual Studio for Mac(2022 v17.10+)或 VS Code + C# Dev Kit 扩展创建并启用 macOS 目标平台
新建 MAUI 项目时,默认不包含 macOS 支持。需手动启用:
打开项目文件(xxx.csproj),确保包含:<targetframeworks>net10.0-ios;net10.0-maccatalyst;net10.0-android;net10.0-windows10.0.19041.0</targetframeworks>⚠️ 注意:这里写的是 maccatalyst,但实际对应的是 MAUI 的 macOS 原生目标(名称沿用旧称,行为已是 AppKit 原生) 若项目已存在,右键项目 → “Edit Project File”,添加或修正
<targetframework></targetframework>或
<targetframeworks></targetframeworks>节点
配置 macOS 特定设置
MAUI 在 macOS 上运行依赖几个关键配置:
在 Platforms/MacCatalyst/Info.plist 中设置 Bundle Identifier、App Name、签名团队 ID(用于代码签名) 如需访问相册、定位等能力,需在 Info.plist 中声明对应权限键值(例如NSCameraUsageDescription) 首次运行前,需在 Xcode 中完成自动签名:打开终端执行
dotnet build -t:Run -f:net10.0-maccatalyst,VS 或 CLI 会自动拉起 Xcode 完成证书与 Provisioning Profile 配置
调试与运行方式
macOS 应用无法像 Windows 那样直接双击运行,必须通过开发工具启动:
VS for Mac:选择 “Mac Catalyst” 启动目标,点击 ▶️ 运行即可(会自动构建、签名、启动) VS Code:终端中执行:dotnet build -t:Run -f:net10.0-maccatalyst真机部署暂不支持(macOS 应用仅限本机运行),但可打包为 .app 发布:
dotnet publish -f:net10.0-maccatalyst -c:Release -r:osx-x64 --self-contained false
基本上就这些。MAUI 的 macOS 支持已稳定可用,.NET 10 下启动快、渲染准、调试顺,不再需要绕道 Catalyst 适配层。只要环境配对、签名畅通,跑起来和写 Windows 或 Android 版本一样自然。
