MAUI 对 macOS 的支持是原生集成而非 Mac Catalyst,直接编译为基于 appKit 的原生应用;需在 macos 系统上开发,安装 .NET 10.0、xcode 15.3+ 和 visual studio for Mac 或 VS Code + C# Dev Kit,并在项目文件中启用 net10.0-maccatalyst 目标框架。

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 版本一样自然。