Skip to content
Permalink
Branch: master
Find file Copy path
executable file 62 lines (54 sloc) 2.01 KB
#!/bin/bash
# shellcheck disable=SC2155
# shellcheck disable=SC1090
# Originally from, https://stackoverflow.com/questions/33041109
# Modified to work in RVM and non RVM environments
#
# Xcode 7 (incl. 7.0.1) seems to have a dependency on the system ruby.
# xcodebuild has issues by using rvm to map to another non-system
# ruby. This script is a fix that allows you call xcodebuild in a
# "safe" rvm environment, but will not (AFAIK) affect the "external"
# rvm setting.
#
# The script is a drop in replacement for your xcodebuild call.
#
# xcodebuild arg1 ... argn
#
# would become
#
# path/to/xcbuild-safe.sh arg1 ... argn
#
# More information available here: https://github.com/fastlane/fastlane/issues/6495
# -----
which rvm > /dev/null
# shellcheck disable=SC2181
if [[ $? -eq 0 ]]; then
echo "RVM detected, forcing to use system ruby"
# This allows you to use rvm in a script. Otherwise you get a BS
# error along the lines of "cannot use rvm as function". Jeez.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
# Cause rvm to use system ruby. AFAIK, this is effective only for
# the scope of this script.
rvm use system
fi
if which rbenv > /dev/null; then
echo "rbenv detected, removing env variables"
# Cause rbenv to use system ruby. Lasts only for the scope of this
# session which will normally just be this script.
rbenv shell system
fi
# Since Xcode has a dependency to 2 external gems: sqlite and CFPropertyList
# More information https://github.com/fastlane/fastlane/issues/6495
# We have to unset those variables for rbenv, rvm and when the user uses bundler
unset RUBYLIB
unset RUBYOPT
unset BUNDLE_BIN_PATH
unset _ORIGINAL_GEM_PATH
unset BUNDLE_GEMFILE
# Even if we do not use rbenv in some environments such as CircleCI,
# We also need to unset GEM_HOME and GEM_PATH explicitly.
# More information https://github.com/fastlane/fastlane/issues/6277
unset GEM_HOME
unset GEM_PATH
set -x # echoes commands
xcodebuild "$@" # calls xcodebuild with all the arguments passed to this
You can’t perform that action at this time.