Skip to content

[iOS] Fix Switch custom colors on iOS 26#35385

Closed
AdamEssenmacher wants to merge 9 commits into
dotnet:mainfrom
AdamEssenmacher:issue-35257
Closed

[iOS] Fix Switch custom colors on iOS 26#35385
AdamEssenmacher wants to merge 9 commits into
dotnet:mainfrom
AdamEssenmacher:issue-35257

Conversation

@AdamEssenmacher

@AdamEssenmacher AdamEssenmacher commented May 11, 2026

Copy link
Copy Markdown
Contributor

Description of Change

Fixes iOS 26 Switch custom color rendering by using UIKit's public classic sliding switch style when MAUI switch colors are customized.

On iOS 26, the automatic/liquid UISwitch style can ignore MAUI OffColor/OnColor track tinting and ThumbColor. This change opts switches with a non-null MAUI track or thumb color into UISwitchStyle.Sliding on iOS 26+, while leaving unstyled switches as UISwitchStyle.Automatic to preserve the native default appearance.

This also:

  • Reapplies colors after UIKit lifecycle/style changes that can rebuild or reset internal switch views.
  • Re-arms color reapply after window reattachment.
  • Clears native ThumbTintColor when ThumbColor is reset to null.
  • Keeps the existing Issue35257 Appium visual regression coverage from [iOS 26] Fix Switch ThumbColor and OffColor not applied on initial load #35400 and adds focused iOS handler tests for the style, reset, theme-change, and reattachment paths.

Conflict resolution:

Validation performed:

  • dotnet build src/Core/src/Core.csproj -f net10.0-ios26.0 -c Debug --no-restore
  • dotnet build src/Controls/tests/TestCases.iOS.Tests/Controls.TestCases.iOS.Tests.csproj -c Debug --no-restore

Issues Fixed

Fixes #35257

Copilot AI review requested due to automatic review settings May 11, 2026 19:36
@github-actions

github-actions Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35385

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35385"

@dotnet-policy-service dotnet-policy-service Bot added the community ✨ Community Contribution label May 11, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Hey there @@AdamEssenmacher! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses an iOS 26 regression where UISwitch can ignore MAUI Switch custom colors by opting into UIKit’s classic sliding switch style (UISwitchStyle.Sliding) when MAUI track/thumb colors are set, while leaving default (unstyled) switches on UISwitchStyle.Automatic.

Changes:

  • Updates iOS UISwitch color mapping to switch styles on iOS 26+ when colors are customized, and reapply colors after style changes.
  • Ensures native ThumbTintColor is cleared when MAUI ThumbColor is reset to null, and makes Switch.ThumbColor notify the handler on change.
  • Adds iOS device-handler tests and a new Appium visual regression issue test/page for iOS 26 switch custom colors.

Reviewed changes

Copilot reviewed 6 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/Core/src/Platform/iOS/SwitchExtensions.cs Applies iOS 26+ preferred style switching and re-applies track/thumb colors when UIKit may rebuild internal views.
src/Controls/src/Core/Switch/Switch.cs Adds a ThumbColor bindable-property changed callback to update the handler mapping.
src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs Adds iOS 26 style-selection assertions and validates thumb tint clearing behavior.
src/Controls/tests/TestCases.HostApp/MauiProgram.cs Allows iOS HostApp startup-page selection via the test environment variable (previously MacCatalyst-only).
src/Controls/tests/TestCases.HostApp/Issues/Issue35257.cs Adds a HostApp repro page with default vs custom-colored switches for visual validation.
src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35257.cs Adds an iOS Appium screenshot test to validate initial custom color rendering.

Comment thread src/Core/src/Platform/iOS/SwitchExtensions.cs Outdated
@MauiBot MauiBot added s/agent-review-incomplete s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) labels May 11, 2026
Comment thread src/Controls/src/Core/Switch/Switch.cs Outdated
Comment thread src/Core/src/Platform/iOS/SwitchExtensions.cs

@kubaflo kubaflo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some tests are failing

@kubaflo kubaflo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like there some test failures caused by dark/light themes

@dotnet dotnet deleted a comment from MauiBot May 12, 2026
@MauiBot MauiBot added s/agent-changes-requested AI agent recommends changes - found a better alternative or issues and removed s/agent-review-incomplete labels May 12, 2026
@dotnet dotnet deleted a comment from MauiBot May 14, 2026
@MauiBot MauiBot added s/agent-review-incomplete and removed s/agent-changes-requested AI agent recommends changes - found a better alternative or issues labels May 14, 2026
PureWeen added a commit that referenced this pull request May 18, 2026
- SKILL.md platform table: add /Handlers/*/iOS/, /Handlers/*/MacCatalyst/,
  and /Handlers/*/Windows/ to platform rows. Mirrors the Android row's
  handler-subdirectory pattern. iOS-directory row maps to platform/ios
  ONLY (not dual with platform/macos) because handler /iOS/ directories
  compile for iOS TFM only, unlike the *.iOS.cs file-extension pattern
  which compiles for both iOS and MacCatalyst.

- eval.yaml PR #35461 scenario: rename to flag scope-restriction intent,
  add platform/android positive assertion (the PR touches Android files)
  and forbidden-label negatives for i/regression, partner/syncfusion,
  t/bug — those labels already exist on the PR but our labeler must NOT
  apply them.

- eval.yaml PR #35385 scenario: add platform/macos and platform/windows
  assertions. The PR touches Platform/Windows/, Platform/Android/, and
  *.iOS.cs files — that last one triggers BOTH platform/ios AND
  platform/macos per our file-extension rule.

- eval.yaml XAML scenario: rename 'issue' -> 'PR' (prompt targets a PR).

- workflow.md frontmatter description: update from generic
  'appropriate labels chosen from the existing repository label set'
  to explicitly state 'area-* and platform/* ONLY, does NOT apply
  triage, status, priority, type, severity, partner, regression, or
  any other label families'. Locked-yml regenerated by gh aw compile.

Adversarial review findings deliberately NOT applied:
- (?i) regex prefix: invalidated — skill-validator already passes
  RegexOptions.IgnoreCase and StringComparison.OrdinalIgnoreCase, so
  case is handled at the framework level.
- output_not_contains 'area-' / 'platform/' on noop scenarios: too
  risky — agent prose may legitimately reference these prefixes when
  explaining why no labels apply.
- Issue #35448 prompt change: existing-label contamination is a
  framework limitation (substring match in prose); not worth a
  scenario-level fix.

Co-authored-by: Copilot <[email protected]>
@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

1 similar comment
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/review tests

@github-actions

Copy link
Copy Markdown
Contributor

Tests Failure Analysis

@AdamEssenmacher — test-failure review results are available based on commit 4eed73e.
To request a fresh review after new comments, commits, or CI runs, comment /review tests.

Overall Likely unrelated Failures 14 Platform Android, iOS, macOS, Windows

Test Failure Review: Likely unrelated - click to expand

Overall verdict: Likely unrelated

All identified failures are in areas unrelated to this PR's Switch handler iOS changes. The device test pipeline has been failing on main across 5 consecutive base-branch builds, and the UI test failures are confined to WebView timeouts and Entry/SoftInput crashes that have no intersection with the changed files.

Failure Verdict Evidence
maui-pr-devicetests — Android CoreCLR, iOS Mono, MacCatalyst Mono, Windows Likely unrelated Base branch (main) has 5 consecutive failed device-test builds: 1459940, 1455022, 1454817, 1451776, 1448204. All pre-date this PR's changes. Helix work-item logs returned 404 (unavailable). No distinct named test failures extracted from this build.
macOS UITests Controls WebView — 12 WebView_ tests Likely unrelated All 12 distinct WebView tests fail with System.TimeoutException ("Timed out waiting for element" / "Appium command did not complete within 45s") repeated across 2 retry runs. PR only modifies SwitchHandler.iOS.cs, MauiSwitch.cs, and SwitchExtensions.cs. No WebView code was touched. Base branch uitests also consistently failing.
Android UITests Controls (API 30) Entry — SoftInputExtensionsPageTest Likely unrelated System.NullReferenceException in SoftInput extensions test. PR does not touch SoftInput, Entry, or any Android-specific code.
Android UITests Controls (API 30) Entry — VerifyEntryControlWhenFlowDirectionSet Likely unrelated App crash on teardown ("app was expected to be running still"). PR does not touch Entry or FlowDirection. Failure manifests in test teardown infrastructure, unrelated to Switch changes.
Build Analysis Likely unrelated Arcade Build Analysis reflects the device-test failures already identified as pre-existing on main.

Recommended action

No test-failure action is required for this PR. Device test failures are pre-existing infrastructure issues on main; UI test failures (WebView timeouts, Entry crashes) are in areas untouched by this PR. Monitor the remaining in-progress uitests jobs (CollectionView, Editor/Effects/Essentials, SearchBar/Shape/Slider, Shell) to confirm no Switch-related failures emerge when they complete.

Evidence details

PR scope: Changed files are SwitchHandler.iOS.cs, MauiSwitch.cs, SwitchExtensions.cs, SwitchHandlerTests.iOS.cs, and visual snapshots under snapshots/ios-26/. No WebView, Entry, SoftInput, Android-native, or Windows code was modified.

Device tests (build 1459844, maui-pr-devicetests, FAILED):

  • Failed jobs: Android CoreCLR, MacCatalyst Mono, Windows, iOS Mono
  • 0 distinct test failure names extracted; Helix work-item data returned 404 for all 6 Helix job IDs
  • Recent main-branch builds all failed: 1459940 (2026-06-11), 1455022 (2026-06-08), 1454817 (2026-06-08), 1451776 (2026-06-08), 1448204 (2026-06-03)

UI tests (build 1459843, maui-pr-uitests, still in progress at context capture time):

  • 52 raw log/test failure entries extracted; 14 deduplicated distinct test names
  • All 12 WebView test failures: System.TimeoutException across 2 retry runs on macOS
  • 2 Entry test failures: NullReferenceException (SoftInput) and app-crash teardown (FlowDirection) on Android
  • Recent main-branch uitests builds all failed: 1455207, 1454908, 1451775, 1448203, 1446888
  • In-progress at capture time: CollectionView, Editor/Effects/Essentials/FlyoutPage, SearchBar/Shape/Slider, Shell jobs

Limitations: No AzDO authenticated token; _apis/test queries were skipped. Helix console logs unavailable (404). maui-pr-uitests was still running when context was gathered; additional results may appear in remaining jobs.

@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/azp run

@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/review -b feature/enhanced-reviewer -p ios

@github-actions github-actions Bot added the s/agent-review-in-progress AI review is currently running for this PR label Jun 11, 2026
@AdamEssenmacher AdamEssenmacher marked this pull request as draft June 11, 2026 19:46
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@MauiBot MauiBot added s/agent-fix-win AI found a better alternative fix than the PR and removed s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates labels Jun 11, 2026
MauiBot

This comment was marked as outdated.

@MauiBot MauiBot removed the s/agent-review-in-progress AI review is currently running for this PR label Jun 11, 2026
@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/review -b feature/enhanced-reviewer -p ios

@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@github-actions github-actions Bot added the s/agent-review-in-progress AI review is currently running for this PR label Jun 11, 2026

@MauiBot MauiBot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review Summary

@AdamEssenmacher — new AI review results are available based on this last commit: 8345841.
Fix iOS switch reset-to-default cleanup timing To request a fresh review after new comments or commits, comment /review rerun.

Gate Passed Code Review In Review Confidence Medium Platform iOS

Review Sessions — click to expand
Gate — Test Before & After Fix

Gate Result: ✅ PASSED

Platform: IOS · Base: main · Merge base: dd5b6d2e

Test Without Fix (expect FAIL) With Fix (expect PASS)
📱 SwitchHandlerTests (DefaultSwitchReappliesLegacyOffTrackColorBeforeiOSOrMacCatalyst26, CustomColorsUseSlidingStyleOniOSOrMacCatalyst26, CustomColorsRenderOnInitialOffStateOniOSOrMacCatalyst26, DefaultSwitchUsesAutomaticStyleOniOSOrMacCatalyst26, ThumbColorClearsWhenResetOniOSOrMacCatalyst26, CustomColorsClearToAutomaticStyleOniOSOrMacCatalyst26, ThumbOnlyCustomColorClearsToAutomaticStyleOniOSOrMacCatalyst26, CustomColorsReapplyAfterMovedToWindowOniOSOrMacCatalyst26, LifecycleColorReapplyUsesMapperCustomizationsOniOSOrMacCatalyst26, MapperOnlyColorReapplyUsesSlidingStyleOniOSOrMacCatalyst26, MapperColorReapplySurvivesMauiCustomColorResetOniOSOrMacCatalyst26, LayoutSubviewsDoesNotReapplyColorsWhenNotDirtyOniOSOrMacCatalyst26, QueuedColorReapplyDoesNotUpdateStaleNativeSwitchAfterReconnectOniOSOrMacCatalyst26, CustomColorsReapplyAfterWillEnterForegroundOniOS26, MapperOnlyColorsReapplyAfterWillEnterForegroundOniOS26, CustomColorsUpdateAfterAppThemeChangeOniOSOrMacCatalyst26) Category=Switch 🛠️ BUILD ERROR ✅ PASS — 207s
🔴 Without fix — 📱 SwitchHandlerTests (DefaultSwitchReappliesLegacyOffTrackColorBeforeiOSOrMacCatalyst26, CustomColorsUseSlidingStyleOniOSOrMacCatalyst26, CustomColorsRenderOnInitialOffStateOniOSOrMacCatalyst26, DefaultSwitchUsesAutomaticStyleOniOSOrMacCatalyst26, ThumbColorClearsWhenResetOniOSOrMacCatalyst26, CustomColorsClearToAutomaticStyleOniOSOrMacCatalyst26, ThumbOnlyCustomColorClearsToAutomaticStyleOniOSOrMacCatalyst26, CustomColorsReapplyAfterMovedToWindowOniOSOrMacCatalyst26, LifecycleColorReapplyUsesMapperCustomizationsOniOSOrMacCatalyst26, MapperOnlyColorReapplyUsesSlidingStyleOniOSOrMacCatalyst26, MapperColorReapplySurvivesMauiCustomColorResetOniOSOrMacCatalyst26, LayoutSubviewsDoesNotReapplyColorsWhenNotDirtyOniOSOrMacCatalyst26, QueuedColorReapplyDoesNotUpdateStaleNativeSwitchAfterReconnectOniOSOrMacCatalyst26, CustomColorsReapplyAfterWillEnterForegroundOniOS26, MapperOnlyColorsReapplyAfterWillEnterForegroundOniOS26, CustomColorsUpdateAfterAppThemeChangeOniOSOrMacCatalyst26): 🛠️ BUILD ERROR · 148s
  Determining projects to restore...
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 844 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 844 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/DeviceTests.Runners.SourceGen/TestUtils.DeviceTests.Runners.SourceGen.csproj (in 4.86 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 5.19 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests.Shared/Core.DeviceTests.Shared.csproj (in 5.63 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Xaml/Controls.Xaml.csproj (in 5.63 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/DeviceTests/TestUtils.DeviceTests.csproj (in 5.65 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/DeviceTests.Runners/TestUtils.DeviceTests.Runners.csproj (in 4.75 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 5.65 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 5.66 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj (in 4.8 sec).
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14353354
  Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Release/net10.0-ios26.0/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14353354
  Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Release/net10.0-ios26.0/Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14353354
  Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Release/net10.0-ios26.0/Microsoft.Maui.dll
  Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Release/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14353354
  TestUtils.DeviceTests -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/TestUtils.DeviceTests/Release/net10.0-ios/Microsoft.Maui.TestUtils.DeviceTests.dll
  Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Release/net10.0-ios26.0/Microsoft.Maui.Controls.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14353354
  Controls.Xaml -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Xaml/Release/net10.0-ios26.0/Microsoft.Maui.Controls.Xaml.dll
  TestUtils.DeviceTests.Runners -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/TestUtils.DeviceTests.Runners/Release/net10.0-ios/Microsoft.Maui.TestUtils.DeviceTests.Runners.dll
  Core.DeviceTests.Shared -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core.DeviceTests.Shared/Release/net10.0-ios/Microsoft.Maui.DeviceTests.Shared.dll
  TestUtils.DeviceTests.Runners.SourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/TestUtils.DeviceTests.Runners.SourceGen/Release/netstandard2.0/Microsoft.Maui.TestUtils.DeviceTests.Runners.SourceGen.dll
  Detected signing identity:
    Code Signing Key: "" (-)
    Provisioning Profile: "" () - no entitlements
    Bundle Id: com.microsoft.maui.core.devicetests
    App Id: com.microsoft.maui.core.devicetests
/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(268,45): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]
/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(492,45): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]
/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(606,46): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]
/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(674,46): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]

Build FAILED.

/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(268,45): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]
/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(492,45): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]
/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(606,46): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]
/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(674,46): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no accessible extension method 'IsReadyForColorReapply' accepting a first argument of type 'UISwitch' could be found (are you missing a using directive or an assembly reference?) [/Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Core.DeviceTests.csproj::TargetFramework=net10.0-ios]
    0 Warning(s)
    4 Error(s)

Time Elapsed 00:02:15.39

🟢 With fix — 📱 SwitchHandlerTests (DefaultSwitchReappliesLegacyOffTrackColorBeforeiOSOrMacCatalyst26, CustomColorsUseSlidingStyleOniOSOrMacCatalyst26, CustomColorsRenderOnInitialOffStateOniOSOrMacCatalyst26, DefaultSwitchUsesAutomaticStyleOniOSOrMacCatalyst26, ThumbColorClearsWhenResetOniOSOrMacCatalyst26, CustomColorsClearToAutomaticStyleOniOSOrMacCatalyst26, ThumbOnlyCustomColorClearsToAutomaticStyleOniOSOrMacCatalyst26, CustomColorsReapplyAfterMovedToWindowOniOSOrMacCatalyst26, LifecycleColorReapplyUsesMapperCustomizationsOniOSOrMacCatalyst26, MapperOnlyColorReapplyUsesSlidingStyleOniOSOrMacCatalyst26, MapperColorReapplySurvivesMauiCustomColorResetOniOSOrMacCatalyst26, LayoutSubviewsDoesNotReapplyColorsWhenNotDirtyOniOSOrMacCatalyst26, QueuedColorReapplyDoesNotUpdateStaleNativeSwitchAfterReconnectOniOSOrMacCatalyst26, CustomColorsReapplyAfterWillEnterForegroundOniOS26, MapperOnlyColorsReapplyAfterWillEnterForegroundOniOS26, CustomColorsUpdateAfterAppThemeChangeOniOSOrMacCatalyst26): PASS ✅ · 207s

(truncated to last 15,000 chars)

s Update After App Theme Change On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:11.5394130] 2026-06-11 14:59:11.539145-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Custom Colors Clear To Automatic Style On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:11.5444100] 2026-06-11 14:59:11.544177-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] PlatformView Transforms are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:11.5472810] 2026-06-11 14:59:11.547027-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] PlatformView Transforms are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:11.5528710] 2026-06-11 14:59:11.552506-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] PlatformView Transforms are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:11.9984090] 2026-06-11 14:59:11.998145-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Mapper Color Reapply Survives Maui Custom Color Reset On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:12.4404810] 2026-06-11 14:59:12.440141-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Mapper Color Reapply Survives Maui Custom Color Reset On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:12.4410140] 2026-06-11 14:59:12.440825-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[IGNORED] ThumbColor Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:12.4421740] 2026-06-11 14:59:12.441981-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Default Switch Reapplies Legacy Off Track Color Before iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:12.4500350] 2026-06-11 14:59:12.449742-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Transformation Calculated Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:12.7793430] 2026-06-11 14:59:12.779040-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Layout Subviews Does Not Reapply Colors When Not Dirty On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:13.1081500] 2026-06-11 14:59:13.107847-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Mapper Only Colors Reapply After Will Enter Foreground On iOS 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:13.1116150] 2026-06-11 14:59:13.111471-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Thumb Color Updates Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:13.1137540] 2026-06-11 14:59:13.113601-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Null Thumb Color Doesn't Crash
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:13.3373430] 2026-06-11 14:59:13.337022-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Setting Semantic Description makes element accessible
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:13.3452880] 2026-06-11 14:59:13.345082-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Is Toggled Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:13.3626780] 2026-06-11 14:59:13.362433-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Track Color's view is set when toggled on
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:13.6821820] 2026-06-11 14:59:13.681707-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Mapper Only Color Reapply Uses Sliding Style On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.0084070] 2026-06-11 14:59:14.008115-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Custom Colors Reapply After Moved To Window On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1192980] 2026-06-11 14:59:14.119010-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Queued Color Reapply Does Not Update Stale Native Switch After Reconnect On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1196780] 2026-06-11 14:59:14.119539-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Track Color's view is default color when toggled off
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1286460] 2026-06-11 14:59:14.128352-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] FlowDirection is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1315580] 2026-06-11 14:59:14.131291-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] FlowDirection is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1414680] 2026-06-11 14:59:14.141236-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1473550] 2026-06-11 14:59:14.147093-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1505130] 2026-06-11 14:59:14.150230-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1565970] 2026-06-11 14:59:14.156381-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1598380] 2026-06-11 14:59:14.159630-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1666730] 2026-06-11 14:59:14.166279-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1722190] 2026-06-11 14:59:14.171889-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1767740] 2026-06-11 14:59:14.176489-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1789540] 2026-06-11 14:59:14.178726-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1809300] 2026-06-11 14:59:14.180689-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1843280] 2026-06-11 14:59:14.184028-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1875560] 2026-06-11 14:59:14.187199-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1890070] 2026-06-11 14:59:14.188809-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1904370] 2026-06-11 14:59:14.190230-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1930940] 2026-06-11 14:59:14.192892-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Semantic Hint is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1953000] 2026-06-11 14:59:14.195097-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] DisconnectHandlerDoesntCrash
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.1956910] 2026-06-11 14:59:14.195526-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] HandlersHaveAllExpectedContructors
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2011660] 2026-06-11 14:59:14.200873-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2031230] 2026-06-11 14:59:14.202908-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2052550] 2026-06-11 14:59:14.204999-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2066730] 2026-06-11 14:59:14.206474-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2081520] 2026-06-11 14:59:14.207885-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2097820] 2026-06-11 14:59:14.209565-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2117400] 2026-06-11 14:59:14.211558-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2133660] 2026-06-11 14:59:14.213156-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2149630] 2026-06-11 14:59:14.214699-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2183810] 2026-06-11 14:59:14.218077-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.2207930] 2026-06-11 14:59:14.220564-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5398810] 2026-06-11 14:59:14.539666-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Lifecycle Color Reapply Uses Mapper Customizations On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5464230] 2026-06-11 14:59:14.546161-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Ensure UISwitch Stays Below 101 Width
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5539150] 2026-06-11 14:59:14.553572-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Visibility is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5574780] 2026-06-11 14:59:14.557151-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Visibility is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5614480] 2026-06-11 14:59:14.561122-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Transformation Initialize Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5615310] 2026-06-11 14:59:14.561387-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[IGNORED] Updating Native Is On property updates Virtual View
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5639940] 2026-06-11 14:59:14.563756-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Native View Bounds are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5690020] 2026-06-11 14:59:14.568607-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Native View Bounds are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5722960] 2026-06-11 14:59:14.572059-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Native View Bounds are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5750540] 2026-06-11 14:59:14.574841-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] InputTransparencyInitializesCorrectly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:14.5779540] 2026-06-11 14:59:14.577693-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] InputTransparencyInitializesCorrectly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0055820] 2026-06-11 14:59:15.005336-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Default Switch Uses Automatic Style On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0097840] 2026-06-11 14:59:15.009476-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Custom Colors Use Sliding Style On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0180890] 2026-06-11 14:59:15.017690-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Custom Colors Use Sliding Style On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0279840] 2026-06-11 14:59:15.027696-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Custom Colors Use Sliding Style On iOS/MacCatalyst 26
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0352800] 2026-06-11 14:59:15.034991-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Clip Initializes ContainerView Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0409720] 2026-06-11 14:59:15.040547-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Automation Id is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0479870] 2026-06-11 14:59:15.047689-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Apple has not changed UITrack Subviews
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.0535070] 2026-06-11 14:59:15.053166-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Null Semantics Doesnt throw exception
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.2699830] 2026-06-11 14:59:15.269770-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Semantic Heading is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.4869600] 2026-06-11 14:59:15.486571-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] 	[PASS] Setting Semantic Hint makes element accessible
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.4879100] 2026-06-11 14:59:15.487658-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] Microsoft.Maui.DeviceTests.SwitchHandlerTests 6.4163243 ms
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.4914900] 2026-06-11 14:59:15.491158-0700 Microsoft.Maui.Core.DeviceTests[6612:44863] Tests run: 84 Passed: 81 Inconclusive: 0 Failed: 0 Ignored: 3
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.4964460] 2026-06-11 14:59:15.496158-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] Xml file was written to the provided writer.
�[40m�[37mdbug�[39m�[22m�[49m: [14:59:15.4965200] 2026-06-11 14:59:15.496351-0700 Microsoft.Maui.Core.DeviceTests[6612:44154] Tests run: 1164 Passed: 81 Inconclusive: 0 Failed: 0 Ignored: 1083
�[40m�[37mdbug�[39m�[22m�[49m: ==================== End of ApplicationLog ====================
�[40m�[37mdbug�[39m�[22m�[49m: 
�[40m�[32minfo�[39m�[22m�[49m: Uninstalling the application 'com.microsoft.maui.core.devicetests' from 'iPhone 11 Pro'
�[40m�[37mdbug�[39m�[22m�[49m: 
�[40m�[37mdbug�[39m�[22m�[49m: Running /Applications/Xcode_26.0.1.app/Contents/Developer/usr/bin/simctl
�[40m�[37mdbug�[39m�[22m�[49m: Process simctl exited with 0
�[40m�[32minfo�[39m�[22m�[49m: Application 'com.microsoft.maui.core.devicetests' was uninstalled successfully
�[40m�[32minfo�[39m�[22m�[49m: <<XHARNESS_RESULT_START>>
      {
        "version": 1,
        "machineName": "WYQQT23HX9-1",
        "exitCode": 0,
        "exitCodeName": "SUCCESS",
        "platform": "apple",
        "device": "iPhone 11 Pro",
        "deviceOsVersion": "26.0",
        "files": [
          {
            "name": "test-ios-simulator-64_26.0-50F943A3-DC79-48C1-8542-E73BE3B2D301.log",
            "type": "executionlog"
          },
          {
            "name": "list-ios-simulator-64_26.0-20260611_145833.log",
            "type": "devicelist"
          },
          {
            "name": "test-ios-simulator-64_26.0-20260611_145840.log",
            "type": "testlog"
          },
          {
            "name": "iPhone 11 Pro.log",
            "type": "systemlog"
          },
          {
            "name": "Microsoft.Maui.Core.DeviceTests.log",
            "type": "systemlog"
          },
          {
            "name": "com.microsoft.maui.core.devicetests.log",
            "type": "applicationlog"
          },
          {
            "name": "xunit-test-ios-simulator-64_26.0-20260611_145840.xml",
            "type": "xmllog"
          }
        ]
      }
      <<XHARNESS_RESULT_END>>
XHarness exit code: 0
  Passed: 0
  Failed: 0
  Tests completed successfully

⚠️ Failure Details

  • 🛠️ SwitchHandlerTests (DefaultSwitchReappliesLegacyOffTrackColorBeforeiOSOrMacCatalyst26, CustomColorsUseSlidingStyleOniOSOrMacCatalyst26, CustomColorsRenderOnInitialOffStateOniOSOrMacCatalyst26, DefaultSwitchUsesAutomaticStyleOniOSOrMacCatalyst26, ThumbColorClearsWhenResetOniOSOrMacCatalyst26, CustomColorsClearToAutomaticStyleOniOSOrMacCatalyst26, ThumbOnlyCustomColorClearsToAutomaticStyleOniOSOrMacCatalyst26, CustomColorsReapplyAfterMovedToWindowOniOSOrMacCatalyst26, LifecycleColorReapplyUsesMapperCustomizationsOniOSOrMacCatalyst26, MapperOnlyColorReapplyUsesSlidingStyleOniOSOrMacCatalyst26, MapperColorReapplySurvivesMauiCustomColorResetOniOSOrMacCatalyst26, LayoutSubviewsDoesNotReapplyColorsWhenNotDirtyOniOSOrMacCatalyst26, QueuedColorReapplyDoesNotUpdateStaleNativeSwitchAfterReconnectOniOSOrMacCatalyst26, CustomColorsReapplyAfterWillEnterForegroundOniOS26, MapperOnlyColorsReapplyAfterWillEnterForegroundOniOS26, CustomColorsUpdateAfterAppThemeChangeOniOSOrMacCatalyst26) without fix: build failed before tests could run
    • /Users/cloudtest/vss/_work/1/s/src/Core/tests/DeviceTests/Handlers/Switch/SwitchHandlerTests.iOS.cs(268,45): error CS1061: 'UISwitch' does not contain a definition for 'IsReadyForColorReapply' and no ...
📁 Fix files reverted (3 files)
  • eng/pipelines/ci-copilot.yml
  • src/Core/src/Handlers/Switch/SwitchHandler.iOS.cs
  • src/Core/src/Platform/iOS/SwitchExtensions.cs

New files (not reverted):

  • src/Core/src/Platform/iOS/MauiSwitch.cs

UI Tests — Switch,ViewBaseTests

Detected UI test categories: Switch,ViewBaseTests

Deep UI tests — 19 passed, 121 failed across 2 categories on platform-pool agent (replaces in-process counts above).

🧪 UI Test Execution Results (deep, platform pool)

Category Tests Snapshot diffs
Switch 6/28 (22 ❌) 22 diff PNGs
ViewBaseTests 13/112 (99 ❌) 99 diff PNGs
Switch — 22 failed tests
VerifySwitchNullColor
System.InvalidOperationException : 
Snapshot different than baseline: VerifySwitchNullColor.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VerifySwitchNullColor.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download 
...
VerifySwitchOffColorAfterTogglingDarkTheme
System.InvalidOperationException : 
Snapshot different than baseline: VerifySwitchOffColorAfterTogglingDarkTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VerifySwitchOffColorAfterTogglingDarkTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseli
...
Switch_SetOnColorAndThumbColor_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_SetOnColorAndThumbColor_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 112
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
  
...
Switch_SetShadowOpacityAndToggled_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_SetShadowOpacityAndToggled_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 129
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
...
SwitchTrackColorTest
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.Issues.Issue20535.SwitchTrackColorTest() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue20535.cs:line 25
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invok
...
Switch_Click_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_Click_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 33
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflecti
...
VerifySwitchOffColorAfterToggling
System.InvalidOperationException : 
Snapshot different than baseline: VerifySwitchOffColorAfterToggling.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VerifySwitchOffColorAfterToggling.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test
...
SwitchColorTestAfterToggling
System.InvalidOperationException : 
Snapshot different than baseline: SwitchColorTestAfterToggling.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: SwitchColorTestAfterToggling.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachmen
...
VerifySwitchControlSize
System.InvalidOperationException : 
Snapshot different than baseline: VerifySwitchControlSize.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VerifySwitchControlSize.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or downl
...
VerifySwitchDefaultColors
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.Issues.Issue29693.VerifySwitchDefaultColors() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue29693.cs:line 22
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.
...
Switch_SetShadowAndOnColor_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_SetShadowAndOnColor_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 148
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at 
...
VerifySwitchOffColorAfterReopeningApp
System.InvalidOperationException : 
Snapshot different than baseline: VerifySwitchOffColorAfterReopeningApp.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VerifySwitchOffColorAfterReopeningApp.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.

...
Switch_SetFlowDirectionAndToggled_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_SetFlowDirectionAndToggled_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 48
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)

...
Switch_InitialState_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_InitialState_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 24
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.R
...
SwitchColorTestBeforeToggling
System.InvalidOperationException : 
Snapshot different than baseline: SwitchColorTestBeforeToggling.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: SwitchColorTestBeforeToggling.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachm
...
VerifySwitchThumbColorOnLightThemeChange
System.InvalidOperationException : 
Snapshot different than baseline: Issue33783_SwitchThumbColor_LightTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: Issue33783_SwitchThumbColor_LightTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image
...
SwitchOnOffVisualStatesTest
System.InvalidOperationException : 
Snapshot different than baseline: SwitchOnOffVisualStatesTest_SwitchOff.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: SwitchOnOffVisualStatesTest_SwitchOff.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.

...
VerifySwitchThumbColorOnDarkThemeChange
System.InvalidOperationException : 
Snapshot different than baseline: Issue33783_SwitchThumbColor_DarkTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: Issue33783_SwitchThumbColor_DarkTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.

...
Switch_SetToggledAndOnColor_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_SetToggledAndOnColor_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 95
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at 
...
Switch_SetShadowAndThumbColor_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_SetShadowAndThumbColor_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 167
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   
...
Switch_SetThumbColorAndOnColor_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.SwitchFeatureTests.Switch_SetThumbColorAndOnColor_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/SwitchFeatureTests.cs:line 185
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
  
...
SwitchThumbShouldBeVisibleWithShadow
System.InvalidOperationException : 
Snapshot different than baseline: SwitchThumbShouldBeVisibleWithShadow.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: SwitchThumbShouldBeVisibleWithShadow.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
Se
...
ViewBaseTests — 99 failed tests
SecondCustomPageWithFlowDirectionChanged
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentViewFeatureTests.SecondCustomPageWithFlowDirectionChanged() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 333
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)

...
VisualTransform_RotationX
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_RotationX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_RotationX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or d
...
Button_ClipWithImageSource
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Button_ClipWithImageSource() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 223
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Runt
...
VisualTransform_AnchorXWithAnchorY
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_AnchorXWithAnchorY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_AnchorXWithAnchorY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See te
...
ImageButton_ClipWithEllipseGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.ImageButton_ClipWithEllipseGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 625
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflec
...
Border_ClipWithNestedContent
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Border_ClipWithNestedContent() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 997
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Ru
...
VisualTransform_ScaleWithAnchorXAndRotationY
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_ScaleWithAnchorXAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_ScaleWithAnchorXAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the ba
...
Border_ClipWithStrokeColorGreen
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Border_ClipWithStrokeColorGreen() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 90
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.
...
VisualTransform_ScaleXWithAnchorYAndRotationY
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_ScaleXWithAnchorYAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_ScaleXWithAnchorYAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the 
...
VisualTransform_AnchorX_ScaleYWithRotation
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_AnchorX_ScaleYWithRotation.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_AnchorX_ScaleYWithRotation.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseli
...
Image_ClipWithComplexPolyLineGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithComplexPolyLineGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 1026
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Ref
...
VisualTransform_IsVisible
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_IsVisible.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_IsVisible.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or d
...
LightTheme_Slider_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.LightTheme_Slider_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 164
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at Syste
...
ImageButton_ClipWithScale
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.ImageButton_ClipWithScale() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 948
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Runti
...
DarkTheme_SearchBarAndPlaceholderColor_VerifyVisualState
System.InvalidOperationException : 
Snapshot different than baseline: DarkTheme_SearchBarAndPlaceholderColor_VerifyVisualState.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: DarkTheme_SearchBarAndPlaceholderColor_VerifyVisualState.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a 
...
Border_ClipNull_NoCrash
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Border_ClipNull_NoCrash() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 695
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Runtime
...
LightTheme_Switch_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.LightTheme_Switch_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 185
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at Syste
...
ContentView_ClipWithEllipseGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.ContentView_ClipWithEllipseGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 549
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflec
...
Image_ClipWithEllipseGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithEllipseGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 303
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.R
...
DarkTheme_CheckBox_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.DarkTheme_CheckBox_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 67
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at Syste
...
VisualTransform_Scale
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_Scale.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_Scale.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download 
...
FirstCustomPageWithFlowDirection
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentViewFeatureTests.FirstCustomPageWithFlowDirection() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 245
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at Sy
...
VisualTransform_RotationY
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_RotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_RotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or d
...
FirstCustomPageWithBackgroundColor
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentViewFeatureTests.FirstCustomPageWithBackgroundColor() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 216
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at 
...
LightTheme_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.LightTheme_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 31
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Image_ClipWithRotation
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithRotation() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 811
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeM
...
BoxView_ClipWithShadow
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.BoxView_ClipWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 197
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeM
...
Image_ClipWithArcSegmentPath
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithArcSegmentPath() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 367
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Ru
...
Image_ClipWithRoundRectangleGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithRoundRectangleGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 319
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Refle
...
VisualTransform_ScaleX
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_ScaleX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VisualTransform_ScaleX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or downloa
...

(+69 more — see TRX in artifact)

📎 Download drop-deep-uitests artifact (TRX + snapshot diffs)


Pre-Flight — Context & Validation

Issue: #35257 - iOS 26 Switch default color for Off and On is incorrect + Off Color is not applied at start + Thumb Colors is not applied
PR: #35385 - Fix iOS 26 Switch custom color rendering
Platforms Affected: iOS, MacCatalyst
Files Changed: 12 implementation/snapshot/support, 1 test

Key Findings

  • Issue #35257 reports that on iOS 26+ Switch initial off colors are wrong and ThumbColor is not applied; the issue is verified and labeled platform/ios, area-controls-switch, and version/iOS-26.
  • PR #35385 changes iOS/MacCatalyst Switch handling to use a MauiSwitch subclass, opt switches with MAUI/custom mapper colors into UISwitchStyle.Sliding, reapply colors after UIKit lifecycle/style resets, preserve native defaults for unstyled switches, and add focused iOS device coverage.
  • GitHub CLI authentication was unavailable, so PR metadata/review comments were gathered from the local review branch, public patch/API data, and the independent code-review sub-agent output.
  • Gate result supplied by caller: Gate PASSED — tests fail without fix and pass with PR fix. Gate verification was not re-run.

Code Review Summary

Verdict: LGTM
Confidence: medium
Errors: 0 | Warnings: 0 | Suggestions: 0

Key code review findings:

  • No high-signal correctness findings. The code review specifically checked stale delayed callbacks after disconnect/reconnect, mapper customization bypasses, foreground/trait/window reapply paths, repeated layout-triggered remapping, native-default clearing after returning to Automatic style, public API surface changes, and iOS/MacCatalyst version guards.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #35385 Introduce MauiSwitch plus queued handler-driven color reapply; use Sliding style only when MAUI/custom mapper colors are intended; preserve Automatic/native defaults otherwise. ✅ PASSED (Gate) SwitchHandler.iOS.cs, MauiSwitch.cs, SwitchExtensions.cs, iOS switch tests, UI snapshot/support files Original PR

Code Review — Deep Analysis

Code Review — PR #35385

Independent Assessment

What this changes: iOS/MacCatalyst SwitchHandler now creates a MauiSwitch subclass that queues delayed color reapply work for iOS/MacCatalyst 26 lifecycle/style resets, preserves native defaults for unstyled switches, switches customized switches to UISwitchStyle.Sliding, detects mapper-only color customizations, and expands iOS device/snapshot coverage.
Inferred motivation: UIKit 26 appears to reset or ignore custom UISwitch track/thumb colors in the automatic style, especially during initial layout, theme/trait changes, foregrounding, and window reattachment.

Reconciliation with PR Narrative

Author claims: The PR fixes iOS 26 switch custom color rendering by opting MAUI-customized switches into the public Sliding style, preserving default Automatic style for unstyled switches, reapplying colors after UIKit lifecycle/style changes, clearing reset thumb colors, and adding focused handler/UI coverage for #35257.
Agreement/disagreement: This matches the code. The implementation routes delayed reapply through handler.UpdateValue(...) rather than direct color writes, handles stale native switches on disconnect/reconnect, includes mapper-only customization coverage, and preserves native defaults when MAUI colors are absent. Existing earlier review comments for delay, stale callbacks, iOS foreground gaps, direct mapper bypass, layout hot-path gating, style-reset cleanup, and short retry windows appear addressed in the current head.

Findings

No ❌ Error, ⚠️ Warning, or 💡 Suggestion findings.

Devil's Advocate

I specifically looked for stale delayed callbacks after disconnect/reconnect, mapper customization bypasses, foreground/trait/window paths that reapply only part of the color state, repeated layout-triggered remapping, incorrect native-default clearing after returning to Automatic style, public API surface changes, and iOS/MacCatalyst version-guard mistakes. The current code has targeted guards/tests for those paths. The remaining limitation is that this review did not execute iOS 26 device tests locally; current GitHub checks are still pending (96 in progress, 4 successful, no failures reported at review time).

Verdict: LGTM

Confidence: medium
Summary: Code review found no high-signal correctness issues in the current PR head, and the PR narrative matches the implementation. CI was still running, so this is a code-only LGTM rather than a merge-readiness statement.


Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix-1 / claude-opus-4.6 Synchronous style guard in SwitchExtensions: set PreferredStyle = Sliding before applying custom colors on iOS/MacCatalyst 26+, keep reapply as one delayed handler callback for foreground/trait resets, and avoid the PR's MauiSwitch lifecycle subclass/queued state machine. ✅ PASS — iOS 26 Core device tests: 2527 passed, 0 failed 3 files Demonstrably simpler: no new platform subclass, fewer moving parts/state flags, uses mapper extension methods as the primary color application point, and passes the same regression suite.
PR PR #35385 Introduce MauiSwitch plus queued handler-driven color reapply; use Sliding style only when MAUI/custom mapper colors are intended; preserve Automatic/native defaults otherwise. ✅ PASSED (Gate) 13 files including snapshots/tests/support Original PR; more comprehensive lifecycle state tracking but higher implementation complexity.

Cross-Pollination

Model Round New Ideas? Details
claude-opus-4.6 1 Yes Candidate #1 passed all requested iOS 26 device tests and is meaningfully different from the PR's fix. Loop stopped under the caller's stop rule because a passing candidate was found that is simpler than the PR fix.

Exhausted: No
Selected Fix: Candidate #1 — It passed the iOS 26 Core device-test run (2527 passed, 0 failed) and is simpler than PR #35385's current fix because it avoids a new MauiSwitch subclass and queued lifecycle state machine while preserving mapper-based color application.


Report — Final Recommendation

Comparative Report — PR #35385

Candidates Compared

Rank Candidate Test result Assessment
1 pr ✅ Passed gate — tests fail without fix and pass with fix Best overall. The PR fix is more complex than try-fix-1, but it covers the broadest iOS 26 switch behavior surface: MAUI custom colors, mapper-only customizations, foreground/window/trait lifecycle reapply, stale reconnect callbacks, native default preservation, and reset-to-Automatic cleanup.
2 pr-plus-reviewer ✅ Same as PR The expert reviewer found no actionable issues, so this candidate is identical to pr. It ranks behind pr only because it adds no distinct improvement.
3 try-fix-1 ✅ Passed iOS 26 Core device tests: 2527 passed, 0 failed A simpler synchronous style-guard approach that sets PreferredStyle = Sliding in SwitchExtensions and uses delayed reapply through the existing proxy. It is attractive due to lower implementation complexity, but its recorded patch is narrower and does not include the PR's full lifecycle/default-state/mapper-only state tracking and snapshot/support coverage.

Analysis

All known candidates passed their recorded regression tests, so no passing candidate is ranked below a failing one. try-fix-1 is the simplest implementation and demonstrated a clean device-test run, but the submitted PR fix has stronger coverage for UIKit lifecycle resets and customization edge cases that are especially relevant to iOS 26 switch rendering.

The expert reviewer returned LGTM with no actionable findings, leaving pr-plus-reviewer equivalent to the raw PR fix. Since it does not materially differ from the PR, the raw pr candidate remains the clearest winner.

Winner

Winner: pr

The PR fix wins because it passed the supplied gate and provides the most comprehensive handling for the observed iOS 26 switch color regressions while preserving unstyled native defaults. The simpler try-fix-1 passed tests, but the PR's broader lifecycle and mapper-only safeguards make it the safer candidate for merge.


Future Action — review latest findings

No alternative fix was selected for this run. Review the session findings and CI results before merging.

@MauiBot MauiBot removed the s/agent-review-in-progress AI review is currently running for this PR label Jun 11, 2026
@AdamEssenmacher

Copy link
Copy Markdown
Contributor Author

I'm dropping this for now. There are too many edge cases to work through pushing the required scope beyond what I'd originally set out to accomplish.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community ✨ Community Contribution s/agent-fix-win AI found a better alternative fix than the PR s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iOS 26 Switch default color for Off and On is incorrect + Off Color is not applied at start + Thumb Colors is not applied

5 participants