CodMate 构建与发布教程:Makefile + SwiftPM 打包 Developer ID 签名 DMG 的完整流程 【免费下载链接】codmateCodMate is a macOS SwiftUI app for managing CLI AI sessions: browse, search, organize, resume, and review work produced by Codex, Claude Code, and Gemini CLI. It focuses on speed, a compact three-column UI, and “ship it” workflows like Project Review (Git Changes) and one-click Resume/New.项目地址https://gitcode.com/gh_mirrors/co/codmate点击查看免费下载CodMate 是一款 macOS SwiftUI 应用用于管理 Codex、Claude Code 和 Gemini CLI 的会话。本文带你完整走一遍 CodMate 的构建与发布流程从 SwiftPM 编译、Makefile目标到 Developer ID 签名、公证notarization和 DMG 打包帮助你快速上手 macOS 应用发布。构建环境准备macOS Swift 6 工具链 CodMate 采用纯 SwiftPM 构建无 Xcode 工程文件因此环境要求很简单依赖要求用途macOS13.5最低部署目标Swift6 工具链编译主程序与notify辅助工具Xcode Command Line Tools必须安装提供xcrun actool编译资源目录Developer ID Application 证书发布必须签名应用与 DMGcreate-dmg可选生成带拖拽安装的漂亮 DMG缺失时自动回退hdiutil 本地开发调试不需要签名证书构建脚本会自动退回到 ad-hoc 签名。获取源码一行命令克隆仓库git clone https://gitcode.com/gh_mirrors/co/codmate cd codmate项目根目录的 Makefile 是构建入口输入make help可以查看所有可用目标make help构建体系一览Makefile 目标速查表 ⚙️Makefile 中封装了完整的构建流程核心目标如下目标说明示例buildSwiftPM 调试构建make buildreleaseSwiftPM 发布构建make releasetest运行 SwiftPM 测试make testrun调试构建并直接启动应用make runapp生成CodMate.app应用包make app VER1.2.3dmg生成 Developer ID 签名 DMGmake dmg VER1.2.3zip将 DMG 压缩为 zip 发布包make zip VER1.2.3clean清理构建产物make clean两个关键环境变量VER营销版本号写入CFBundleShortVersionString如1.4.0ARCH目标架构支持arm64、x86_64也可以写arm64 x86_64构建通用二进制。本地快速调试make run 一步启动开发阶段最常用的命令make run它会以本机架构做一次 debug 构建自动使用 ad-hoc 签名然后打开build/CodMate.app。如果需要查看运行时日志Makefile 还提供了几个调试目标make debug终端前台输出程序日志make debug-app后台启动应用并流式输出统一日志make debug-logs在应用运行时实时追踪log stream输出make debug-file日志同时写入logs/debug.log。应用打包make app 背后的构建流程 执行make app VER1.2.3时实际调用的是 scripts/create-app-bundle.sh它完成了完整的打包链路多架构编译对ARCH_MATRIX中的每个架构执行swift build -c release --arch arch架构校验用lipo -info检查产物架构是否纯净多架构时用lipo -create合并为 universal 二进制二进制瘦身默认执行strip可用STRIP0关闭组装 .app 包复制主程序与codmate-notify通知助手、写入Info.plistBundle ID 为ai.umate.codmate编译资源用xcrun actool编译 assets/Assets.xcassets生成Assets.car与应用图标打入打包数据复制 payload/providers.json、payload/terminals.json、提示词与内部技能等内置资源。版本号策略由BUILD_NUMBER_STRATEGY控制策略构建号生成方式date默认yyyymmddHHMM时间戳如202510291430gitgit rev-list --count HEAD提交计数counter本地计数器文件自增脚本还会把 Git tag、commit 短哈希和 dirty 状态写入Info.plist方便在关于面板中追踪产物来源。发布流程核心make dmg 生成签名 DMG # 单架构当前主机架构 make dmg VER1.4.0 # 指定架构 make dmg VER1.4.0 ARCHarm64 # 双架构同时产出 codmate-arm64.dmg 和 codmate-x86_64.dmg make dmg VER1.4.0 ARCHarm64 x86_64make dmg调用的是 scripts/macos-build-notarized-dmg.sh每个架构会经历五个阶段打包复用上面的create-app-bundle.sh生成该架构的CodMate-arch.app签名检测到 Developer ID 证书时先签内部二进制codmate-notify再签主程序最后签整个 bundle带--options runtime硬运行时保护并用codesign --verify --deep --strict自检。找不到证书时自动降级为 ad-hoc 签名并给出警告制作 DMG优先使用create-dmg生成带 拖入 Applications 图标的安装盘失败或未安装时回退到hdiutil create公证将 DMG 提交给 Apple 公证服务见下一节装订验证xcrun stapler staplestapler validate完成收尾。产物输出到artifacts/release/目录文件名为codmate-arch.dmg。公证Notarization的两种认证方式macOS 要求分发给普通用户的 Developer ID 应用必须经过 Apple 公证否则 Gatekeeper 会拦截。脚本支持两种提交方式且会自动识别NOTARY_MODEauto方式一Keychain Profile推荐CI 友好xcrun notarytool store-credentials AC_PROFILE \ --team-id YOUR_TEAM_ID \ --apple-id youapple.com \ --password app-specific-password APPLE_NOTARY_PROFILEAC_PROFILE make dmg VER1.4.0方式二Apple ID 应用专用密码APPLE_IDyouapple.com \ APPLE_PASSWORDxxxx-xxxx-xxxx-xxxx \ TEAM_IDYOURTEAMID \ make dmg VER1.4.0 脚本支持从项目根目录的.env文件读取APPLE_SIGNING_IDENTITY、APPLE_ID、APPLE_PASSWORD、APPLE_TEAM_ID命令行显式导出的变量优先无需在 CI 日志中暴露密码。如果设置了SKIP_NOTARIZATION1或未提供任何凭据脚本会跳过公证并明确提示——这样的 DMG 只适合内测不能公开发布。分发最后一公里zip 打包与产物校验DMG 公证完成后通常还会再压一层 zip 方便下载渠道分发make zip VER1.4.0它会在artifacts/release/下为每个 DMG 生成同名.zip。发布前建议手动做一次终检codesign --verify --deep --strict build/CodMate.app xcrun stapler validate artifacts/release/codmate-arm64.dmg此外项目依赖变更后记得更新第三方许可声明make notices该目标通过 scripts/gen-third-party-notices.py 扫描 Package.resolved 与本地依赖缓存重新生成THIRD-PARTY-NOTICES.md任何缺失许可文件的依赖都会让构建失败。常见问题排查 ️现象原因与解决error: VER is requiredapp/dmg/zip目标必须传VER例如make app VER1.2.3[warn] libghostty.a not found内嵌终端依赖的 Ghostty 静态库缺失需先按ghostty/目录说明构建对应架构的libghostty.aSigning identity not found钥匙串中没有 Developer ID 证书会降级 ad-hoc 签名发布前请在 Xcode 的 Keychain Access 中确认证书存在DMG 缺少拖拽安装图标未安装create-dmg回退使用了hdiutil安装create-dmg后重跑make dmg即可用户打开 DMG 提示已损坏未公证或证书链不完整补齐公证凭据重新执行make dmg相关文档与源码位置 构建总览文档scripts/BUILD.md构建入口 MakefileMakefile应用打包脚本scripts/create-app-bundle.shDMG 签名与公证脚本scripts/macos-build-notarized-dmg.shSwiftPM 包描述依赖 GhosttyKit 与 MCP Swift SDKPackage.swift许可声明生成器scripts/gen-third-party-notices.py构建与发布说明README.md流程回顾make run日常调试 →make app VERx.y.z出应用包 →make dmg VERx.y.z签名并公证出 DMG →make zip生成发布产物。掌握这条流水线你就能独立完成 CodMate 从源码到可分发 DMG 的完整构建与发布。赞分享【免费下载链接】codmateCodMate is a macOS SwiftUI app for managing CLI AI sessions: browse, search, organize, resume, and review work produced by Codex, Claude Code, and Gemini CLI. It focuses on speed, a compact three-column UI, and “ship it” workflows like Project Review (Git Changes) and one-click Resume/New.项目地址https://gitcode.com/gh_mirrors/co/codmate点击查看免费下载相关推荐ILSpy macOS 发布全流程CI 无签名构建、离线签名公证与 DMG 打包实战ILSpy macOS 发布全流程CI 无签名构建、离线签名公证与 DMG 打包实战 本篇指南以 ILSpy 仓库中 BuildTools/packaging逆向工程开发工具BaoCut macOS 打包发布指南Developer ID 签名、Apple 公证与 Appcast 分批推送完整教程BaoCut macOS 打包发布指南Developer ID 签名、Apple 公证与 Appcast 分批推送完整教程 BaoCut 是一款带可编辑时间线为什么Trimmy无法帮你粘贴macOS辅助功能权限配置与避坑完全指南为什么Trimmy无法帮你粘贴macOS辅助功能权限配置与避坑完全指南 如果你在使用 Trimmy一款把多行命令压成一行、让复制的 shell 片段一次粘贴上一篇构建高效的内部开发者平台(IDP)90DaysOfDevOps实战指南下一篇使用 Transformers 微调 Wav2Vec2 完成音频分类单卡与多卡实战指南FlexGen 仓库示例解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考