← ClaudeAtlas

wjs-publishing-testflightlisted

为 iOS 项目配置 fastlane + GitHub Actions,实现推送 main 分支自动构建并上传 TestFlight。参考实现:Cathier 项目。触发词:「testflight」「fastlane」「自动构建」「CI TestFlight」「/wjs-publishing-testflight」。
jianshuo/claude-skills · ★ 82 · AI & Automation · score 85
Install: claude install-skill jianshuo/claude-skills
# wjs-publishing-testflight 为 iOS 项目接入 fastlane + GitHub Actions,推送 main → 自动构建 → TestFlight。参考实现是 Cathier 项目(`github.com/jianshuo/Cathier`)。 ## 前置信息(所有项目通用) | 项目 | 值 | |------|-----| | Apple ID | `jianshuo@hotmail.com` | | Team ID | `97XBW2A43H` | | ITC Team ID | `97847885` | | ASC API Key ID | `S6363V64RS` | | ASC Issuer ID | `69a6de82-56b6-47e3-e053-5b8c7c11a4d1` | | ASC API Key 文件 | iCloud 重要文档目录下的 `.p8` 文件(见 [[apple-developer-credentials]])| | Match certs repo 格式 | `https://github.com/jianshuo/<APP>-certs.git` | ## 工作流逻辑 ``` git push → main ↓ GitHub Actions (macos-15, Xcode 26.2) ↓ fastlane beta ├─ 查询 ASC 最新 build number → 加 1 ├─ match(readonly,拉 appstore 证书) ├─ increment_build_number ├─ build_app (app-store export) ├─ build_num % 10 == 0 → 自动 App Store 提审(bump marketing version) ├─ pbxproj MARKETING_VERSION > 最新 release/* tag → 手动 bump → 提审 └─ 否则 → upload_to_testflight + 打 testflight/<build_num> tag ``` **Auto-release 规则**(Cathier 的约定,新项目可自定): - 每第 10 个 build(build_num % 10 == 0)自动 bump minor 版本并提交 App Store - 或开发者手动改 pbxproj 的 `MARKETING_VERSION` 并推送 - CI 永远不 commit pbxproj,不 push main ## Step 1 — 初始化 fastlane ```bash cd /path/to/YourApp bundle init echo 'gem "fastlane"' >> Gemfile bundle install bundle exec fastlane init ``` ## Step 2 — 文件内容 ### `fastlane/Appfile` ```ruby app_identifier("com.YOUR_BUNDLE_ID") apple_id("jianshuo@hotmail.com") itc_team_id("97847885") team_id("97XBW2A43H") ``` ### `fastlane/Matchfile` ```ru