2017-07-25 57 views
0

我尝试在Buddybuild的预生成步骤中安装Fastlane。如何在Buddybuild上安装Fastlane

我的预构建脚本是这样的:

#!/bin/bash 
if ! which fastlane >/dev/null; then 
    echo "Installing fastlane this may need sudo" 
    sudo gem install fastlane 
else 
    echo "Updating fastlane this may need sudo" 
    sudo gem update fastlane 
fi 

我得到以下错误:

ERROR: Error installing fastlane:
ERROR: Failed to build gem native extension.
/usr/bin/ruby2.1 mkrf_conf.rb .
Building native extensions. This could take a while... /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:89:in `run': ERROR: Failed to build gem native extension. (Gem::Ext::BuildError) .
/usr/bin/ruby2.1 extconf.rb .
mkmf.rb can't find header files for ruby at
/usr/lib/ruby/include/ruby.h extconf failed, exit code 1

我怎样才能解决这个问题?

日志

Gem files will remain installed in /var/lib/gems/2.1.0/gems/unf-0.2.0.beta2/ext/gems/gems/unf_ext-0.0.7.4 for inspection. Results logged to /var/lib/gems/2.1.0/gems/unf-0.2.0.beta2/ext/gems/extensions/x86_64-linux/2.1.0/unf_ext-0.0.7.4/gem_make.out from /usr/lib/ruby/2.1.0/rubygems/ext/ext_conf_builder.rb:38:in block in build from /usr/lib/ruby/2.1.0/tempfile.rb:324:in 'open' from /usr/lib/ruby/2.1.0/rubygems/ext/ext_conf_builder.rb:17:in 'build' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:161:in 'block (2 levels) in build_extension' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:160:in 'chdir' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:160:in 'block in build_extension' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:159:in 'synchronize' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:159:in `build_extension' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:198:in 'block in build_extensions' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in 'each' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in 'build_extensions' from /usr/lib/ruby/2.1.0/rubygems/installer.rb:677:in 'build_extensions' from /usr/lib/ruby/2.1.0/rubygems/installer.rb:232:in 'install' from /usr/lib/ruby/2.1.0/rubygems/resolver/specification.rb:78:in 'install' from /usr/lib/ruby/2.1.0/rubygems/request_set.rb:206:in 'block in install_into' from /usr/lib/ruby/2.1.0/rubygems/request_set.rb:198:in 'each' from /usr/lib/ruby/2.1.0/rubygems/request_set.rb:198:in 'install_into' from /usr/lib/ruby/2.1.0/rubygems/request_set.rb:119:in 'install' from /usr/lib/ruby/2.1.0/rubygems/dependency_installer.rb:389:in 'install' from mkrf_conf.rb:15:in '' rake failed, exit code 1 Gem files will remain installed in /var/lib/gems/2.1.0/gems/unf-0.2.0.beta2 for inspection. Results logged to /var/lib/gems/2.1.0/extensions/x86_64-linux/2.1.0/unf-0.2.0.beta2/gem_make.out

回答

0

变化的休息你的脚本:

if ! which fastlane >/dev/null; then 
    echo "Installing fastlane..." 
    echo password | sudo -S gem install fastlane 
else 
    echo "Updating fastlane..." 
    echo password | sudo -S gem update fastlane 
fi 
0

我们的建议(并且,事实证明,fastlane's)是使用打捆和Gemfile中来实现这一目标。它可以让你使用特定版本的fastlane,作为奖励,不需要sudo。

让我知道这是否有帮助!