核心用法
该技能提供一套完整的无Xcode macOS应用开发工作流,基于Swift Package Manager构建。核心流程分为两步:首先通过bootstrap模板快速生成项目骨架(含Package.swift、源码目录、版本配置),然后利用配套脚本完成构建、打包、签名与发布。
关键脚本功能:
package_app.sh:编译二进制、组装.app bundle、复制资源、执行代码签名compile_and_run.sh:开发循环脚本(终止旧进程→打包→启动)sign-and-notarize.sh:公证、装订(zip)、准备发布make_appcast.sh:自动生成Sparkle更新所需的appcastbuild_icon.sh:从Icon Composer生成.icns(需Xcode安装)
配置要点: 通过version.env集中管理APP_NAME、BUNDLE_ID、BUILD_NUMBER等元数据;菜单栏应用需设置MENU_BAR_APP=1以注入LSUIElement。
显著优点
1. 摆脱Xcode依赖:纯命令行操作,CI/CD友好,适合自动化流水线
2. 模板化脚手架:一键生成标准目录结构,降低项目初始化成本
3. 完整发布链路:内置签名、公证、Sparkle更新机制,覆盖macOS分发全环节
4. 灵活可控:脚本透明可编辑,开发者能精确调整entitlements、签名配置
潜在局限
build_icon.sh仍需Xcode安装,非完全独立- Sparkle集成需维护
BUILD_NUMBER递增规则,易因版本管理疏忽导致更新失败 - 无图形化调试支持,复杂UI问题排查需借助额外工具
- 模板脚本需手动复制到项目,未提供自动化安装机制
适合人群
- 偏好命令行工作流、追求构建过程透明的macOS开发者
- 需要CI/CD自动化打包发布的小型团队
- 开发菜单栏工具、轻量级App的独立开发者
常规风险
- 签名配置错误可能导致Gatekeeper拦截,需确保证书与entitlements匹配
- 版本号管理疏漏(BUILD_NUMBER未递增)会造成Sparkle更新检测异常
- 公证流程依赖Apple服务器,网络波动可能阻塞发布流水线