From 18b2bd25082b5053e54f2a0fbe91ca08bcec52a2 Mon Sep 17 00:00:00 2001 From: Joshua Li Date: Fri, 2 Oct 2026 15:38:31 -0700 Subject: [PATCH 1/4] ci: upgrade macos-14 runners to macos-15 --- .github/workflows/test-compile-ios.yml | 2 +- .github/workflows/test-run-ios.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-compile-ios.yml b/.github/workflows/test-compile-ios.yml index 74f58a129..2252ec8a9 100644 --- a/.github/workflows/test-compile-ios.yml +++ b/.github/workflows/test-compile-ios.yml @@ -16,7 +16,7 @@ defaults: jobs: compile: name: ${{ inputs.unity-version }} ${{ inputs.init-type }} - runs-on: 'macos-14' # Pinning to get the oldest, supported version of iOS simulator + runs-on: 'macos-15' # Pinning to get the oldest, supported version of iOS simulator env: UNITY_VERSION: ${{ inputs.unity-version }} INIT_TYPE: ${{ inputs.init-type }} diff --git a/.github/workflows/test-run-ios.yml b/.github/workflows/test-run-ios.yml index 7d1e0bd89..98087cb04 100644 --- a/.github/workflows/test-run-ios.yml +++ b/.github/workflows/test-run-ios.yml @@ -29,7 +29,7 @@ defaults: jobs: run: name: ${{ inputs.unity-version }} ${{ inputs.ios-version }} ${{ inputs.init-type }} - runs-on: macos-14 # Pinning to get the oldest, supported version of iOS simulator + runs-on: macos-15 # Pinning to get the oldest, supported version of iOS simulator # Map the job outputs to step outputs outputs: status: ${{ steps.integration-test.outputs.status }} From 237860a52e70e3a65baa7040e752ee60347bf68a Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Tue, 13 Oct 2026 14:27:28 +0200 Subject: [PATCH 2/4] bump ios versions in tests --- .github/workflows/ci.yml | 16 ++++++++-------- .github/workflows/test-compile-ios.yml | 4 ++-- .github/workflows/test-run-ios.yml | 2 +- test/IntegrationTest/Integration.Tests.ps1 | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a9698763..6151395e8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -371,18 +371,18 @@ jobs: fail-fast: false matrix: unity-version: ${{ fromJSON(needs.create-unity-matrix.outputs.unity-matrix).unity-version }} - # On PRs only the newest simulator runs; `17.0` is an OS-compat axis (not SDK behavior) and runs on main. - ios-version: ${{ github.event_name == 'pull_request' && fromJSON('["latest"]') || fromJSON('["17.0", "latest"]') }} + # On PRs only the newest simulator runs; `18.5` is an OS-compat axis (not SDK behavior) and runs on main. + ios-version: ${{ github.event_name == 'pull_request' && fromJSON('["latest"]') || fromJSON('["18.5", "latest"]') }} init-type: ["runtime", "buildtime"] # Check https://support.apple.com/en-us/HT201222 for the latest minor version for a given major one. - # https://developer.apple.com/support/app-store/ shows that of all iOS devices - # - `iOS 18`: 88 % - # - `iOS 17`: 17 % - # - the rest: 4 % - # as of August, 2025. Therefore, let's stick to testing iOS 17 and `latest` for now. + # https://developer.apple.com/support/app-store/ shows that of all iPhones + # - `iOS 26`: 79 % + # - `iOS 18`: 14 % + # - the rest: 7 % + # as of June, 2026. Therefore, let's stick to testing iOS 18 and `latest` for now. # Numbers as string otherwise GH will reformat the runtime numbers removing the fractions. # Also make sure to match the versions available here: - # - https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md + # - https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md test-run-webgl: name: Run WebGL ${{ matrix.unity-version }} Integration Test diff --git a/.github/workflows/test-compile-ios.yml b/.github/workflows/test-compile-ios.yml index 2252ec8a9..3f81258d4 100644 --- a/.github/workflows/test-compile-ios.yml +++ b/.github/workflows/test-compile-ios.yml @@ -47,7 +47,7 @@ jobs: - name: Compile Xcode project without Sentry if: ${{ inputs.init-type == 'runtime' && steps.cache-compiled-nosentry.outputs.cache-hit != 'true' }} - run: ./scripts/compile-xcode-project.ps1 -iOSMinVersion "17.0" + run: ./scripts/compile-xcode-project.ps1 -iOSMinVersion "18.5" timeout-minutes: 20 - name: Save compiled app without Sentry @@ -73,7 +73,7 @@ jobs: run: tar -xvzf "test-app-$env:INIT_TYPE.tar.gz" - name: iOS test - run: ./scripts/compile-xcode-project.ps1 -iOSMinVersion "17.0" + run: ./scripts/compile-xcode-project.ps1 -iOSMinVersion "18.5" timeout-minutes: 20 - name: Assert symbols and sources were uploaded diff --git a/.github/workflows/test-run-ios.yml b/.github/workflows/test-run-ios.yml index 98087cb04..035dcdc33 100644 --- a/.github/workflows/test-run-ios.yml +++ b/.github/workflows/test-run-ios.yml @@ -63,7 +63,7 @@ jobs: if: ${{ env.IOS_VERSION != 'latest'}} uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0 with: - xcode-version: '15.0' # to run iOS 17.0 we need Xcode 15.0 + xcode-version: '16.4' # to run iOS 18.5 we need Xcode 16.4 - name: Run iOS Integration Tests id: integration-test diff --git a/test/IntegrationTest/Integration.Tests.ps1 b/test/IntegrationTest/Integration.Tests.ps1 index 33e6315b0..6e9f39c20 100644 --- a/test/IntegrationTest/Integration.Tests.ps1 +++ b/test/IntegrationTest/Integration.Tests.ps1 @@ -12,7 +12,7 @@ # SENTRY_TEST_SCRIPTING_BACKEND: set to "mono" for a Mono player; empty means IL2CPP # # Platform-specific environment variables: -# iOS: SENTRY_IOS_VERSION - iOS simulator version (e.g. "17.0" or "latest") +# iOS: SENTRY_IOS_VERSION - iOS simulator version (e.g. "18.5" or "latest") # Xbox: XBCONNECT_TARGET - Xbox devkit IP address Set-StrictMode -Version latest @@ -322,7 +322,7 @@ BeforeAll { $script:ExecutablePath = "com.DefaultCompany.IntegrationTest" $target = $env:SENTRY_IOS_VERSION - # Convert bare version numbers (e.g. "17.0") to "iOS 17.0" format expected by iOSSimulatorProvider + # Convert bare version numbers (e.g. "18.5") to "iOS 18.5" format expected by iOSSimulatorProvider if ($target -match '^\d+\.\d+$') { $target = "iOS $target" } From 199ddc1558e6dad416a7eca65b0575bdd660e080 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Tue, 13 Oct 2026 19:06:15 +0200 Subject: [PATCH 3/4] simulator architecture --- scripts/compile-xcode-project.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/compile-xcode-project.ps1 b/scripts/compile-xcode-project.ps1 index 891117b0b..9adf125c1 100644 --- a/scripts/compile-xcode-project.ps1 +++ b/scripts/compile-xcode-project.ps1 @@ -25,8 +25,8 @@ try -scheme "Unity-iPhone" ` -configuration "Release" ` -sdk "iphonesimulator" ` - -destination "platform=iOS Simulator,OS=$iOSMinVersion" ` - -destination "platform=iOS Simulator,OS=latest" ` + -destination "platform=iOS Simulator,arch=x86_64,OS=$iOSMinVersion" ` + -destination "platform=iOS Simulator,arch=x86_64,OS=latest" ` -parallel-testing-enabled YES ` -derivedDataPath "$ArchivePath/$ProjectName" ` | Write-Host From 7a352106ef9de3451bec73a3c13d6bc54199ffd5 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 14 Oct 2026 09:47:29 +0200 Subject: [PATCH 4/4] tweak ios version/simulator --- .github/workflows/test-compile-ios.yml | 4 ++-- scripts/compile-xcode-project.ps1 | 7 +------ test/Scripts.Integration.Test/Editor/Builder.cs | 3 +++ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test-compile-ios.yml b/.github/workflows/test-compile-ios.yml index 3f81258d4..3fa80582d 100644 --- a/.github/workflows/test-compile-ios.yml +++ b/.github/workflows/test-compile-ios.yml @@ -47,7 +47,7 @@ jobs: - name: Compile Xcode project without Sentry if: ${{ inputs.init-type == 'runtime' && steps.cache-compiled-nosentry.outputs.cache-hit != 'true' }} - run: ./scripts/compile-xcode-project.ps1 -iOSMinVersion "18.5" + run: ./scripts/compile-xcode-project.ps1 timeout-minutes: 20 - name: Save compiled app without Sentry @@ -73,7 +73,7 @@ jobs: run: tar -xvzf "test-app-$env:INIT_TYPE.tar.gz" - name: iOS test - run: ./scripts/compile-xcode-project.ps1 -iOSMinVersion "18.5" + run: ./scripts/compile-xcode-project.ps1 timeout-minutes: 20 - name: Assert symbols and sources were uploaded diff --git a/scripts/compile-xcode-project.ps1 b/scripts/compile-xcode-project.ps1 index 9adf125c1..4cbf717b0 100644 --- a/scripts/compile-xcode-project.ps1 +++ b/scripts/compile-xcode-project.ps1 @@ -1,7 +1,3 @@ -param ( - [string] $iOSMinVersion = "" -) - . $PSScriptRoot/../test/Scripts.Integration.Test/common.ps1 $ProjectName = "Unity-iPhone" @@ -25,8 +21,7 @@ try -scheme "Unity-iPhone" ` -configuration "Release" ` -sdk "iphonesimulator" ` - -destination "platform=iOS Simulator,arch=x86_64,OS=$iOSMinVersion" ` - -destination "platform=iOS Simulator,arch=x86_64,OS=latest" ` + -destination "generic/platform=iOS Simulator" ` -parallel-testing-enabled YES ` -derivedDataPath "$ArchivePath/$ProjectName" ` | Write-Host diff --git a/test/Scripts.Integration.Test/Editor/Builder.cs b/test/Scripts.Integration.Test/Editor/Builder.cs index 3fb577721..410709fbc 100644 --- a/test/Scripts.Integration.Test/Editor/Builder.cs +++ b/test/Scripts.Integration.Test/Editor/Builder.cs @@ -211,6 +211,9 @@ public static void BuildAndroidIl2CPPProject() public static void BuildIOSProject() { Debug.Log("Builder: Building iOS Project"); +#if UNITY_2022_3_OR_NEWER + PlayerSettings.iOS.simulatorSdkArchitecture = AppleMobileArchitectureSimulator.Universal; +#endif BuildIl2CPPPlayer(BuildTarget.iOS, BuildTargetGroup.iOS, BuildOptions.StrictMode, defaultBuildPath: "./Builds/iOS/"); }