GitHub iOS 項目發(fā)布流程 —— Tag 與 Release 規(guī)范

項目每發(fā)布一個版本,要養(yǎng)成打 Tag 和 Release 的好習(xí)慣。

比如上線 v1.0.0 之后,隨手在 github 倉庫上就 main 分支打個 v1.0.0 tag, v1.0.1、 v1.1.0、 v2.0.0 等等,這樣每次升級都打個標(biāo)簽,可以方便后續(xù)追查。

1. 版本命名規(guī)范

采用業(yè)界標(biāo)準(zhǔn)的 Semantic Versioning,格式為:

v{major}.{minor}.{patch}
字段 含義 觸發(fā)時機
major 主版本號 破壞性更新,不向下兼容
minor 次版本號 新功能,向下兼容
patch 補丁版本號 Bug 修復(fù)

典型迭代示例:

v1.0.0   首次上線
v1.0.1   修復(fù)線上 crash
v1.1.0   新增功能模塊
v2.0.0   大版本改版,接口不兼容

2. iOS 項目版本號對應(yīng)關(guān)系

App Store 有兩個版本概念,建議與 Git tag 保持對應(yīng):

Xcode 字段 說明 示例
CFBundleShortVersionString(Marketing Version) 對應(yīng) tag 版本號 1.0.0
CFBundleVersion(Build Number) CI 構(gòu)建號,不放入 tag 100

3. 命令行發(fā)布流程(供參考)

# 切換到 main 分支并拉取最新代碼
git checkout main
git pull origin main

# 創(chuàng)建 annotated tag(推薦,包含作者、時間、message 信息)
git tag -a v1.0.0 -m "Release v1.0.0 - 首次上線"

# 推送 tag 到遠(yuǎn)端
git push origin v1.0.0

注意:tag 打在 merge 到 main 之后的 commit 上,而非 develop 分支。


4. GitHub 網(wǎng)頁端發(fā)布流程

4.1 合并 develop 到 main
  1. 在 GitHub 發(fā)起 Pull Request:developmain
  2. Code Review 通過后,點擊 Merge pull request
  3. 確認(rèn) main 分支已更新至最新 commit
4.2 創(chuàng)建 Release
  1. 進(jìn)入倉庫主頁,點擊右側(cè) Releases 區(qū)域的 Create a new release
  2. 填寫以下信息:
字段 填寫內(nèi)容
Choose a tag 輸入 v1.0.0,選擇 "Create new tag on publish"
Target 確認(rèn)選擇 main
Release title v1.0.0v1.0.0 - 首次發(fā)布
Description 點擊 "Generate release notes" 自動生成,或手動填寫
  1. 點擊 Publish release
4.3 選項說明
  • Set as a pre-release:標(biāo)記為非正式版本(適用于 beta、rc 等測試版),正式上線不勾選
  • Set as the latest release:標(biāo)記為最新正式版本,正式上線保持勾選

5. Release 頁面說明

發(fā)布成功后,Release 頁面包含以下內(nèi)容:

  • What's Changed:自動匯總本次 PR 的變更內(nèi)容
  • New Contributors:首次貢獻(xiàn)者列表
  • Full Changelog:完整的 commit 鏈接
  • Assets:GitHub 自動打包的源碼壓縮包(zip / tar.gz),由平臺自動生成,iOS 私有項目可忽略

6. 完整分支策略示意

develop  ──●──●──●──●──────────────────────
                        ↘ Pull Request #3
main     ──────────────── ● ─────────────
                        e9288b2
                          ↑
                        tag: v1.0.0

2026.03.26 09:09
滬 · 趙巷

?? 聲明:本文由 AI 輔助完成

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容