在 macOS 上可基于开源工具链搭建本地 CI/CD 流水线,通过纯本地或容器辅助模式执行构建、签名、公证与打包;借助 act 模拟 GitHub Actions 实现本地自动化,配合标准化脚本提升复现性与调试效率。
在 macos 上搭建本地 ci/cd 流水线,核心是用轻量、可控、可复现的工具链替代依赖云端服务的方案。不需要 xcode server 或付费平台,靠开源组合就能实现“代码提交 → 自动构建 → 本地测试 → 打包发布”的闭环。
选对执行环境:macOS 原生 + 容器化辅助
macOS 本身支持完整开发工具链,但需避免环境污染和版本冲突。推荐两种稳定模式:
-
纯本地模式:直接使用系统自带的
xcodebuild、create-dmg、codesign等命令,配合make或shell脚本编排流程;适合小型项目或签名/公证前验证 -
容器辅助模式:用
docker-osx或xhyve启动隔离的 macOS 兼容虚拟环境(注意:Docker Desktop for Mac 不原生运行 macOS 容器,docker-osx是社区方案),用于复现不同 macOS 版本或清理构建上下文
必备工具链安装与校验
所有工具都应通过脚本自动安装并验证,避免手动遗漏:
- 运行
xcode-select --install确保 Command Line Tools 就绪 - 用
brew install create-dmg graphicsmagick cmake安装打包与构建依赖 - 检查证书配置:
security find-identity -v -p codesigning应列出有效的 Developer ID 或 Mac App Distribution 证书 - 若需公证,确认已登录 Apple ID:
xcode-select --switch /Applications/Xcode.app后运行xcodebuild -runFirstLaunch
用 GitHub Actions Local Runner 实现真·本地流水线
GitHub Actions 并不仅限于云端运行。通过 act 工具,你能在本地完全模拟 GitHub Actions 行为,包括 secrets、matrix、条件判断等:
- 安装:
brew install act - 准备
.github/workflows/build.yml(含 build、sign、notarize、dmg 步骤) - 注入本地密钥:
act -s BUILD_CERTIFICATE_BASE64="$(cat cert.p12.b64)" -s APPLE_ID_PASSWORD="xxx" - 运行:
act push -j build,即可看到每一步终端输出,调试效率远超反复推送到远程触发
关键环节自动化脚本示例
把重复操作固化为可复用脚本,是本地 CI/CD 可持续的关键:
-
./scripts/build-app.sh:调用xcodebuild archive+-exportArchive生成 .app -
./scripts/sign-app.sh:递归签名所有嵌入框架,并设置 hardened runtime 和 entitlements -
./scripts/notarize.sh:用altool(或新版notarytool)上传并轮询公证状态 -
./scripts/create-dmg.sh:调用create-dmg,自动挂载、写入背景图、设置窗口大小与图标位置
这些脚本可被 act 调用,也可单独执行,兼顾开发调试与流水线复用。


















