Skip to content

[RC2] Temporarily use GoldenGate for build, UI and device pipelines - #38853

Merged
kubaflo merged 5 commits into
release/11.0.1xx-rc2from
kubaflo-rc2-test-pipelines
Sep 24, 2026
Merged

kubaflo merged 5 commits into
release/11.0.1xx-rc2from
kubaflo-rc2-test-pipelines

Conversation

@kubaflo

@kubaflo kubaflo commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Description of Change

Temporary RC2 workaround: use the GoldenGate image from #38852 until the standard macOS images provide Xcode compatible with the pinned Apple SDK. Explicit source comments identify the workaround and its removal condition in all three pipeline entry points and the shared configuration.

All public and internal macOS pool defaults are aligned:

Pipeline macOS coverage
maui-pr (ci.yml) Build, pack, and integration pool defaults
maui-pr-uitests (ci-uitests.yml) Shared app builds, iOS UI runs, and MacCatalyst UI runs
maui-pr-devicetests (ci-device-tests.yml) Mono/CoreCLR app builds and all macOS pool defaults
  • Use AcesShared with ImageOverride -equals $(AcesMacImageOverride) throughout these macOS defaults. Select ACES_VM_SharedPool_GoldenGate once in common/variables.yml, independently of Azure Pipelines' hosted-image setting. No exact Xcode application paths are embedded in pipeline demands.
  • Accept the image-selected Xcode only when its reported major/minor version matches $(XCODE). This handles GoldenGate's nonstandard prerelease bundle name while retaining the existing named-bundle fallback and explicit incompatible-version failure. The fast path is also marked temporary.
  • Preserve simulator provisioning. Unlike the official pack-only job in [RC2] Use GoldenGate for official macOS builds #38852, iOS UI-test jobs need simulator setup; copying skipXcode: true would suppress it.
  • Retain caller-supplied pool overrides, SDK/Xcode version pins, test filters, Helix execution queues, and Windows/Android-Linux settings. The separate official-pipeline change in [RC2] Use GoldenGate for official macOS builds #38852 is not modified here.
  • Remove eng/pipelines/ci.Tests.ps1. No pipeline configuration tests are added.

Failure evidence

The old Aces Tahoe image contains Xcode 26.x, while RC2 requires Xcode 27:

  • UI build 1609520: Required Xcode 27.0 is not installed on this agent; installed versions stop at 26.6.
  • Device build 1609521: the same failure in both Mono and CoreCLR app builds.
  • UI build 1607914 also failed during iOS 27 simulator provisioning. Runtime provisioning safeguards remain enabled.

Validation

YAML parsing, configuration inspection of all 14 macOS pool defaults, Bash syntax checks, and git diff --check pass. Full Azure DevOps validation of the latest revision is pending.

Issues Fixed

N/A — temporary RC2 CI provisioning workaround based on the linked builds. Unrelated device-test assertion failures are outside this PR's scope.

Use the working maui-pr MAUI pool and Xcode 27 RC demand for shared UI app builds, iOS UI execution, and Mono/CoreCLR device builds. Cover the three pool defaults with regression tests and document the RC2 routing requirement.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings September 24, 2026 15:19
@kubaflo
kubaflo deployed to copilot-pat-pool September 24, 2026 15:19 — with GitHub Actions Active
@github-actions

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 -- 38853

Or

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

@kubaflo
kubaflo deployed to copilot-pat-pool September 24, 2026 15:19 — with GitHub Actions Active
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

@kubaflo

kubaflo commented Sep 24, 2026

Copy link
Copy Markdown
Contributor Author

/azp run maui-pr-uitests

@kubaflo

kubaflo commented Sep 24, 2026

Copy link
Copy Markdown
Contributor Author

/azp run maui-pr-devicetests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@kubaflo
kubaflo deployed to copilot-pat-pool September 24, 2026 15:22 — with GitHub Actions Active
@kubaflo
kubaflo deployed to copilot-pat-pool September 24, 2026 15:22 — with GitHub Actions Active
@kubaflo
kubaflo deployed to copilot-pat-pool September 24, 2026 15:23 — with GitHub Actions Active

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.

Copilot review overview

🔵 Needs a closer look

The new regression suite is not wired into the repository’s Pester CI gate.

Review effort: Lite
Findings: None

What changed in this PR

Updates public UI and device test pipelines to use MAUI agents with Xcode 27 RC.

Changes:

  • Routes three public pools to the required Xcode 27 agent.
  • Adds regression coverage for pool configuration.
  • Documents RC2 routing requirements.
File Summary
eng/​pipelines/​ci.Tests.ps1 Adds regression tests for affected pools.
eng/​pipelines/​ci-uitests.yml Updates public UI-test pool routing.
eng/​pipelines/​ci-device-tests.yml Updates the public device-test pool.
.github/​docs/​maui-ci-facts.md Documents RC2 agent selection.

Align maui-pr, UI tests, and device tests on AcesShared through AcesMacImageOverride instead of exact Xcode application path demands. Keep hosted image selection independent.

Accept image-selected Xcode when its reported version matches the required SDK generation, including GoldenGate prerelease bundle names, while retaining simulator provisioning and incompatible-version failures.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings September 24, 2026 17:33
@kubaflo kubaflo changed the title [RC2] Fix Xcode selection for UI and device test pipelines [RC2] Use shared GoldenGate agents for Apple CI Sep 24, 2026
@kubaflo

kubaflo commented Sep 24, 2026

Copy link
Copy Markdown
Contributor Author

/azp run maui-pr-devicetests

@kubaflo

kubaflo commented Sep 24, 2026

Copy link
Copy Markdown
Contributor Author

/azp run maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Cover public and internal defaults in the build, UI-test, and device-test pipelines, including MacCatalyst UI execution. Preserve Windows/Linux pools, pool overrides, and simulator provisioning.

Remove pipeline test additions and the obsolete assertion requiring an exact Xcode application path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Document the temporary image and Xcode-selection workarounds in every affected pipeline and shared configuration, including when to remove them.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@kubaflo kubaflo changed the title [RC2] Use shared GoldenGate agents for Apple CI [RC2] Temporarily use GoldenGate for build, UI and device pipelines Sep 24, 2026
@kubaflo

kubaflo commented Sep 24, 2026

Copy link
Copy Markdown
Contributor Author

/azp run maui-pr-devicetests

@kubaflo

kubaflo commented Sep 24, 2026

Copy link
Copy Markdown
Contributor Author

/azp run maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

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.

Copilot review overview

🟡 Changes recommended

Add regression coverage for shared pool routing and compatible, fallback, and rejected Xcode-selection paths.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 Medium severity

Open (2)

Comment thread eng/pipelines/ci.yml
Comment on lines +62 to +64
- name: AcesShared
demands:
- ImageOverride -equals $(AcesMacImageOverride)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

That s fine , we don t really need to do unit tests on yaml

Comment on lines +159 to +163
if SELECTED_XCODE_PATH=$(xcode-select --print-path) && SELECTED_XCODE_INFO=$(xcodebuild -version); then
SELECTED_XCODE_VERSION=$(printf '%s\n' "$SELECTED_XCODE_INFO" | awk '$1 == "Xcode" { print $2; exit }')
if [[ -d "$SELECTED_XCODE_PATH" && ( "$SELECTED_XCODE_VERSION" == "$XCODE_MAJOR_MINOR" || "$SELECTED_XCODE_VERSION" == "$XCODE_MAJOR_MINOR".* ) ]]; then
XCODE_PATH="$SELECTED_XCODE_PATH"
echo "Using image-selected Xcode $SELECTED_XCODE_VERSION at $XCODE_PATH"
Copilot AI review requested due to automatic review settings September 24, 2026 17:48
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

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.

Copilot review overview

🔵 Needs a closer look

Replacement regression coverage is needed for the shared pool-routing and Xcode-selection logic.

Review effort: Lite
Findings: 2 Medium severity

Open (2)

Comment thread eng/pipelines/ci.yml
Comment on lines +62 to +64
- name: AcesShared
demands:
- ImageOverride -equals $(AcesMacImageOverride)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

That s fine , we don t really need to do unit tests on yaml

@kubaflo
kubaflo merged commit 7c73f16 into release/11.0.1xx-rc2 Sep 24, 2026
69 of 171 checks passed
@kubaflo
kubaflo deleted the kubaflo-rc2-test-pipelines branch September 24, 2026 22:13
@github-actions github-actions Bot added this to the .NET 11.0-rc2 milestone Sep 24, 2026
kubaflo added a commit that referenced this pull request Sep 24, 2026
Preserve the corrective tree being validated by manual UI build 1611439 while incorporating the squash merge of #38853. This merge introduces no additional file changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
kubaflo added a commit that referenced this pull request Sep 25, 2026
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Description of Change

Follow up on #38853, which merged while this correction was being
validated. GoldenGate successfully builds the RC2 Apple apps but is not
a working Appium execution environment.

**Temporary RC2 workaround:** separate compilation from UI-test
execution without removing test coverage.

- Keep main CI, device-test builds, and shared UI app builds on
GoldenGate/Xcode 27.
- Run iOS UI tests on the established Aces Tahoe image with Xcode 26.5.
Scope the overridable `iosXcodeVersion` to the CoreCLR and optional
NativeAOT execution jobs, not to app builds. Older template callers keep
their existing behavior.
- Restore both public and internal MacCatalyst UI execution defaults to
`macOS-14`.
- Preserve the iOS 18.5 and latest-available-runtime lanes, category
matrix, caller-supplied pool overrides, and SDK versions used to compile
the downloaded apps. The latest runtime on the temporary iOS execution
image is from the Xcode 26.5 generation; this does not claim iOS 27 UI
coverage.
- Document the temporary split and its removal condition. No pipeline
tests are added.

The UI-test runner builds a host-side .NET test project and runs the
prebuilt app artifact; it does not rebuild that app with the older
execution Xcode.

### Failure evidence

The original manual branch validation at `8bfddf4d09` established the
distinction:

- [maui-pr
1611112](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1611112)
passed, including GoldenGate build, pack, and integration jobs.
- [UI run
1611111](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1611111)
failed all 29 iOS 18.5 lanes because the runtime was unavailable; all 29
latest iOS lanes failed setup because Appium could not find
`/Applications/Xcode_27.app/Contents/Developer/Applications/Simulator.app`;
MacCatalyst lanes failed to start the Mac2 driver.
- [Device run
1611110](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1611110)
built every app successfully. Its remaining device-test failures are
separate from the Appium runner regression.

### Validation

YAML parsing and `git diff --check` pass. Azure Pipelines' native
preview expanded the published YAML with CoreCLR and optional NativeAOT
enabled, confirming Xcode 26.5 is scoped to iOS execution jobs while app
builds retain Xcode 27. NativeAOT execution was previewed, not run.

All four validation runs have now completed:

| Run | Result | Evidence |
|---|---|---|
| [PR main
1611443](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1611443)
| Passed | Full main validation completed successfully. |
| [PR UI
1611447](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1611447)
| Failed overall | **All 29 iOS jobs passed.** MacCatalyst: 26 passed,
one visual-test failure, two timeouts during test retries; no original
Simulator/Mac2 startup failures. |
| [Manual UI
1611439](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1611439)
| Failed overall | All 29 latest-runtime iOS jobs passed; 25/29 iOS 18.5
jobs passed. The missing runtime installed successfully and tests
executed. |
| [PR device
1611446](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1611446)
| Failed overall | App builds passed. All nine Helix jobs completed;
both iOS CoreCLR queues had no failing work items. Remaining device
reliability work is separate. |

Manual UI 1611439 used `15377d8f5e`; follow-up head `141686ba94` has the
identical Git tree after a non-rewriting merge of the published RC2
base. Actual result records were checked, not just the unreliable
run-level `failedTests` field. Representative recovered results include
iOS 18.5 CollectionView4 `44568368` (64 passed), latest CollectionView4
`44568504` (64 passed), and MacCatalyst CollectionView6 `44568608` (49
passed).

### Remaining CI failures

This PR fixes the image-wide startup regression; it does **not** claim
fully green CI or dismiss all individual failures as unrelated.

- Windows sample builds still hit the pre-existing active-manifest
deletion bug; RC2 repair is tracked in #38860.
- Device reliability fixes are handled separately in #38857.
- PR MacCatalyst's `FontImageSourceColorShouldApplyOnTabIcon` failure
has the exact same 85.25% image difference as prior net11 build 1609321
(result `44515230`). The current group ran 166 passing tests
(`44573472`).
- MacCatalyst Layout and Shell hit the three-hour job limit during
full-suite retries after running tests. Their retained results contain
individual assertions/visual differences, not the original Mac2
server-startup error. These need separate stabilization; canceled
retries are not counted as passing.
- Manual iOS 18.5 had an Apple catalogue `RevocationStatusUnknown`
download failure in ScrollView, the previously observed BottomSheet
timeout, and RefreshView/Shell assertions. The runtime itself installed
and the other 25 groups passed. No certificate checks were disabled and
no visual baselines were changed.
- Other Android assertion/fixture failures remain visible for the
broader stabilization work.

### Issues Fixed

The systemic Apple UI execution failures introduced by #38853:
unavailable iOS 18.5 runtime, missing Simulator application, and Mac2
startup failure.

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
kubaflo added a commit that referenced this pull request Sep 25, 2026
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Description of Change

> [!IMPORTANT]
> **Temporary RC2 workaround.** Revert to `name: Azure Pipelines` /
`vmImage: $(HostedMacImage)` once the hosted macOS image ships Xcode 27.
The source comment in `ci-official.yml` records this removal condition.

The official `dotnet-maui` pipeline (definition 1095) on
`release/11.0.1xx-rc2` has been failing on every automatic run. Its
`MacOSPool` still defaults to the hosted `macOS-26` image, which only
has Xcode 26.0–26.6. The pinned Apple SDK (`27.0.12198-net11-rc.2`)
needs `XCODE=27.0`, so **Pack macOS** fails at **Select Xcode Version**:

```
##[error]Required Xcode 27.0 is not installed on this agent. Update the macOS agent image before building with the pinned Apple SDK.
```

When that fails, Pack Windows, Publish Assets, NuGet Validation and
Publish using Darc are all skipped, so no build is produced. Example:
[3086978](https://dev.azure.com/dnceng/internal/_build/results?buildId=3086978).

#38853 already moved `maui-pr`, `maui-pr-uitests` and
`maui-pr-devicetests` to GoldenGate through `$(AcesMacImageOverride)`.
`ci-official.yml` was not updated. This PR points the official
`MacOSPool` default at the same variable:

```yaml
name: AcesShared
demands:
  - ImageOverride -equals $(AcesMacImageOverride)   # ACES_VM_SharedPool_GoldenGate
os: macOS
```

### Validation

- Manual build
[3087497](https://dev.azure.com/dnceng/internal/_build/results?buildId=3087497)
on this branch, with `MacOSPool` overridden to AcesShared/GoldenGate,
**succeeded end to end**: Pack, APIScan, Validate Build Assets and
Publish using Darc. Select Xcode Version logged `Using image-selected
Xcode 27.0 at /Applications/Xcode_27.app/Contents/Developer`.
- `$(AcesMacImageOverride)` expands in pool demands. `maui-pr` build
1612115 ran `Build macOS` on `ACES_VM_SharedPool_GoldenGate`.
- YAML parses, and the existing `eng/pipelines/ci-official.Tests.ps1`
passes.

### Issues Fixed

The automatic official builds on `release/11.0.1xx-rc2` produce no
build.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
kubaflo added a commit that referenced this pull request Oct 9, 2026
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->

### Description of Change

<!-- Enter description of the fix in this section -->

Intentionally targets **net11.0**, based on
`8d04ca676fc51a8f940f65dfbec9a8085fa13615`, rather than main or RC2.
Ports the Apple-specific Xcode 27 adoption from `release/11.0.1xx-rc2`
without changing net11's SDK, runtime, Android, Extensions, or Arcade
pins.

- Pin all four .NET 11 Apple SDKs to **27.0.12211-net11-rc.2** from
macios commit `35d8bf5a42cd71edf4e2700b1e45f6c4b65f3fbe` (BAR 334217,
RC2 channel), and update current/default iOS, tvOS, Mac Catalyst and
macOS platform TFMs to 27.0.
- Align the .NET 10 Apple compatibility SDKs to **26.5.10322**, required
by all four selected .NET 11 workload manifests; update their
coherent-parent names and public feed. This is required manifest
alignment, not an unrelated .NET 10 upgrade.
- Raise managed and native iOS deployment minimums to **15.0**. Native
iOS 12 / Catalyst's mapped macOS 10.15 targets are rejected by Xcode 27.
The managed Catalyst minimum remains 17.0; templates already use iOS 15
/ Catalyst 17.
- Select **GoldenGate / Xcode 27** for public and internal Apple
framework, pack, integration, UI-app, device-app and official
compilation. Continue executing prebuilt iOS UI-test apps on **Tahoe /
Xcode 26.5**, and Catalyst UI tests on **macOS 14**.
- Remove the obsolete repository-wide Xcode 26.2/26.3 validation bypass
and unconditional `eng/Build.props` overrides. Normal builds now let the
workload validate Xcode; explicit test/review-runner overrides remain
available.
- Document build requirements and remaining image limitations in
`docs/DevelopmentTips.md`.

**Evidence and retained workarounds**

The RC2 adoption/CI changes are in #38787, #38788, #38853, #38855 and
#38892. #38806 deliberately omitted Apple 27 / minimum-version / pool
changes when forward-porting to net11; this supplies that missing Apple
configuration. Icon Composer changes from #38984 are already on net11
and are not duplicated.

- Keep the GoldenGate compilation fallback: standard Azure hosted macOS
26 currently provides only Xcode 26.0–26.6. The Xcode 27 preview pool is
not a proven standard Azure-hosted replacement; no paid pool is
introduced. [Azure image
availability](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops),
[Xcode 27 image
discussion](actions/runner-images#14404 (comment)).
- Keep the Appium build/execution split: GoldenGate previously lacked
the required iOS 18.5 runtime / usable Simulator UI and failed Mac2
startup; corrected RC2 build 1611447 passed all 29 iOS jobs. Current RC2
UI failures occur during package restore and do not establish that
GoldenGate UI execution is fixed. macOS 14 retires November 2, 2026; its
replacement requires separate Mac2 validation.
- Keep simulator provisioning, architecture-specific downloads, bounded
recovery and explicit failure when required Xcode is missing. Do not
copy #38852's unmerged `skipXcode: true` shortcut.
- **Do not port** GoldenGate's prerelease selected-Xcode fast path: [RC2
build
1623906](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1623906),
at RC2 HEAD `d32b79928709cf53b671336dabd0caef5a679fc2`, succeeded with
`/Applications/Xcode_27.app`, which the existing named fallback already
finds. This is source-configuration evidence, not validation of this PR.
- Do not copy later RC2 internal-SDK credentials, public-SDK fallbacks,
or internal feeds. They address different SDK/runtime pins. Retain
existing `TargetsCurrent`, local runner overrides and PowerShell
startup/recovery safeguards because Xcode 27 does not prove their
underlying issues resolved. The dedicated Copilot-review pipeline
retains its own older-branch overrides; it is not the standard net11
build lane.

**Validation**

- `.dotnet/dotnet build Microsoft.Maui.BuildTasks.slnf -c Release
-p:BuildTaskOnlyBuild=true -p:CI=true --verbosity quiet` — **passed**, 0
warnings / 0 errors, using the unchanged pinned SDK
`11.0.100-rtm.26480.113` in this worktree. This validates build
prerequisites, not Apple 27 app compilation.
- `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer xcodebuild
-project
src/Core/AppleNative/PlatformInterop/MauiPlatformInterop.xcodeproj
-scheme MauiPlatformInterop -configuration Release -sdk iphonesimulator
-destination 'generic/platform=iOS Simulator' -derivedDataPath
artifacts/native-validation CODE_SIGNING_ALLOWED=NO build` — **passed**,
arm64 and x86_64 simulator framework compilation at iOS 15.0, using
installed **Xcode 26.6**, not Xcode 27. No simulator/app/test runner was
launched.
- `plutil -lint
src/Core/AppleNative/PlatformInterop/MauiPlatformInterop.xcodeproj/project.pbxproj`
and `git diff --check` — **passed**. Python `yaml.safe_load` / XML
parsing — **passed** for all changed pipeline and XML configuration
files. No pipeline tests were added.
- `.dotnet/dotnet msbuild Directory.Build.props -nologo
-getProperty:MauiPlatforms,MauiGraphicsPlatforms,IosTargetFrameworkVersionSdkDefault,MacCatalystTargetFrameworkVersionSdkDefault,ValidateXcodeVersion,TargetsCurrent`
— **passed**; current Apple TFMs resolve to 27.0 and the blanket
validation bypass is absent. Evaluating `eng/Versions.props` confirms
unchanged SDK/runtime/Android pins and all four Apple 27 pins.
- Downloaded and inspected all four exact Apple workload manifest
packages from the public dotnet11 feed — **passed**, confirming the .NET
10 compatibility SDK requirement is 26.5.10322.
- `dotnet format Microsoft.Maui.sln --no-restore --exclude Templates/src
--exclude-diagnostics CA1822` — attempted but **incomplete**: missing
restored references/workloads. Stopped it and removed its unrelated
generated formatting edits; no C# source changes are included.
- Initial unrestricted build-task attempts were blocked by missing
assets / Apple workloads. Repository bootstrap installed the exact
pinned SDK; full workload provisioning was stopped in favor of the
successful CI build-task-only command above.

Remote CI results for commit `e7a941cd121fff58bcd30892bbcf29e18882ac55`
(checked October 8, 2026):

- [maui-pr
1628491](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1628491)
— **completed, failed overall**. Apple compilation, macOS pack and main
integration validation passed; the macOS build selected
`/Applications/Xcode_27.app`. The only failing main-pipeline task was
the Helix monitor: Windows Debug
`SkiaSharpSvgToolsTests.Resize.BasicNoScaleReturnsOriginalSize` failed
deleting a locked temporary file in `Resize.Dispose()`. This is a
**confirmed identical historical cleanup failure predating this PR**,
not evidence of an Xcode-adoption regression: September 29 [build
1616449](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1616449),
the **net11.0-targeted #38984 merge build** (`refs/pull/38984/merge`,
not a direct `refs/heads/net11.0` baseline run), failed the same test in
Windows Release with the same `IOException` and `FileSystem.DeleteFile`
→ `Resize.Dispose()` line-25 stack; only the temporary filename differs.
See its actual [Helix
console](https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-maui-refs-pull-38984-merge-c211216b883342c6ae/Microsoft.Maui.Resizetizer.UnitTests.dll/1/console.30a6023e.log?helixlogtype=result)
and [test-result
XML](https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-maui-refs-pull-38984-merge-c211216b883342c6ae/Microsoft.Maui.Resizetizer.UnitTests.dll/1/testResults.xml?helixlogtype=result).
The fixture is byte-identical between exact base `8d04ca676f` and PR
head `e7a941cd12` (blob `a41ebe6e87b3809f952b51f98e594bf5faf2fe25`);
Skia/runtime pins and Windows execution pools are unchanged, and the
relevant configuration changes are Apple-specific. Together, this
supports **no causal link to Xcode adoption**. The latest exact-base
[net11.0 build
1628290](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1628290)
passed; that does not negate the verified earlier occurrence. No cleanup
fix or rerun is included.
- [maui-pr-devicetests
1628492](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1628492)
— **completed, succeeded**, including Mono/CoreCLR device-app
compilation. Cross-checked all nine Helix jobs: 71 terminal work items,
zero failing exits and no work items still running; this is a work-item
count, not a test-case count.
- [maui-pr-uitests
1628493](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1628493)
— **completed, failed overall** at 21:42 UTC. UI-app compilation and the
complete **iOS CoreCLR UI stage passed**. The five failed/canceled
execution legs are MacCatalyst Layout, Navigation and Shell; Windows
Shell; and Android SafeAreaEdges. MacCatalyst Shell was canceled after
three hours during its retry, so its complete execution coverage remains
**unverified**, not passed.
- **Baseline-matched UI failures:** MacCatalyst `Issue59172RecoveryTest`
timeout matches [net11.0 build
1625634](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1625634).
MacCatalyst `ValidateBackgroundColorDoesNotAffectInputTransparent`
timeout matches the exact-base [net11.0 build
1628291](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1628291),
test run 45168562. MacCatalyst Shell
`SearchHandlerQueryIconUpdatesAtRuntime` (0.51% screenshot difference)
also matches that build, run 45168556;
`SearchHandlerClearPlaceholderIconUpdatesAtRuntime`, seen during the
interrupted retry, matches [net11.0 build
1626506](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1626506),
run 45112430. Android
`SafeAreaNoWhiteSpaceAfterKeyboardDismissAndEdgeToggle` matches the same
assertion on [net11.0 build
1627873](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1627873).
- **Unmatched UI failures:** MacCatalyst Shell
`SearchHandlerResetAllRestoresDefaultIcons` has a 0.52% screenshot
mismatch (published in run 45176448); it was not among failed results in
the five sampled net11.0 Shell runs. Windows
`VerifyShellSearch_TextTransformUppercase` has a 0.70% screenshot
mismatch; the corresponding Shell runs pass in all five sampled net11.0
UI builds. Neither is established as unrelated or PR-caused. The Shell
cancellation leaves additional coverage incomplete. No screenshot
baselines were updated to hide failures.
- [PowerShell Script Tests
37821050474](https://github.com/dotnet/maui/actions/runs/37821050474) —
**failed**: the unchanged `Review-Tests` contract expects an inline
GPT-5.6 model while the unchanged target-branch workflow imports
GPT-6.1. Both the assertion and its workflow subject are identical to
net11.0; no pipeline-test changes are included in this PR.

Xcode 27 is not installed locally; the Apple 27 compilation evidence
above is from remote CI. All three PR pipelines have finished, but
**full UI validation is not green**, MacCatalyst Shell coverage is
incomplete, and **official/internal signing remains pending**. The
unmatched failures need further investigation before claiming merge
readiness. These results do not justify removing the retained
execution-image safeguards. No XCTest/XCUITest or local UI automation
was run; global Xcode selection was not changed. The CI watch has been
stopped.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

No separately filed issue; requested .NET 11 adoption of the
already-established RC2 Xcode 27 configuration.

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants