Skip to content

Tags: dotnet/maui

Tags

11.0.0-preview.5.26304.4

Toggle 11.0.0-preview.5.26304.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Backport simulator runtime provisioning fix (#35773)

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

## Summary
- Backports only the simulator runtime provisioning fix from PR #35364
commit 7b16d25.
- Avoids deleting all simulator runtimes if the first install attempt
fails.
- Tries the exact universal, default universal, and default iOS
simulator runtimes, with pre/post simulator diagnostics.

## Validation
- `git diff --cached --check`
- `ruby -e 'require "yaml"; YAML.load_file(ARGV.fetch(0)); puts "ruby
yaml parse: ok"' eng/pipelines/common/provision.yml`

Co-authored-by: bot <bot@test>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

10.0.71

Toggle 10.0.71's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Increment patch version from 70 to 71 (#35786)

10.0.70

Toggle 10.0.70's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[release/10.0.1xx-sr7] Fix BackButtonBehavior_IconOverride_CustomIcon…

…ShownOnBackButton on iOS 26 (#35566)

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

### Issue

UI test `BackButtonBehavior_IconOverride_CustomIconShownOnBackButton`
fails on iOS 26 (vlatest) on the `release/10.0.1xx-sr7` branch.

- Build:
[1427432](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1427432)
(`maui-pr-uitests` on SR7 head `bdca474345`)
- Failed twice (both attempts) — deterministic, not flaky
- Failure: `System.TimeoutException : Timed out waiting for element...`
at `ShellNavigationFeatureTests.cs:line 922`
- Other platforms (Android API 30, iOS 18.5, MacCatalyst) all pass

### Root cause

PR #35521 backported the `_sendPopPending` product fix from #34890 to
SR7 and **removed** the `Assert.Ignore` from tests 50 and 51 (since the
product is now fixed and those tests should pass on iOS 26).

It left in place an obsolete iOS 26 workaround in test 52:

```csharp
[Test, Order(52)]
public void BackButtonBehavior_IconOverride_CustomIconShownOnBackButton()
{
    if (iOS26OrHigher)
    {
        NavigateToDetail1AndWait();   // ← obsolete after #35521
    }
    App.WaitForElement("Detail1GoBackButton");
    ...
```

That workaround was originally needed when test 51 was being skipped on
iOS 26 (so test 52 started from Main and had to navigate to Detail1
itself).

Now that #35521 un-ignored test 51, the flow on iOS 26 is:
1. Test 51 runs, calls `NavigateToDetail1AndWait()` and ends with
`ShellScreenshot()` — UI is on **Detail1**, no reset
2. Test 52 starts on Detail1, hits `if (iOS26OrHigher)` and tries to
navigate **Main → Detail1**
3. But we're already on Detail1, so `NavigateToDetail1Button` isn't
visible → `TimeoutException`

This is purely a test state-leak bug — not a product regression.

### Fix

Remove the now-redundant `iOS26OrHigher` block from test 52. After the
removal, test 52 starts by tapping `Detail1GoBackButton` directly, which
is correct because:
- Test 51 leaves the UI on Detail1
- `Detail1GoBackButton` is a custom page-content button (created via
`ShellNavHelper.CreateNavButton(..., "Detail1GoBackButton")` in
`ShellNavigationControlPage.xaml.cs`), **not** the shell back arrow — it
is unaffected by test 51's `IsVisibleButton` toggle (which sets
`BackButtonBehavior.IsVisible=false` on the shell back arrow)

### Diff

```diff
 [Test, Order(52)]
 public void BackButtonBehavior_IconOverride_CustomIconShownOnBackButton()
 {
-    if (iOS26OrHigher)
-    {
-        NavigateToDetail1AndWait();
-    }
     App.WaitForElement("Detail1GoBackButton");
     App.Tap("Detail1GoBackButton");
     ...
```

### Follow-up (main)

`main` and `net11.0` have the **opposite** asymmetry: the product fix
(`_sendPopPending` reset) is already there, but tests 50 and 51 still
carry the `Assert.Ignore` (so iOS 26 coverage for those scenarios is
silently skipped). When those `Assert.Ignore` lines get removed, the
same workaround should also be removed from test 52 — otherwise main
will hit the same failure this PR fixes here.

### Validation

- Tested locally: only the obsolete branch is removed; remaining test
body matches the iOS 18.5 / Android / MacCatalyst flow that already
passes
- The 4 deleted lines were dead code on every other platform anyway
(`iOS26OrHigher` is false there)
- No product code touched

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

11.0.0-preview.4.26230.3

Toggle 11.0.0-preview.4.26230.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[release/11.0.1xx-preview4] Update dependencies from dotnet/dotnet, d…

…otnet/macios (#35271)

This pull request updates the following dependencies

[marker]: <> (Begin:5ff6fff7-e896-44f6-b87f-673c4569f4a5)
## From https://github.com/dotnet/macios
- **Subscription**:
[5ff6fff7-e896-44f6-b87f-673c4569f4a5](https://maestro.dot.net/subscriptions?search=5ff6fff7-e896-44f6-b87f-673c4569f4a5)
- **Build**:
[20260501.3](https://dev.azure.com/devdiv/DevDiv/_build/results?buildId=13990367)
([312733](https://maestro.dot.net/channel/9588/github:dotnet:macios/build/312733))
- **Date Produced**: May 1, 2026 8:08:10 AM UTC
- **Commit**:
[cbe42632ab063a8b23df492692f92beeeda68a16](dotnet/macios@cbe4263)
- **Branch**:
[release/11.0.1xx-preview4](https://github.com/dotnet/macios/tree/release/11.0.1xx-preview4)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [26.4.11511-net11-p4 to 26.4.11514-net11-p4][3]
     - Microsoft.iOS.Sdk.net11.0_26.4
     - Microsoft.MacCatalyst.Sdk.net11.0_26.4
     - Microsoft.macOS.Sdk.net11.0_26.4
     - Microsoft.tvOS.Sdk.net11.0_26.4

[3]: dotnet/macios@16dad20...cbe4263

[DependencyUpdate]: <> (End)


[marker]: <> (End:5ff6fff7-e896-44f6-b87f-673c4569f4a5)




[marker]: <> (Begin:74f9a062-0c3c-4244-97f5-1bdef5ec5486)
## From https://github.com/dotnet/dotnet
- **Subscription**:
[74f9a062-0c3c-4244-97f5-1bdef5ec5486](https://maestro.dot.net/subscriptions?search=74f9a062-0c3c-4244-97f5-1bdef5ec5486)
- **Build**:
[20260430.15](https://dev.azure.com/dnceng/internal/_build/results?buildId=2964538)
([312694](https://maestro.dot.net/channel/9588/github:dotnet:dotnet/build/312694))
- **Date Produced**: May 1, 2026 3:25:05 AM UTC
- **Commit**:
[4370ea16341331f045fa9b89cc46e03aed27195c](dotnet/dotnet@4370ea1)
- **Branch**:
[release/11.0.1xx-preview4](https://github.com/dotnet/dotnet/tree/release/11.0.1xx-preview4)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [11.0.0-preview.4.26224.122 to 11.0.0-preview.4.26230.115][2]
     - Microsoft.AspNetCore.Authentication.Facebook
     - Microsoft.AspNetCore.Authentication.Google
     - Microsoft.AspNetCore.Authentication.MicrosoftAccount
     - Microsoft.AspNetCore.Authorization
     - Microsoft.AspNetCore.Components
     - Microsoft.AspNetCore.Components.Analyzers
     - Microsoft.AspNetCore.Components.Forms
     - Microsoft.AspNetCore.Components.Web
     - Microsoft.AspNetCore.Components.WebAssembly
     - Microsoft.AspNetCore.Components.WebAssembly.Server
     - Microsoft.AspNetCore.Components.WebView
     - Microsoft.AspNetCore.Metadata
     - Microsoft.Extensions.Configuration
     - Microsoft.Extensions.Configuration.Abstractions
     - Microsoft.Extensions.Configuration.Json
     - Microsoft.Extensions.DependencyInjection
     - Microsoft.Extensions.DependencyInjection.Abstractions
     - Microsoft.Extensions.FileProviders.Abstractions
     - Microsoft.Extensions.Hosting.Abstractions
     - Microsoft.Extensions.Logging
     - Microsoft.Extensions.Logging.Abstractions
     - Microsoft.Extensions.Logging.Console
     - Microsoft.Extensions.Logging.Debug
     - Microsoft.Extensions.Primitives
     - Microsoft.JSInterop
     - Microsoft.NETCore.App.Ref
  - From [11.0.0-beta.26224.122 to 11.0.0-beta.26230.115][2]
     - Microsoft.DotNet.Arcade.Sdk
     - Microsoft.DotNet.Build.Tasks.Feed
     - Microsoft.DotNet.Build.Tasks.Installers
     - Microsoft.DotNet.Build.Tasks.Workloads
     - Microsoft.DotNet.Helix.Sdk
     - Microsoft.DotNet.RemoteExecutor
     - Microsoft.DotNet.SharedFramework.Sdk
     - Microsoft.DotNet.XUnitExtensions
- From [11.0.100-preview.4.26224.122 to 11.0.100-preview.4.26230.115][2]
     - Microsoft.NET.Sdk

[2]: dotnet/dotnet@48bd87d...4370ea1

[DependencyUpdate]: <> (End)


[marker]: <> (End:74f9a062-0c3c-4244-97f5-1bdef5ec5486)



[marker]: <> (Begin:Coherency Updates)
## Coherency Updates

The following updates ensure that dependencies with a
*CoherentParentDependency*
attribute were produced in a build used as input to the parent
dependency's build.
See [Dependency Description
Format](https://github.com/dotnet/arcade/blob/master/Documentation/DependencyDescriptionFormat.md#dependency-description-overview)

[DependencyUpdate]: <> (Begin)

- **Coherency Updates**:
- **Microsoft.MacCatalyst.Sdk.net10.0_26.4**: from 26.4.10255 to
26.4.10259 (parent: Microsoft.MacCatalyst.Sdk.net11.0_26.4)
- **Microsoft.macOS.Sdk.net10.0_26.4**: from 26.4.10255 to 26.4.10259
(parent: Microsoft.macOS.Sdk.net11.0_26.4)
- **Microsoft.iOS.Sdk.net10.0_26.4**: from 26.4.10255 to 26.4.10259
(parent: Microsoft.iOS.Sdk.net11.0_26.4)
- **Microsoft.tvOS.Sdk.net10.0_26.4**: from 26.4.10255 to 26.4.10259
(parent: Microsoft.tvOS.Sdk.net11.0_26.4)

[DependencyUpdate]: <> (End)

[marker]: <> (End:Coherency Updates)

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: GitHub Actions <github-actions@xamarin.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

10.0.60

Toggle 10.0.60's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Use Azure Artifacts Maven feed for CFSClean network isolation complia…

…nce (#35089)

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

## Problem

The official build pipeline (`dotnet-maui`, def 1095) fails because
[CFSClean network isolation](#34540)
blocks direct access to `repo.maven.apache.org`. This breaks two
separate Gradle invocations:

1. **`src/Core/AndroidNative` build** — our own Gradle project
2. **`Microsoft.Android.Sdk.Bindings.Gradle.targets`** — Android SDK
binding generator in `Core.csproj`

Per [1ES CFS guidance](https://aka.ms/1es/netiso/CFS), the fix is to
route all Maven dependency resolution through an Azure Artifacts feed
with upstream sources.

## Fix

### Gradle configuration changes
- **`settings.gradle`** — Replace `mavenCentral()`, `google()`,
`gradlePluginPortal()` with the `dotnet-public-maven` Azure Artifacts
feed. Add the [Azure Artifacts Gradle credential
provider](https://pkgs.dev.azure.com/artifacts-public/PublicTools/_packaging/AzureArtifacts/maven/v1)
plugin (v1.1.1) for local authentication.
- **`build.gradle`** — Point `buildscript.repositories` to the same feed
for AGP classpath resolution.
- **`eng/init.gradle`** — Global Gradle init script that redirects any
remaining Maven Central/Google Maven references (e.g. from
`Microsoft.Android.Sdk.Bindings.Gradle.targets`) to the feed. Installed
into `GRADLE_USER_HOME` by the pipeline.

### Pipeline changes
- **`cache-gradle.yml`** — Copy `init.gradle` into `GRADLE_USER_HOME`
**after** cache restore to prevent stale cached copies. Uses
`$(GRADLE_USER_HOME)` variable for the destination path.

### Why the ingestion script (`eng/ingest-maven-deps.sh`) is needed

The `dotnet-public-maven` feed proxies Maven Central, but new packages
require an **authenticated first-time pull** to be saved. The Gradle
credential provider plugin has two limitations that prevent `dotnet
build` from self-ingesting:

1. **Skips entirely in CI** — when `TF_BUILD=True` (Azure Pipelines),
the plugin is a no-op
2. **Doesn't cover all Gradle scopes** — the plugin injects auth into
`pluginManagement.repositories` and `project.repositories`, but NOT
`buildscript.repositories` or AGP's internal `detachedConfiguration`
scopes. This means `dotnet build` locally cannot ingest new packages
through the Android SDK binding targets even with correct credentials.

We verified this by adding an un-ingested package
(`io.coil-kt:coil:2.7.0`) — `dotnet build` fails with 401 despite the
credential provider authenticating successfully.

**Upstream issue:**
[microsoft/artifacts-credprovider#671](microsoft/artifacts-credprovider#671)

The script works around these gaps by:
1. Acquiring an auth token via the .NET credential provider (MSAL)
2. Pre-ingesting platform-specific artifacts (aapt2) for all OS variants
(macOS/Linux/Windows)
3. Running Gradle with `--refresh-dependencies` to bypass local cache
4. Falling back to `curl` with Bearer token for unreachable scopes

**Run `./eng/ingest-maven-deps.sh` after adding or updating any
Maven/Gradle dependency.**

### Documentation updates
- `settings.gradle` — explains the feed setup and when to run the script
- `gradle-wrapper.properties` — warning not to upgrade Gradle past 8.x
(`dotnet/android#10738`)
- `copilot-instructions.md` — always-on guidance for Gradle 401 failures
- `azdo-build-investigator/SKILL.md` — error signatures and DO NOTs for
CI investigation
- `android.instructions.md` — quick reference for Android developers

## Verified

- ✅ Internal official build
[2961149](https://dev.azure.com/dnceng/internal/_build/results?buildId=2961149)
passed — Pack macOS + Pack Windows both green
- ✅ Same pattern used by dotnet/aspnetcore ([PR
#64962](dotnet/aspnetcore#64962))
- ✅ Feed is public — no auth needed to read already-ingested packages,
external contributors can build without credentials
- ✅ Locally verified: `dotnet build` works for already-ingested
packages, fails for new ones (confirming script is needed)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Matt Mitchell (.NET) <mmitche@microsoft.com>

11.0.0-preview.3.26203.7

Toggle 11.0.0-preview.3.26203.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[release/11.0.1xx-preview3] Bump macios SDKs to 26.2.11588-net11-p3 (#…

…34853)

Bump iOS/MacCatalyst/macOS/tvOS SDK versions from `26.2.11587-net11-p3`
to `26.2.11588-net11-p3` to match
[workload-versions#766](dotnet/workload-versions#766).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

10.0.51

Toggle 10.0.51's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[backport 10.0.1xx-sr5] Fix MAUIG2045 false positive with x:Reference…

… source in DataTemplate (#34525)

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

Backport of #34501 to `release/10.0.1xx-sr5`.

When a binding uses `Source={x:Reference}`, the source generator was
incorrectly validating the binding path against `x:DataType` instead of
the referenced element, producing a false MAUIG2045 warning. This fix
detects explicit binding sources (both `RelativeSource` and
`x:Reference`) and skips compilation, falling back to runtime binding.

Fixes #34490

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

10.0.50

Toggle 10.0.50's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Update PreReleaseVersionLabel and StabilizePackageVersion (#34371)

11.0.0-preview.2.26152.10

Toggle 11.0.0-preview.2.26152.10's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[release/11.0.1xx-preview2] Use wildcard versions for template depend…

…encies in preview builds (#34305)

Backport of #34214 to release/11.0.1xx-preview2

/cc @mattleibow

Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

10.0.41

Toggle 10.0.41's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Increment patch version from 40 to 41 (#34059)