@@ -251,7 +251,7 @@ jobs:
251251 if-no-files-found : error
252252
253253 capacitor-ios :
254- runs-on : macos-26
254+ runs-on : macos-latest
255255 steps :
256256 - uses : actions/checkout@v4
257257
@@ -271,51 +271,6 @@ jobs:
271271 with :
272272 ruby-version : ${{ env.RUBY_VERSION }}
273273
274- - name : Select Xcode 26
275- shell : bash
276- run : |
277- set -euo pipefail
278- CANDIDATES=""
279- if [[ -d /Applications/Xcode.app ]]; then
280- CANDIDATES="/Applications/Xcode.app"
281- fi
282- EXTRA_CANDIDATES="$(find /Applications -maxdepth 1 -type d \( -name 'Xcode_26*.app' -o -name 'Xcode-26*.app' \) ! -name 'Xcode.app' | sort -r)"
283- if [[ -n "$EXTRA_CANDIDATES" ]]; then
284- CANDIDATES="${CANDIDATES:+${CANDIDATES}"$'\n'}${EXTRA_CANDIDATES}"
285- fi
286- SELECTED_XCODE_APP=""
287- BETA_FALLBACK=""
288- while IFS= read -r XCODE_APP; do
289- [[ -n "$XCODE_APP" ]] || continue
290- DEV_DIR="$XCODE_APP/Contents/Developer"
291- SDK_DIR="$DEV_DIR/Platforms/iPhoneOS.platform/Developer/SDKs"
292- XCODE_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcodebuild -version 2>/dev/null | awk 'NR==1 {print $2}')"
293- SDK_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcrun --sdk iphoneos --show-sdk-version 2>/dev/null || true)"
294- HAS_PLATFORM="no"
295- if [[ -d "$SDK_DIR" ]] && find "$SDK_DIR" -maxdepth 1 -name 'iPhoneOS*.sdk' | grep -q .; then
296- HAS_PLATFORM="yes"
297- fi
298- echo "Candidate: $XCODE_APP, Xcode ${XCODE_VERSION:-unknown}, iPhoneOS SDK ${SDK_VERSION:-missing}, platform installed: $HAS_PLATFORM"
299- if [[ "$XCODE_VERSION" == 26.* && "$SDK_VERSION" == 26.* && "$HAS_PLATFORM" == "yes" ]]; then
300- if [[ "$(basename "$XCODE_APP" | tr '[:upper:]' '[:lower:]')" == *beta* ]]; then
301- [[ -n "$BETA_FALLBACK" ]] || BETA_FALLBACK="$XCODE_APP"
302- continue
303- fi
304- SELECTED_XCODE_APP="$XCODE_APP"
305- break
306- fi
307- done <<< "$CANDIDATES"
308- [[ -n "$SELECTED_XCODE_APP" ]] || SELECTED_XCODE_APP="$BETA_FALLBACK"
309- [[ -n "$SELECTED_XCODE_APP" ]] || { echo "No Xcode 26 installation with iPhoneOS 26 SDK platform found under /Applications"; exit 1; }
310- sudo xcode-select -s "$SELECTED_XCODE_APP/Contents/Developer"
311- XCODE_VERSION="$(xcodebuild -version | awk 'NR==1 {print $2}')"
312- SDK_VERSION="$(xcrun --sdk iphoneos --show-sdk-version)"
313- [[ "$XCODE_VERSION" == 26.* ]] || { echo "Expected Xcode 26.x but found $XCODE_VERSION"; exit 1; }
314- [[ "$SDK_VERSION" == 26.* ]] || { echo "Expected iPhoneOS 26.x SDK but found $SDK_VERSION"; exit 1; }
315- echo "Selected $SELECTED_XCODE_APP"
316- xcodebuild -version
317- echo "iPhoneOS SDK: $SDK_VERSION"
318-
319274 - name : Install fastlane gems
320275 working-directory : mobile/ios
321276 run : bundle install --jobs 4 --retry 3
@@ -460,59 +415,14 @@ jobs:
460415 ios-distribute :
461416 needs : [capacitor-ios, publish-release]
462417 if : startsWith(github.ref, 'refs/tags/v')
463- runs-on : macos-26
418+ runs-on : macos-latest
464419 steps :
465420 - uses : actions/checkout@v4
466421
467422 - uses : ruby/setup-ruby@v1
468423 with :
469424 ruby-version : ${{ env.RUBY_VERSION }}
470425
471- - name : Select Xcode 26
472- shell : bash
473- run : |
474- set -euo pipefail
475- CANDIDATES=""
476- if [[ -d /Applications/Xcode.app ]]; then
477- CANDIDATES="/Applications/Xcode.app"
478- fi
479- EXTRA_CANDIDATES="$(find /Applications -maxdepth 1 -type d \( -name 'Xcode_26*.app' -o -name 'Xcode-26*.app' \) ! -name 'Xcode.app' | sort -r)"
480- if [[ -n "$EXTRA_CANDIDATES" ]]; then
481- CANDIDATES="${CANDIDATES:+${CANDIDATES}"$'\n'}${EXTRA_CANDIDATES}"
482- fi
483- SELECTED_XCODE_APP=""
484- BETA_FALLBACK=""
485- while IFS= read -r XCODE_APP; do
486- [[ -n "$XCODE_APP" ]] || continue
487- DEV_DIR="$XCODE_APP/Contents/Developer"
488- SDK_DIR="$DEV_DIR/Platforms/iPhoneOS.platform/Developer/SDKs"
489- XCODE_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcodebuild -version 2>/dev/null | awk 'NR==1 {print $2}')"
490- SDK_VERSION="$(DEVELOPER_DIR="$DEV_DIR" xcrun --sdk iphoneos --show-sdk-version 2>/dev/null || true)"
491- HAS_PLATFORM="no"
492- if [[ -d "$SDK_DIR" ]] && find "$SDK_DIR" -maxdepth 1 -name 'iPhoneOS*.sdk' | grep -q .; then
493- HAS_PLATFORM="yes"
494- fi
495- echo "Candidate: $XCODE_APP, Xcode ${XCODE_VERSION:-unknown}, iPhoneOS SDK ${SDK_VERSION:-missing}, platform installed: $HAS_PLATFORM"
496- if [[ "$XCODE_VERSION" == 26.* && "$SDK_VERSION" == 26.* && "$HAS_PLATFORM" == "yes" ]]; then
497- if [[ "$(basename "$XCODE_APP" | tr '[:upper:]' '[:lower:]')" == *beta* ]]; then
498- [[ -n "$BETA_FALLBACK" ]] || BETA_FALLBACK="$XCODE_APP"
499- continue
500- fi
501- SELECTED_XCODE_APP="$XCODE_APP"
502- break
503- fi
504- done <<< "$CANDIDATES"
505- [[ -n "$SELECTED_XCODE_APP" ]] || SELECTED_XCODE_APP="$BETA_FALLBACK"
506- [[ -n "$SELECTED_XCODE_APP" ]] || { echo "No Xcode 26 installation with iPhoneOS 26 SDK platform found under /Applications"; exit 1; }
507- sudo xcode-select -s "$SELECTED_XCODE_APP/Contents/Developer"
508- XCODE_VERSION="$(xcodebuild -version | awk 'NR==1 {print $2}')"
509- SDK_VERSION="$(xcrun --sdk iphoneos --show-sdk-version)"
510- [[ "$XCODE_VERSION" == 26.* ]] || { echo "Expected Xcode 26.x but found $XCODE_VERSION"; exit 1; }
511- [[ "$SDK_VERSION" == 26.* ]] || { echo "Expected iPhoneOS 26.x SDK but found $SDK_VERSION"; exit 1; }
512- echo "Selected $SELECTED_XCODE_APP"
513- xcodebuild -version
514- echo "iPhoneOS SDK: $SDK_VERSION"
515-
516426 - name : Install fastlane gems
517427 working-directory : mobile/ios
518428 run : bundle install --jobs 4 --retry 3
0 commit comments