MAUI CI/CD核心是分平台构建与签名:iOS/macOS需macOS+Xcode,Android推荐Linux/macOS,Windows需VS2025;流程分CI(编译测试)、CD(分平台打包签名)、Release(上架)三阶段,关键在环境、证书、版本统一和工具链配置。
MAUI 项目做 CI/CD,核心是解决跨平台构建、多目标平台(Windows/macOS/iOS/Android)打包、签名、测试和发布的一致性问题。它比纯 Web 或 .NET 后端项目更复杂,因为依赖操作系统级工具链(如 Xcode、Android SDK、Visual Studio)、证书和配置。但只要理清关键环节,流程并不难落地。
MAUI 不支持“一次构建、到处打包”。不同平台必须在对应操作系统上构建:
dotnet msbuild 或 xcodebuild 调用建议按三段式拆分,避免单一流水线卡死所有平台:
dotnet build -t:Restore,Build -p:Configuration=Debug)→ 运行单元测试(xUnit/NUnit)→ 执行静态分析(如 SonarQube)main 或 release/* 分支运行 → 分平台并行打包(Android AAB/APK、iOS IPA、Windows APPX、macOS PKG)→ 自动签名(用密钥保管库管理 p12/cert/p8 文件)→ 上传制品到 Azure Artifacts / GitHub Packages / S3这些细节不处理好,90% 的 MAUI CI/CD 会失败:
ANDROID_HOME 和 JAVA_HOME 环境变量必须显式设置security unlock-keychain);使用 --configuration Release --self-contained true 参数生成可分发 IPADesktopBridge 支持,打包前运行 msbuild /t:Publish /p:PublishProfile=win10-x64
Directory.Build.props 统一定义 VersionPrefix 和 AssemblyVersion,再通过 pipeline 变量注入(如 $(Build.BuildNumber))轻量可控、企业友好、文档完善:

基本上就这些。MAUI 的 CI/CD 不是“能不能做”,而是“敢不敢把环境配全、证书管住、平台分开”。配通一个平台(比如 Android),其他平台就是复制逻辑+换 agent+调参数。别贪快,先跑通 iOS 或 Windows 单平台全流程,再横向扩展。