原生 macOS 阅读器:PDF(PDFKit)、EPUB(嵌入式 WebKit 运行时)。SwiftUI + AppKit。
- macOS 14.0 或更高
- Xcode(建议当前正式版或与工程 Swift 版本匹配的工具链)
在项目根目录(含 PDF-Reader.xcodeproj)执行:
open PDF-Reader.xcodeproj在 Xcode 中选择 Scheme PDF-Reader,菜单 Product → Run(或 ⌘R)。
进入项目根目录后执行。Scheme、项目名称区分大小写,与工程中一致:PDF-Reader。
cd /path/to/PDF-Reader
xcodebuild -project PDF-Reader.xcodeproj \
-scheme PDF-Reader \
-configuration Debug \
-destination 'platform=macOS' \
buildxcodebuild -project PDF-Reader.xcodeproj \
-scheme PDF-Reader \
-configuration Release \
-destination 'platform=macOS' \
buildxcodebuild -project PDF-Reader.xcodeproj \
-scheme PDF-Reader \
-configuration Release \
-destination 'platform=macOS' \
-derivedDataPath ./DerivedData \
build构建成功后,应用在:
DerivedData/Build/Products/Release/PDF Reader.app
(Debug 配置的子目录名为 Debug。)
Debug 产物默认在 Xcode 的 DerivedData 下,也可用上面 -derivedDataPath 固定位置后执行:
open "./DerivedData/Build/Products/Release/PDF Reader.app"仓库已包含工作流 .github/workflows/release-on-tag.yml:推送以 v 开头的 tag(如 v1.0.0)后,GitHub Actions 会在 macOS 上跑一次 Release 构建,将 PDF Reader.app 打成 ZIP,并自动创建/更新对应的 GitHub Release,把 ZIP 挂在 Release 附件里。
在项目根目录、且默认分支已与远程同步的前提下:
# 选一个与版本号一致的 tag(须以 v 开头,与工作流匹配)
git tag -a v1.0.0 -m "Release 1.0.0"
# 推到 GitHub(只推 tag)
git push origin v1.0.0
# 或一次性推送分支上所有本地 tag(慎用)
git push origin --tags推送成功后,打开 GitHub 仓库页的 Actions 查看运行日志;成功后到 Releases 页面下载 PDF-Reader-v1.0.0-macos.zip(文件名中的版本与 tag 一致)。
在 GitHub Releases → Draft a new release 里填写 Tag:例如 v1.0.0,选择「从 tag 创建」并发布——同样会 push 一个 tag,只要符合 v*,仍会触发同一工作流。
- 若 CI 报错与 token 写 Release 有关:在仓库 Settings → Actions → General,将 Workflow permissions 设为可读写 Contents(或勾选允许 GITHUB_TOKEN 写入)。
- Runner 上使用 跳过你本机的开发者签名:产物为未签名
.app,适合内测或未公证分发;需要 公证 / 上架时,请在本地用 Xcode 选择你的 Team 做 Archive 与 notarize。
若要匹配其它 tag 格式(例如 1.0.0 无 v 前缀),请修改工作流里 on.push.tags 的 glob 表达式。