From 150fca923610ec3e16038eaa80dbdbdd57c8e340 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Tue, 28 Jan 2025 10:20:03 -0600 Subject: [PATCH] [net10.0] fix NativeAOT support for iOS/Catalyst Context: https://github.com/xamarin/xamarin-macios/issues/22065 The introduction of a new `$(MobileAggressiveAttributeTrimming)` MSBuild property in .NET 10 breaks NativeAOT builds in two ways: * C# attributes are stripped away by ILLink, hence: * Trimmer warnings are introduced. * App crashes can result, with IL removed that *shouldn't* be. Let's set `$(MobileAggressiveAttributeTrimming)` to `false` for now to avoid these issues. In a future PR, we can address xamarin-macios#22065 in the iOS workload. --- .../netstandard2.0/Microsoft.Maui.Controls.targets | 2 ++ .../Microsoft.Maui.IntegrationTests/AOTTemplateTest.cs | 10 ++++------ .../AppleTemplateTests.cs | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets b/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets index a13726ba3861..78f72b26ac6b 100644 --- a/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets +++ b/src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.targets @@ -236,6 +236,8 @@ false true false + + false PrepareNativeAotBuildProps() diff --git a/src/TestUtils/src/Microsoft.Maui.IntegrationTests/AppleTemplateTests.cs b/src/TestUtils/src/Microsoft.Maui.IntegrationTests/AppleTemplateTests.cs index ec9c27ef597e..dc3754a69a88 100644 --- a/src/TestUtils/src/Microsoft.Maui.IntegrationTests/AppleTemplateTests.cs +++ b/src/TestUtils/src/Microsoft.Maui.IntegrationTests/AppleTemplateTests.cs @@ -37,8 +37,7 @@ public void AppleTemplateFxtTearDown() [TestCase("maui-blazor", "Release", DotNetCurrent, "iossimulator-x64", RuntimeVariant.Mono, null)] // FIXME: has trimmer warnings //[TestCase("maui-blazor", "Release", DotNetCurrent, "iossimulator-x64", RuntimeVariant.Mono, "full")] - // FIXME: NativeAOT not working yet on .NET 10 - //[TestCase("maui", "Release", DotNetCurrent, "iossimulator-x64", RuntimeVariant.NativeAOT, null)] + [TestCase("maui", "Release", DotNetCurrent, "iossimulator-x64", RuntimeVariant.NativeAOT, null)] public void RunOniOS(string id, string config, string framework, string runtimeIdentifier, RuntimeVariant runtimeVariant, string trimMode) { var projectDir = TestDirectory;