Macos Spm App Packaging

🛠️ 零Xcode纯命令行macOS开发

纯命令行搭建SwiftPM macOS应用,无需Xcode即可构建、签名、公证与发布,适合追求轻量化工作流的开发者

收藏
13.3k
安装
3.1k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

该技能提供一套完整的无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更新所需的appcast
  • build_icon.sh:从Icon Composer生成.icns(需Xcode安装)

配置要点: 通过version.env集中管理APP_NAMEBUNDLE_IDBUILD_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服务器,网络波动可能阻塞发布流水线

Macos Spm App Packaging 内容

assets文件夹
templates文件夹
bootstrap文件夹
Sources文件夹
MyApp文件夹
references文件夹
手动下载zip · 13.6 kB
main.swifttext/plain
请选择文件