From f686f460b0d7faeaa5930a786686cd9a9c01b962 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sun, 15 Feb 2026 16:25:10 +1100 Subject: [PATCH] Fix CI: add explicit xcodebuild destinations and update Xcode matrix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add explicit -destination flags to build.sh — newer Xcode versions no longer auto-select a build destination, causing "Found no destinations for the scheme" errors - Update CI matrix to Xcode 16.4 and 26.2 — Xcode 16.0-16.3 simulator runtimes are no longer installed on the macos-15 runner image - Add PRODUCT_BUNDLE_IDENTIFIER to ExternalTarget fixture — Xcode 26.x requires a bundle identifier for embedded frameworks Co-Authored-By: Claude Opus 4.6 --- .github/workflows/ci.yml | 2 +- .../AnotherProject.xcodeproj/project.pbxproj | 6 ++++++ .../Fixtures/TestProject/AnotherProject/project.yml | 1 + .../TestProject/Project.xcodeproj/project.pbxproj | 12 ++++++------ Tests/Fixtures/TestProject/build.sh | 4 ++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f7b12ba66..84679494b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: name: Xcode ${{ matrix.xcode }} strategy: matrix: - xcode: ["16.0", "16.3"] + xcode: ["16.4", "26.2"] env: DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer steps: diff --git a/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj index 00cc84622..50593a11b 100644 --- a/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj @@ -342,6 +342,7 @@ "$(inherited)", "@executable_path/Frameworks", ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -452,6 +453,7 @@ "$(inherited)", "@executable_path/Frameworks", ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -474,6 +476,7 @@ "$(inherited)", "@executable_path/Frameworks", ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -496,6 +499,7 @@ "$(inherited)", "@executable_path/Frameworks", ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -657,6 +661,7 @@ "$(inherited)", "@executable_path/Frameworks", ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -703,6 +708,7 @@ "$(inherited)", "@executable_path/Frameworks", ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/Tests/Fixtures/TestProject/AnotherProject/project.yml b/Tests/Fixtures/TestProject/AnotherProject/project.yml index c66f2c5e9..f86b69aec 100644 --- a/Tests/Fixtures/TestProject/AnotherProject/project.yml +++ b/Tests/Fixtures/TestProject/AnotherProject/project.yml @@ -20,6 +20,7 @@ targets: platform: iOS settings: GENERATE_INFOPLIST_FILE: YES + PRODUCT_BUNDLE_IDENTIFIER: com.project.external IncludedLegacy: type: "" platform: iOS diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index 6aa8bed91..10ff1c3a2 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -3522,7 +3522,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -4220,7 +4220,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -6058,7 +6058,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -6655,7 +6655,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -6856,7 +6856,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -7259,7 +7259,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + PRODUCT_BUNDLE_IDENTIFIER = com.project.external; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/Tests/Fixtures/TestProject/build.sh b/Tests/Fixtures/TestProject/build.sh index fb3e191de..ab575c203 100755 --- a/Tests/Fixtures/TestProject/build.sh +++ b/Tests/Fixtures/TestProject/build.sh @@ -3,10 +3,10 @@ set -e echo " ⚙️ Building iOS app" -xcodebuild -quiet -workspace Workspace.xcworkspace -scheme "App_iOS Test" -configuration "Test Debug" -xcconfig fixtures.xcconfig +xcodebuild -quiet -workspace Workspace.xcworkspace -scheme "App_iOS Test" -configuration "Test Debug" -xcconfig fixtures.xcconfig -destination 'generic/platform=iOS Simulator' echo "✅ Successfully built iOS app" echo " ⚙️ Building macOS app" -xcodebuild -quiet -workspace Workspace.xcworkspace -scheme "App_macOS" -configuration "Test Debug" -xcconfig fixtures.xcconfig +xcodebuild -quiet -workspace Workspace.xcworkspace -scheme "App_macOS" -configuration "Test Debug" -xcconfig fixtures.xcconfig -destination 'generic/platform=macOS' echo "✅ Successfully built macOS app"