I gave up and just went ahead with local hombrew. Its not great, but feel free to grab my ci_post_clone.sh script. Note that this overwrites .xcode.env so if you have anything in there besides your NODE_BINARY path you'll need to adjust accordingly.
#!/bin/zsh
set -e
export CI_SCRIPTS_DIR=${PWD}
export RN_DIR=${PWD}/../../
export RN_IOS_DIR=${PWD}/../
export BREW_DIR=${CI_DERIVED_DATA_PATH}/opt/hombrew
echo "*** Date: $(date)"
echo "*** Running post clone script in: ${PWD}. RootDir = ${ROOT_DIR}"
echo "*** Running RN_DIR ${RN_DIR}"
echo "*** Running RN_IOS_DIR ${RN_IOS_DIR}"
echo "*** Running BREW_DIR ${BREW_DIR}"
mkdir -p ${BREW_DIR}
export PATH=${BREW_DIR}/bin:${PATH}
cd ${BREW_DIR}
if [[ ! -e "${BREW_DIR}/bin/homebrew" ]]
then
echo "*** Installing home brew"
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1
else
echo "*** Brew already installed. using $(command -v brew)"
fi
echo "*** PATH: ${PATH}"
cd ${ROOT_DIR}
which brew
# Install CocoaPods using Homebrew.
brew install cocoapods node@16 yarn --quiet
brew link --overwrite node@16 --quiet
ls /Users/local/Homebrew/bin
NODE_BINARY="${NODE_BINARY:-$(command -v node || true)}"
echo "### AUTOMATICALLY GENERATED FILE FOR LOCAL HOMEBREW" > ${RN_IOS_DIR}/.xcode.env
echo "export NODE_BINARY=${NODE_BINARY}" >> ${RN_IOS_DIR}/.xcode.env
echo "*** ${RN_IOS_DIR}/.xcode.env: "
cat "${RN_IOS_DIR}/.xcode.env"
# Install dependencies you manage with CocoaPods.
pod install
echo "*** Finish Date: $(date)"
Topic:
Developer Tools & Services
SubTopic:
Xcode Cloud
Tags: