Xcode Cloud执行Flutter命令报错:fatal: Not a valid object name origin/master
解决Xcode Cloud工作流中"fatal: Not a valid object name origin/master"错误
问题分析
错误提示表明当前仓库中找不到origin/master的引用,大概率是Xcode Cloud默认采用浅克隆(仅拉取最新提交,不包含完整分支引用)导致的——尤其是Xcode 16.2可能调整了克隆策略,使得远程分支引用未被正确拉取。而Flutter命令执行时依赖当前仓库的git分支信息,因此触发错误。
解决方案
方案1:在脚本中补充git拉取命令
修改ci_post_clone.sh,进入仓库路径后先拉取远程分支引用,确保origin/master存在:
#!/bin/sh set -e cd $CI_PRIMARY_REPOSITORY_PATH # 新增:拉取远程master分支的引用 git fetch origin master # 可选:确保当前工作分支为master git checkout master echo "Installing Flutter using git" git clone https://github.com/flutter/flutter.git --depth 1 -b stable $HOME/flutter export PATH="$PATH:$HOME/flutter/bin" echo "Flutter artifacts" flutter precache --ios ... more commands here.....
方案2:调整Xcode Cloud工作流的克隆设置
在Xcode Cloud工作流配置中,将浅克隆改为完整克隆:
- 打开Xcode,进入
Product > Cloud > Workflows - 选择对应工作流,切换到
Environment标签页 - 找到
Repository Cloning设置,将Clone Depth改为Full
方案3:确认分支名一致性
检查远程仓库分支名确实为master(而非main或其他名称),本地执行git branch -a可查看所有远程分支列表,确保推送分支与工作流监听分支完全匹配。
验证
修改后重新推送代码到origin/master触发工作流,观察错误是否消失。本地可模拟浅克隆场景测试:
git clone --depth 1 <你的仓库地址> cd <仓库目录> git fetch origin master # 执行Flutter命令验证
内容的提问来源于stack exchange,提问作者jordi toda
相关产品推荐
相关产品推荐

