From ea9cd4175622b12c284acce864a894d8cbe1f966 Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Tue, 9 Jun 2026 07:56:54 -0700 Subject: [PATCH] Download tvOS and watchOS simulator runtimes in CI GitHub keeps no more than three simulator runtime sets per Xcode version on its hosted runners and evicts older ones as new releases ship (see actions/runner-images#13570). The tvOS 18.5 runtime was rotated out from under the `macOS_26,tvOS_18` job, which has no download step, so `xcodebuild` failed with "Unable to find a device matching the provided destination specifier" and exited 70. Mirror the existing iOS download step (and the pattern used in Valet) by explicitly downloading the pinned runtimes the matrix targets: - tvOS 18.5 -> 22L572 (was missing entirely; cause of the failure) - watchOS 11.5 -> 22T572 (hardening; currently relies on the runtime happening to be pre-installed and will break the same way when it is rotated out) iOS 18.5 (22F77) and visionOS already download their runtimes. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b5923a..890453e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,6 +65,18 @@ jobs: sudo xcodebuild -runFirstLaunch sudo xcrun simctl list sudo xcodebuild -downloadPlatform iOS -buildVersion 22F77 + - name: Download watchOS + if: matrix.platforms == 'iOS_18,watchOS_11' + run: | + sudo xcodebuild -runFirstLaunch + sudo xcrun simctl list + sudo xcodebuild -downloadPlatform watchOS -buildVersion 22T572 + - name: Download tvOS + if: matrix.platforms == 'macOS_26,tvOS_18' + run: | + sudo xcodebuild -runFirstLaunch + sudo xcrun simctl list + sudo xcodebuild -downloadPlatform tvOS -buildVersion 22L572 - name: Build and Test Framework run: Scripts/build.swift ${{ matrix.platforms }} - name: Prepare Coverage Reports