feat: 版本轨道按分支彻底分开,自测分支不再共用 feature 轨
每个分支各有一条独立轨道(轨道名即分支名,master/main 沿用历史名 release), 轨道类型 kind 只决定构建号行为:release 上架自增、feature 自测不自增。 - branch_track 映射分支 → 轨道名,新增分支自动建同名轨道 - 迁移:旧的共用 release / feature 轨按分支拆开并复制已用构建号, 拆完没有分支引用的旧共用轨直接删除;无自测分支时保留 feature 轨作模板 - 分支管理页的下拉只改轨道类型(是否自增),不再影响版本号归属 - 打包设置页按分支分块填写版本号 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BJaZ913U5GVdTkYHiRpvDU
This commit is contained in:
@@ -187,25 +187,36 @@ GIT_PASSWORD=<仅 read_repository 权限的 Personal Access Token>
|
||||
| App 管理 | 应用名称、Scheme、服务器环境、upload_key 等 |
|
||||
| Scheme 管理 | 打包 Scheme 配置 |
|
||||
| 服务器环境 | 测试/正式/自定义环境的 API 地址、Universal Link 等 |
|
||||
| 分支管理 | 可打包的代码分支列表,以及每个分支所属的版本轨道(上架分支各自独立) |
|
||||
| 分支管理 | 可打包的代码分支列表,以及每个分支的版本轨道类型(上架 / 自测) |
|
||||
| 版本号 | 服务端统一管理 App_Ver 和 Build_Ver,不修改分支源码;按版本轨道分开管理(见下) |
|
||||
| 上传配置 | 服务端内置 OSS / WebDAV 分发,生成 IPA、manifest、下载页和二维码 |
|
||||
|
||||
### 版本号与版本轨道
|
||||
|
||||
版本号按 **轨道(track)** 分开管理,各轨道的 App_Ver 各自独立填写、互不影响:
|
||||
**每个分支各有一条版本轨道(track)**,App_Ver 与构建号完全独立、互不影响。轨道名即分支名(master / main 沿用历史名称 `release`),轨道类型 `kind` 决定构建号行为:
|
||||
|
||||
| 轨道 | 适用分支 | 构建号行为 |
|
||||
|------|----------|-----------|
|
||||
| `release`(上架) | master / main | App_Store 打包时按当前 App_Ver 自动 +1 |
|
||||
| `develop` 等以分支名命名的上架轨 | develop、release-*、hotfix-* 等其它上架分支,每个分支一条 | 同上,与 `release` 轨互不影响 |
|
||||
| `feature`(自测) | feature/* 等其他分支,共用一条 | 永不自增,始终使用配置页填写的值(默认 `.0`) |
|
||||
| 轨道类型 | 默认适用分支 | 构建号行为 |
|
||||
|----------|--------------|-----------|
|
||||
| `release`(上架) | master、main、develop、dev、release-*、hotfix-* | App_Store 打包时按当前 App_Ver 自动 +1 |
|
||||
| `feature`(自测) | 其余分支 | 永不自增,始终使用配置页填写的值(默认 `.0`) |
|
||||
|
||||
- 分支归属默认按名字推断(master/main → `release` 轨,develop/dev/release-*/hotfix-* → 以分支名命名的轨,其余 → `feature`),可在「分支管理」页逐个改;改成「上架」即为该分支建一条独立轨道。
|
||||
- 「打包设置」页按上架分支分块填写版本号,最后一块是共用的自测版本号。
|
||||
```jsonc
|
||||
"versions": {
|
||||
"tracks": {
|
||||
"release": { "kind": "release", "app_ver": "2.195.0", "build_map": { "2.195.0": 7 } }, // master
|
||||
"develop": { "kind": "release", "app_ver": "2.196.0", "build_map": {} },
|
||||
"feature/login": { "kind": "feature", "app_ver": "2.100.0", "build_map": {} }
|
||||
}
|
||||
},
|
||||
"branch_track": { "master": "release", "develop": "develop", "feature/login": "feature/login" }
|
||||
```
|
||||
|
||||
- 新增分支时自动建一条同名轨道,类型按分支名推断,可在「分支管理」页逐个改(只改构建号是否自增,版本号仍各自独立)。
|
||||
- 「打包设置」页按分支分块填写版本号。
|
||||
- 每条轨道内的构建号按 App_Ver 独立记录(`build_map`),回退到打过包的旧版本号时会从它自己的最大值继续,不会与 App Store Connect 上已传构建号冲突。
|
||||
- App Store 的构建号唯一性按 App_Ver 全局判定,因此两个上架分支若临时用了同一个 App_Ver,递增时会跨轨道取最大值 +1,避免重号被拒。
|
||||
- 旧配置(master/develop 共用的 `release` 轨)首次启动时自动拆开:master 留在 `release` 轨,develop 新建 `develop` 轨并复制一份已用构建号。
|
||||
- 旧配置(master/develop 共用的 `release` 轨、各自测分支共用的 `feature` 轨)首次启动时自动拆开:master 留在 `release` 轨,其余分支新建同名轨道并复制一份已用构建号。
|
||||
- 需要两个分支共用同一条版本线时,可直接把 `branch_track` 里的值指向另一条轨道名。
|
||||
|
||||
### 服务端自动化资源
|
||||
|
||||
|
||||
Reference in New Issue
Block a user