You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode Cloud自动生成TestFlight测试发布笔记失败求助

解决Xcode Cloud中Git标签获取失败的问题

问题根源

Xcode Cloud默认采用**浅克隆(Shallow Clone)**拉取代码,仅获取当前分支的最新提交,不会同步完整仓库历史和远程标签,导致本地git环境找不到任何标签,触发No tags can describe错误。

修复后的脚本

# 将浅克隆转为完整克隆(若已是完整克隆则忽略错误)
git fetch --unshallow || true

# 拉取所有远程标签到本地
git fetch --tags -q

# 获取最近的标签;若无标签则取仓库根提交的哈希值
lastTag=$(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)

echo "last tag: $lastTag"

# 生成从lastTag到当前HEAD的提交记录,写入TestFlight描述文件
git log --pretty=format:"%s" "$lastTag..HEAD" > "$CI_WORKSPACE/TestFlight/WhatToTest.en-US.txt"

关键修改说明

  • git fetch --unshallow || true:强制将浅克隆转为完整克隆,确保能访问所有历史提交和标签;加|| true是为了避免仓库已是完整克隆时的报错中断脚本。
  • 标签 fallback 逻辑:当仓库还没有任何标签时,用git rev-list --max-parents=0 HEAD获取根提交的哈希,保证git log命令能正常输出所有提交记录,不会因为lastTag为空而失败。
  • git fetch --tags -q:明确拉取所有远程标签,确保本地标签列表与远程同步。

额外验证

如果问题仍存在,检查Xcode Cloud的构建配置:确保在Pre-build阶段执行该脚本,且构建账号拥有仓库的标签读取权限。

内容的提问来源于stack exchange,提问作者Tommy Sadiq Hinrichsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:52:44