ios - pod install 在 Jenkins 上给出错误

标签 ios jenkins cocoapods

从安装了 jenkins 的系统运行 pod install 时,它运行良好,但是当我们从 jenkins 运行相同的命令时,它会给出以下错误。我通过添加和删除不同的 pod 来检查特定 pod 是否有错误,但它给出了相同的错误。

```
   CocoaPods : 1.0.0
        Ruby : ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
    RubyGems : 2.0.14.1
        Host : Mac OS X 10.11.4 (15E65)
       Xcode : 7.3 (7D175)
         Git : git version 2.6.4 (Apple Git-63)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ 96d7af9b448bfdb55e1319fac100e08341bb8fab
```

### Plugins

```
cocoapods-deintegrate : 1.0.0
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.0.0
cocoapods-trunk       : 1.0.0
cocoapods-try         : 1.0.0
```

### Podfile

```ruby
platform :ios, '7.0'
use_frameworks!

target “MobileShippingApp” do
pod 'Fabric'
pod 'Crashlytics'
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
            config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
            config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
        end
    end
end
```

### Error

```
NameError - undefined local variable or method `executable' for Pod::Executable:Module
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/executable.rb:111:in `block in which!'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/executable.rb:110:in `tap'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/executable.rb:110:in `which!'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/executable.rb:133:in `capture_command'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/sources_manager.rb:101:in `git'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.0.0/lib/cocoapods-core/source.rb:45:in `block in url'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.0.0/lib/cocoapods-core/source.rb:44:in `chdir'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.0.0/lib/cocoapods-core/source.rb:44:in `url'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.0.0/lib/cocoapods-core/source/manager.rb:347:in `block in source_with_url'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.0.0/lib/cocoapods-core/source/manager.rb:346:in `each'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.0.0/lib/cocoapods-core/source/manager.rb:346:in `find'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.0.0/lib/cocoapods-core/source/manager.rb:346:in `source_with_url'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/sources_manager.rb:17:in `find_or_create_source_with_url'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/installer/analyzer.rb:654:in `block in sources'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/installer/analyzer.rb:653:in `map'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/installer/analyzer.rb:653:in `sources'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/installer.rb:144:in `resolve_dependencies'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/installer.rb:114:in `install!'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/command/install.rb:37:in `run'
    /Library/Ruby/Gems/2.0.0/gems/claide-1.0.0/lib/claide/command.rb:334:in `run'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/lib/cocoapods/command.rb:50:in `run'
    /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.0.0/bin/pod:55:in `<top (required)>'
    /usr/local/bin/pod:23:in `load'
    /usr/local/bin/pod:23:in `<main>'
    ```

最佳答案

我遇到了同样的问题,但不是通过 Jenkins 。
我假设您系统的操作系统与 Jenkins 设置是 El Capitan。

我所做的是,我卸载了 cocoa pod 并安装了最新版本的 Ruby。
首先,我安装了 Homebrew。

Homebrew 带有一个非常简单的安装脚本。当它要求您安装 XCode 命令行工具时,请说是。

打开终端并运行以下命令:

ruby -e "$(curl -fsSL    https://raw.githubusercontent.com/Homebrew/install/master/install)" 

之后我使用 rbenv 安装了 Ruby 2.3.1
brew install rbenv ruby-build
rbenv install 2.3.1
rbenv global 2.3.1ruby -v

安装最新版本的 Ruby 后,我按照以下步骤安装 CocoaPods
sudo gem install -n /usr/local/bin cocoapods


gem安装成功后
$ export PATH=$PATH:/Library/Ruby/bin

您可以查看此问题以获取更多详细信息
https://github.com/CocoaPods/CocoaPods/issues/3692

关于ios - pod install 在 Jenkins 上给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37434610/

相关文章:

ios - 类方法返回不同的值

ios - Swift iOS 应用程序不使用 Socket.IO 连接到服务器

Jenkins:通过 Groovy 读取现有作业的插件配置

android - 多个模拟器上的 connectedAndroidTest

xcode - Cocoapods Private Repo 没有为标签提取正确的代码

ios - podspec 规范未验证

ios - 如何模拟 AFHTTPClient 类和测试方法 getPath :parameters:success:failure:?

ios - Firebase 更改 photoURL

ssh - 在没有 Tomcat 的情况下运行 Jenkins,尝试 SSH

ios - 在 Xcode 项目中找不到 Firebase 文件