Skip to content

Commit 360e439

Browse files
committed
fix xcode sdk selection
1 parent 1a249a1 commit 360e439

1 file changed

Lines changed: 42 additions & 14 deletions

File tree

.github/workflows/electron-release.yml

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -275,17 +275,31 @@ jobs:
275275
shell: bash
276276
run: |
277277
set -euo pipefail
278-
XCODE_APP="$(find /Applications -maxdepth 1 -type d \( -name 'Xcode_26*.app' -o -name 'Xcode-26*.app' \) | sort | tail -n 1)"
279-
if [[ -z "$XCODE_APP" && -d /Applications/Xcode.app ]]; then
280-
XCODE_APP="/Applications/Xcode.app"
278+
CANDIDATES="$(find /Applications -maxdepth 1 -type d \( -name 'Xcode_26*.app' -o -name 'Xcode-26*.app' \) | sort -r)"
279+
if [[ -z "$CANDIDATES" && -d /Applications/Xcode.app ]]; then
280+
CANDIDATES="/Applications/Xcode.app"
281281
fi
282-
[[ -n "$XCODE_APP" ]] || { echo "No Xcode 26 installation found under /Applications"; exit 1; }
283-
sudo xcode-select -s "$XCODE_APP/Contents/Developer"
282+
SELECTED_XCODE_APP=""
283+
while IFS= read -r XCODE_APP; do
284+
[[ -n "$XCODE_APP" ]] || continue
285+
DEV_DIR="$XCODE_APP/Contents/Developer"
286+
XCODE_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcodebuild -version 2>/dev/null | awk 'NR==1 {print $2}')"
287+
SDK_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcrun --sdk iphoneos --show-sdk-version 2>/dev/null || true)"
288+
echo "Candidate: $XCODE_APP, Xcode ${XCODE_VERSION:-unknown}, iPhoneOS SDK ${SDK_VERSION:-missing}"
289+
if [[ "$XCODE_VERSION" == 26.* && "$SDK_VERSION" == 26.* ]]; then
290+
SELECTED_XCODE_APP="$XCODE_APP"
291+
break
292+
fi
293+
done <<< "$CANDIDATES"
294+
[[ -n "$SELECTED_XCODE_APP" ]] || { echo "No Xcode 26 installation with iPhoneOS 26 SDK found under /Applications"; exit 1; }
295+
sudo xcode-select -s "$SELECTED_XCODE_APP/Contents/Developer"
284296
XCODE_VERSION="$(xcodebuild -version | awk 'NR==1 {print $2}')"
297+
SDK_VERSION="$(xcrun --sdk iphoneos --show-sdk-version)"
285298
[[ "$XCODE_VERSION" == 26.* ]] || { echo "Expected Xcode 26.x but found $XCODE_VERSION"; exit 1; }
286-
echo "Selected $XCODE_APP"
299+
[[ "$SDK_VERSION" == 26.* ]] || { echo "Expected iPhoneOS 26.x SDK but found $SDK_VERSION"; exit 1; }
300+
echo "Selected $SELECTED_XCODE_APP"
287301
xcodebuild -version
288-
xcrun --sdk iphoneos --show-sdk-version
302+
echo "iPhoneOS SDK: $SDK_VERSION"
289303
290304
- name: Install fastlane gems
291305
working-directory: mobile/ios
@@ -443,17 +457,31 @@ jobs:
443457
shell: bash
444458
run: |
445459
set -euo pipefail
446-
XCODE_APP="$(find /Applications -maxdepth 1 -type d \( -name 'Xcode_26*.app' -o -name 'Xcode-26*.app' \) | sort | tail -n 1)"
447-
if [[ -z "$XCODE_APP" && -d /Applications/Xcode.app ]]; then
448-
XCODE_APP="/Applications/Xcode.app"
460+
CANDIDATES="$(find /Applications -maxdepth 1 -type d \( -name 'Xcode_26*.app' -o -name 'Xcode-26*.app' \) | sort -r)"
461+
if [[ -z "$CANDIDATES" && -d /Applications/Xcode.app ]]; then
462+
CANDIDATES="/Applications/Xcode.app"
449463
fi
450-
[[ -n "$XCODE_APP" ]] || { echo "No Xcode 26 installation found under /Applications"; exit 1; }
451-
sudo xcode-select -s "$XCODE_APP/Contents/Developer"
464+
SELECTED_XCODE_APP=""
465+
while IFS= read -r XCODE_APP; do
466+
[[ -n "$XCODE_APP" ]] || continue
467+
DEV_DIR="$XCODE_APP/Contents/Developer"
468+
XCODE_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcodebuild -version 2>/dev/null | awk 'NR==1 {print $2}')"
469+
SDK_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcrun --sdk iphoneos --show-sdk-version 2>/dev/null || true)"
470+
echo "Candidate: $XCODE_APP, Xcode ${XCODE_VERSION:-unknown}, iPhoneOS SDK ${SDK_VERSION:-missing}"
471+
if [[ "$XCODE_VERSION" == 26.* && "$SDK_VERSION" == 26.* ]]; then
472+
SELECTED_XCODE_APP="$XCODE_APP"
473+
break
474+
fi
475+
done <<< "$CANDIDATES"
476+
[[ -n "$SELECTED_XCODE_APP" ]] || { echo "No Xcode 26 installation with iPhoneOS 26 SDK found under /Applications"; exit 1; }
477+
sudo xcode-select -s "$SELECTED_XCODE_APP/Contents/Developer"
452478
XCODE_VERSION="$(xcodebuild -version | awk 'NR==1 {print $2}')"
479+
SDK_VERSION="$(xcrun --sdk iphoneos --show-sdk-version)"
453480
[[ "$XCODE_VERSION" == 26.* ]] || { echo "Expected Xcode 26.x but found $XCODE_VERSION"; exit 1; }
454-
echo "Selected $XCODE_APP"
481+
[[ "$SDK_VERSION" == 26.* ]] || { echo "Expected iPhoneOS 26.x SDK but found $SDK_VERSION"; exit 1; }
482+
echo "Selected $SELECTED_XCODE_APP"
455483
xcodebuild -version
456-
xcrun --sdk iphoneos --show-sdk-version
484+
echo "iPhoneOS SDK: $SDK_VERSION"
457485
458486
- name: Install fastlane gems
459487
working-directory: mobile/ios

0 commit comments

Comments
 (0)