无需 Xcode 项目:使用 SwiftPM 构建并打包 macOS 应用

解决依赖 Xcode 项目文件的繁琐流程:通过 SwiftPM 实现 macOS 应用的轻量化开发,提供一套完整的从项目初始化到签名公证、最终打包发布的自动化工作流。

为什么需要这个技能

传统的 macOS 开发高度依赖 .xcodeproj 文件,这在进行版本控制或自动化 CI/CD 时经常产生冲突且难以维护。

实际上,SwiftPM(Swift Package Manager)已经足够支持构建完整的 macOS 应用。通过定义正确的目录结构和自动化脚本,你可以直接在终端完成编译、创建 .app Bundle、执行代码签名(Signing)以及 Apple 的公证(Notarization)流程,无需打开 Xcode 界面即可交付可分发的应用。

适用场景

  • 想要构建轻量级 macOS 工具,且不希望维护复杂的 Xcode 项目文件。
  • 需要在 CI/CD 流水线中自动构建、签名并分发 Swift 应用。
  • 需要为 SwiftPM 项目实现标准的 .app 打包、公证以及基于 Sparkle 的更新机制。

核心工作流

本技能将构建过程分为两个核心阶段:

1. 项目初始化(Bootstrap)

  • 骨架搭建:将 assets/templates/bootstrap/ 模板复制到新仓库。
  • 自定义配置:修改 Package.swiftSources/ 目录名以及 version.env 中的 APP_NAMEBUNDLE_ID

2. 构建、打包与发布

  • 基础构建:使用 swift build 编译,swift test 运行测试。
  • 应用打包:执行 Scripts/package_app.sh 将二进制文件和资源封装进 .app Bundle。
  • 快速运行:使用 Scripts/compile_and_run.sh 实现“编译-打包-启动”的一键循环。
  • 正式发布:运行 Scripts/sign-and-notarize.sh 进行签名和公证,最后通过 Scripts/make_appcast.sh 生成 Sparkle 更新配置。

快速上手示例

# 1. 复制骨架并重命名
cp -R assets/templates/bootstrap/ ~/Projects/HelloApp
cd ~/Projects/HelloApp
sed -i '' 's/MyApp/HelloApp/g' Package.swift version.env

# 2. 配置自动化脚本
cp assets/templates/package_app.sh Scripts/
cp assets/templates/compile_and_run.sh Scripts/
chmod +x Scripts/*.sh

# 3. 构建并启动
swift build
Scripts/compile_and_run.sh

下载和安装

下载 macos-spm-app-packaging 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐