73 lines
1.9 KiB
Bash
Executable File
73 lines
1.9 KiB
Bash
Executable File
#!/bin/zsh
|
|
set -e
|
|
d=${0:a:h}
|
|
cd $d
|
|
|
|
source $d/.env
|
|
|
|
xcrun simctl uninstall booted $BUNDLE_ID
|
|
|
|
echo "Running iOS preview workflow..."
|
|
cd "$REPO_DIR"
|
|
|
|
# 0. Environment Setup (Fix Node Version)
|
|
export NVM_DIR="$HOME/.nvm"
|
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
echo "Checking Node version..."
|
|
if command -v nvm >/dev/null; then
|
|
nvm use 22 || nvm use 20 || echo "Warning: Could not switch to Node 22/20. Current: $(node -v)"
|
|
else
|
|
echo "nvm not found, using system node: $(node -v)"
|
|
fi
|
|
|
|
# 1. Install dependencies
|
|
echo "1. Installing dependencies (yarn)..."
|
|
yarn install
|
|
|
|
# 2. Prebuild (Generate ios directory)
|
|
echo "2. Running Expo Prebuild..."
|
|
# Clean old ios folder to remove old entitlements/AppClip targets
|
|
rm -rf ios
|
|
npx expo prebuild --platform ios --clean
|
|
|
|
# 3. CocoaPods
|
|
echo "3. Installing CocoaPods..."
|
|
# Ensure PATH includes Homebrew ruby gems if needed
|
|
export PATH="/opt/homebrew/lib/ruby/gems/3.4.0/bin:$PATH"
|
|
cd ios
|
|
pod install
|
|
cd ..
|
|
|
|
# 4. Signing (Manual Step)
|
|
echo "4. Opening Xcode for Signing..."
|
|
XCODE_PROJ="ios/${APP_NAME}.xcodeproj"
|
|
# Fallback search if variable name logic differs
|
|
if [ ! -d "$XCODE_PROJ" ]; then
|
|
XCODE_PROJ=$(find ios -name "*.xcodeproj" | head -n 1)
|
|
fi
|
|
|
|
open "$XCODE_PROJ"
|
|
echo "========================================================"
|
|
echo " [ACTION REQUIRED] "
|
|
echo " Xcode opened ($XCODE_PROJ)."
|
|
echo " 1. Go to 'Signing & Capabilities' tab."
|
|
echo " 2. Select your Team."
|
|
echo " 3. Verify 'App Clip' target is gone."
|
|
echo " 4. Ensure no red errors exist."
|
|
echo " Press ENTER here once you are done to continue building."
|
|
echo "========================================================"
|
|
read
|
|
|
|
# 5. Run
|
|
echo "5. Building and Running..."
|
|
# If user wants specific device ID, uncomment below, otherwise let Expo ask/pick boot simulator
|
|
|
|
case $1 in
|
|
d|devicei)
|
|
npx expo run:ios --device "$DEVICE_ID" --configuration Release
|
|
;;
|
|
*)
|
|
npx expo run:ios
|
|
;;
|
|
esac
|