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

为Xcode Cloud配置SSH密钥以访问Bitbucket私有CocoaPods仓库

解决Xcode Cloud批量访问私有CocoaPods的SSH权限问题

针对你有大量私有CocoaPods、无法逐个授权的情况,用全局SSH密钥的方式可以一次性解决权限问题,步骤如下:

1. 生成无密码SSH密钥对

在本地终端执行以下命令,生成一对用于Xcode Cloud的SSH密钥(无密码,避免构建时需要手动输入):

ssh-keygen -t ed25519 -f ~/xcodecloud_pod_key -N ""

执行后会得到两个文件:xcodecloud_pod_key(私钥)和xcodecloud_pod_key.pub(公钥)。

2. 将公钥添加到Bitbucket权限系统

打开xcodecloud_pod_key.pub文件,复制全部内容,登录Bitbucket后:

  • 如果是个人所有的仓库,进入个人设置→SSH密钥,粘贴公钥并保存;
  • 如果是团队仓库,进入团队设置→SSH密钥,添加该公钥。
    这样该密钥对应的账户就能访问所有有权限的私有仓库,无需逐个单独授权。

3. 配置Xcode Cloud构建前脚本

在Xcode项目中添加一个预构建脚本(或者在Xcode Cloud的构建方案里配置),用于在pod install前配置SSH环境:

# 初始化SSH目录并设置安全权限
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 从环境变量写入私钥(不要直接把私钥写在脚本里!)
echo "$XCODECLOUD_SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519

# 添加Bitbucket到可信主机列表,避免首次连接的确认弹窗
ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts

# 配置Git强制使用指定的SSH密钥
git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes"

4. 在Xcode Cloud中添加私钥环境变量

登录App Store Connect,进入你的项目的Xcode Cloud设置:

  1. 找到Environment Variables选项;
  2. 添加一个名为XCODECLOUD_SSH_PRIVATE_KEY的变量;
  3. 把本地生成的xcodecloud_pod_key文件里的私钥内容粘贴进去;
  4. 勾选Secret选项,防止私钥泄露。

5. 确认Podfile的源配置

确保你的Podfile里的私有Spec仓库使用SSH地址,比如:

source 'git@bitbucket.org:your-team/your-pod-specs.git'

不要用HTTPS地址,这样CocoaPods才会通过SSH协议拉取仓库。

6. 触发测试构建

提交代码到仓库,触发Xcode Cloud构建,现在应该能自动完成pod install,无需逐个授权私有Pod仓库。

注意事项

  • 私钥必须通过Secret环境变量传入,绝对不能把私钥内容直接写在脚本或提交到代码仓库;
  • 确保Bitbucket上的公钥对应的账户拥有所有50个私有Pod仓库的访问权限;
  • 如果习惯用RSA密钥,把脚本里的id_ed25519改成id_rsa即可,但ed25519算法更安全高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:05:10