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

Xcode中通过GitHub SSH获取SPM仓库时出现错误

解决Xcode通过SSH导入私有GitHub SPM包的报错问题

1. 确认远程仓库的默认分支名

报错提示refs/remotes/origin/main找不到,首先排查私有仓库的默认分支是否为main:

  • 终端执行克隆命令测试:git clone git@github.com:<你的用户名>/my-repo.git
  • 进入仓库后查看全部分支:git branch -a
  • 如果远程默认分支是master而非main,需修改项目依赖配置:要么在Xcode添加依赖时选择正确分支/tag/commit,要么调整私有包Package.swift里的defaultBranch参数。

2. 验证SSH认证是否真正生效

Xcode账户配置了SSH,但可能和终端的SSH环境不一致:

  • 终端执行ssh -T git@github.com,确认输出包含Hi <用户名>! You've successfully authenticated...,证明SSH认证正常
  • 若认证失败,检查~/.ssh/config的GitHub配置是否正确,示例:
    Host github.com
      IdentityFile ~/.ssh/id_github
      IdentitiesOnly yes
    
  • 确保Xcode使用系统自带的Git:打开Xcode偏好设置→Locations→Command Line Tools,选择系统默认的Xcode Command Line Tools。

3. 让Xcode继承终端的SSH环境变量

Xcode的SPM可能忽略用户SSH配置,可通过终端启动Xcode强制继承:

  • 终端执行:export GIT_SSH_COMMAND="ssh -i ~/.ssh/id_github"
  • 接着从终端启动Xcode:open -a Xcode

4. 彻底清理SPM缓存

Xcode内置的重置缓存可能不彻底,手动清理:

  • 关闭Xcode,删除全局SPM缓存:rm -rf ~/Library/Caches/org.swift.swiftpm
  • 进入项目目录,删除本地包缓存:rm -rf .build Package.resolved
  • 重新打开Xcode,执行File → Packages → Resolve Package Versions

5. 检查私有包的Package.swift配置

确保私有包的配置文件无错误:

  • 确认repositoryURL是正确的SSH链接:git@github.com:<用户名>/my-repo.git
  • 若依赖指定了分支,确认分支真实存在,比如.branch("main")而非不存在的分支名。

6. 脱离Xcode测试Git操作

直接用Swift Package命令拉取依赖,排除Xcode本身的问题:

  • 进入项目目录,终端执行swift package resolve
  • 若命令执行成功,说明问题出在Xcode配置;若失败,聚焦排查Git或SSH的基础配置。

内容的提问来源于stack exchange,提问作者vikzilla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 21:22:41