SuperAPI AI 工具集

guide-macos-spm-packaging

编程与开发

查看项目

更新于 10-16 03:48

技能介绍

用途:在不使用 Xcode 工程的情况下,从零搭建、构建、打包并运行基于 SwiftPM 的 macOS 应用。它是专家工作流/模式指南,而非 API 参考文档。

主要能力:提供 bootstrap 模板生成完整应用目录;通过脚本完成打包、开发运行循环、图标生成、签名与公证、Sparkle appcast 生成、开发签名身份创建和启动。

使用方式:两步工作流。第一步复制 assets/templates/bootstrap/ 到新仓库,重命名 Package.swift、Sources/MyApp/ 和 version.env 中的 MyApp,自定义 APP_NAME、BUNDLE_ID 和版本。第二步复制 assets/templates/ 下的脚本到仓库(如 Scripts/)。构建与测试用 swift build 和 swift test;打包用 Scripts/package_app.sh;运行用 Scripts/compile_and_run.sh(首选)或 Scripts/launch.sh;发布可选 Scripts/sign-and-notarize.sh 与 Scripts/make_appcast.sh;还可打 git tag 并上传 zip/appcast 到 GitHub release。

验证:打包后用 ls -R、file 检查 .app 结构;签名后用 codesign -dv --verbose=4 和 spctl --assess 检查;公证后用 stapler validate 和 spctl 确认。

限制与注意:需明确保留 entitlements 与签名配置,编辑模板脚本而非重写;不用 Sparkle 可移除相关步骤;Sparkle 依赖 CFBundleVersion,BUILD_NUMBER 每次更新须递增;菜单栏应用打包时设 MENU_BAR_APP=1 以在 Info.plist 输出 LSUIElement。常见公证失败包括重复提交、entitlements 不匹配、缺少 hardened runtime、网络或凭证问题、票据未传播等。