ios - Xcode 机器人和私有(private) Cocoapods

标签 ios continuous-integration cocoapods osx-server

我一直在尝试使用我的私有(private) cocoapods(我有 3 个、2 个私有(private)的、1 个公共(public)的)设置 Xcode CI。

我有一个简单的运行脚本:

export LANG=en_US.UTF-8
export PATH="/usr/local/bin:$PATH"
cd "$XCS_SOURCE_DIR/myproject"

if [ -e "Pods" ]
then
pod update --verbose
else
pod install --verbose
fi

并且我确保更新我的项目存储库以及 pod 存储库以具有 git@github.com:username/repo.git 样式的远程。

每次运行集成时,我都会收到以下错误:

Update all pods
  Preparing

Cloning spec repo `myproject` from `https://github.com/busycm/CocoapodsPrivateSpecs.git`
  $ /usr/local/bin/git clone https://github.com/busycm/CocoapodsPrivateSpecs.git myproject
[!] Unable to add a source with url `https://github.com/busycm/CocoapodsPrivateSpecs.git` named `myproject`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/sources_manager.rb:48:in `rescue in find_or_create_source_with_url'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/sources_manager.rb:53:in `find_or_create_source_with_url'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/installer/analyzer.rb:623:in `block in sources'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/installer/analyzer.rb:622:in `map'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/installer/analyzer.rb:622:in `sources'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/installer.rb:129:in `resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/installer.rb:105:in `install!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/command/project.rb:71:in `run_install_with_update'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/command/project.rb:156:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:312:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/lib/cocoapods/command.rb:48:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0.beta.4/bin/pod:44:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'
  Cloning into 'myproject'...
  fatal: could not read Username for 'https://github.com': Device not configured

错误表明存在一些 ssh 身份验证问题,但令我感到好奇的是,即使所有存储库都设置为使用 ssh,日志中的所有克隆都是通过 https 完成的。

有人以前见过这样的东西吗?

最佳答案

Xcode Server 有一个单独的用户来运行机器人,称为 _xcsbuildd。该用户可能需要自己的 SSH 公钥和私钥。我必须生成这些才能正确使用 Cocoapods。

首先在你服务器的终端,sudo as _xcsbuildd user:

sudo -s -u _xcsbuildd

然后,在目录/var/_xcsbuildd/ 中生成SSH key 。

ssh-keygen -t rsa -C "example_name_here"

/var/_xcsbuildd/.ssh/ 中,您应该会看到一个名为 id_rsa.pub 的文件。将其内容复制到您的 github 用户的新 SSH key 中。

最后,ssh 到 git@github.com 来验证你的 RSA 指纹:

ssh -T git@github.com (当要求在此处验证您的指纹时,回答"is")

然后重新运行您的机器人,希望这能解决您的问题。

关于ios - Xcode 机器人和私有(private) Cocoapods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32896004/

相关文章:

ios - 从pushViewController View 设置后退按钮

ios - Android 类似 iOS 中的权限

ios - 分组表中的 TableView 页眉/页脚字体(Swift)

ios - 如何在 iOS 中自定义应用程序建议

batch-file - 使用批处理脚本启动 Jenkins 构建

Swift 项目无法识别 CocoaPod 库

continuous-integration - 如何故意破坏代码构建?

bash - Gitlab CI部署AWS EC2

ios - 如何升级指定版本的cocoapod?

ios - 在 iOS Objective C 中添加 Cloudinary Pod