From 2432902de3f24bcbee447ec6673a9da2965094ac Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Wed, 29 Apr 2026 14:14:27 +0200 Subject: [PATCH 1/3] Fix Apple platform TPVs to use 26.0 instead of 26.2 The Target Platform Versions for iOS, MacCatalyst, tvOS, and macOS were incorrectly set to 26.2, causing the library to target TFMs like net10.0-ios26.2 instead of net10.0-ios26.0. The base/stable TPV for .NET 10 Apple platforms should be 26.0 (matching Xcode 26 unified SDK versioning). Updated in: - source/SkiaSharp.Build.props: TPViOS/MacCatalyst/tvOS/macOS Current - build.cake: hardcoded TFMs in test tasks - scripts/VERSIONS.txt: ref pack names and versions - scripts/cake/UpdateDocs.cake: ref pack package names Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.cake | 4 ++-- scripts/VERSIONS.txt | 8 ++++---- scripts/cake/UpdateDocs.cake | 8 ++++---- source/SkiaSharp.Build.props | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/build.cake b/build.cake index 8667441a77d..37c7692637c 100644 --- a/build.cake +++ b/build.cake @@ -374,7 +374,7 @@ Task ("tests-ios") FilePath csproj = "./tests/SkiaSharp.Tests.Devices/SkiaSharp.Tests.Devices.csproj"; var configuration = "Debug"; - var tfm = "net10.0-ios26.2"; + var tfm = "net10.0-ios26.0"; var rid = "iossimulator-" + RuntimeInformation.ProcessArchitecture.ToString ().ToLower (); var outputDir = $"./tests/SkiaSharp.Tests.Devices/bin/{configuration}/{tfm}/{rid}"; @@ -413,7 +413,7 @@ Task ("tests-maccatalyst") FilePath csproj = "./tests/SkiaSharp.Tests.Devices/SkiaSharp.Tests.Devices.csproj"; var configuration = "Debug"; - var tfm = "net10.0-maccatalyst26.2"; + var tfm = "net10.0-maccatalyst26.0"; var rid = "maccatalyst-" + RuntimeInformation.ProcessArchitecture.ToString ().ToLower (); var outputDir = $"./tests/SkiaSharp.Tests.Devices/bin/{configuration}/{tfm}/{rid}"; diff --git a/scripts/VERSIONS.txt b/scripts/VERSIONS.txt index 825edffa823..e7f04a98c04 100644 --- a/scripts/VERSIONS.txt +++ b/scripts/VERSIONS.txt @@ -10,14 +10,14 @@ GLibSharp release 3.24.24.95 GtkSharp release 3.24.24.95 Microsoft.AspNetCore.Components release 6.0.0 Microsoft.AspNetCore.Components.Web release 6.0.0 -Microsoft.iOS.Ref.net10.0_26.2 release 26.2.10217 -Microsoft.MacCatalyst.Ref.net10.0_26.2 release 26.2.10217 -Microsoft.macOS.Ref.net10.0_26.2 release 26.2.10217 +Microsoft.iOS.Ref.net10.0_26.0 release 26.0.11017 +Microsoft.MacCatalyst.Ref.net10.0_26.0 release 26.0.11017 +Microsoft.macOS.Ref.net10.0_26.0 release 26.0.11017 Microsoft.Maui.Controls release 10.0.31 Microsoft.Maui.Controls.Core release 10.0.31 Microsoft.Maui.Core release 10.0.31 Microsoft.Maui.Graphics release 7.0.92 -Microsoft.tvOS.Ref.net10.0_26.2 release 26.2.10217 +Microsoft.tvOS.Ref.net10.0_26.0 release 26.0.11017 Microsoft.Windows.SDK.Contracts release 10.0.19041.1 Microsoft.Windows.SDK.NET.Ref release 10.0.19041.27 Microsoft.WindowsAppSDK release 1.4.230913002 diff --git a/scripts/cake/UpdateDocs.cake b/scripts/cake/UpdateDocs.cake index 97a77d12c17..bffef8f1f2e 100644 --- a/scripts/cake/UpdateDocs.cake +++ b/scripts/cake/UpdateDocs.cake @@ -25,10 +25,10 @@ async Task CreateNuGetDiffAsync() await AddDep("OpenTK.GLWpfControl", "netcoreapp3.1"); await AddDep("Microsoft.Maui.Core", "net10.0"); await AddDep("Microsoft.Maui.Controls.Core", "net10.0"); - await AddDep("Microsoft.iOS.Ref.net10.0_26.2", "net10.0"); - await AddDep("Microsoft.MacCatalyst.Ref.net10.0_26.2", "net10.0"); - await AddDep("Microsoft.tvOS.Ref.net10.0_26.2", "net10.0"); - await AddDep("Microsoft.macOS.Ref.net10.0_26.2", "net10.0"); + await AddDep("Microsoft.iOS.Ref.net10.0_26.0", "net10.0"); + await AddDep("Microsoft.MacCatalyst.Ref.net10.0_26.0", "net10.0"); + await AddDep("Microsoft.tvOS.Ref.net10.0_26.0", "net10.0"); + await AddDep("Microsoft.macOS.Ref.net10.0_26.0", "net10.0"); await AddDep("Samsung.Tizen.Ref", "net10.0"); await AddVsixDep("Xamarin.VisualStudio.Apple.Sdk", "$ReferenceAssemblies/Microsoft/Framework/Xamarin.iOS/v1.0"); await AddVsixDep("Xamarin.VisualStudio.Apple.Sdk", "$ReferenceAssemblies/Microsoft/Framework/Xamarin.TVOS/v1.0"); diff --git a/source/SkiaSharp.Build.props b/source/SkiaSharp.Build.props index 11b742213fa..860ef99127d 100644 --- a/source/SkiaSharp.Build.props +++ b/source/SkiaSharp.Build.props @@ -80,10 +80,10 @@ 10.0.19041.0 36.0 - 26.2 - 26.2 - 26.2 - 26.2 + 26.0 + 26.0 + 26.0 + 26.0 10.0 10.0.19041.0 From 26f05f3907bbb4e29debb6638cf612f10209117d Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Wed, 29 Apr 2026 20:41:38 +0200 Subject: [PATCH 2/3] Use unversioned Apple TFMs for app projects Library projects keep the explicit 26.0 TPV (net10.0-ios26.0) for compatibility, but app projects (test devices, MAUI apps) should use unversioned TFMs (net10.0-ios) so they pick up whatever Xcode/workload is installed. This fixes the CI failure where Xcode 26.2 was installed but the 26.0 SDK pack requires Xcode 26.0. - MauiTargetFrameworksAppCurrent/Previous: drop Apple TPV suffixes - build.cake test tasks: use net10.0-ios and net10.0-maccatalyst Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.cake | 4 ++-- source/SkiaSharp.Build.props | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.cake b/build.cake index 37c7692637c..65b106613a2 100644 --- a/build.cake +++ b/build.cake @@ -374,7 +374,7 @@ Task ("tests-ios") FilePath csproj = "./tests/SkiaSharp.Tests.Devices/SkiaSharp.Tests.Devices.csproj"; var configuration = "Debug"; - var tfm = "net10.0-ios26.0"; + var tfm = "net10.0-ios"; var rid = "iossimulator-" + RuntimeInformation.ProcessArchitecture.ToString ().ToLower (); var outputDir = $"./tests/SkiaSharp.Tests.Devices/bin/{configuration}/{tfm}/{rid}"; @@ -413,7 +413,7 @@ Task ("tests-maccatalyst") FilePath csproj = "./tests/SkiaSharp.Tests.Devices/SkiaSharp.Tests.Devices.csproj"; var configuration = "Debug"; - var tfm = "net10.0-maccatalyst26.0"; + var tfm = "net10.0-maccatalyst"; var rid = "maccatalyst-" + RuntimeInformation.ProcessArchitecture.ToString ().ToLower (); var outputDir = $"./tests/SkiaSharp.Tests.Devices/bin/{configuration}/{tfm}/{rid}"; diff --git a/source/SkiaSharp.Build.props b/source/SkiaSharp.Build.props index 860ef99127d..b3117f11f62 100644 --- a/source/SkiaSharp.Build.props +++ b/source/SkiaSharp.Build.props @@ -159,14 +159,14 @@ $(MauiTargetFrameworksCurrent);$(MauiTargetFrameworksPrevious) - + - $(TFMCurrent)-ios$(TPViOSCurrent);$(TFMCurrent)-maccatalyst$(TPVMacCatalystCurrent);$(TFMCurrent)-android$(TPVAndroidCurrent) + $(TFMCurrent)-ios;$(TFMCurrent)-maccatalyst;$(TFMCurrent)-android$(TPVAndroidCurrent) $(TFMCurrent)-android$(TPVAndroidCurrent) $(MauiTargetFrameworksAppCurrent);$(TFMCurrent)-windows$(TPVWindowsCurrent) - $(TFMPrevious)-ios$(TPViOSPrevious);$(TFMPrevious)-maccatalyst$(TPVMacCatalystPrevious);$(TFMPrevious)-android$(TPVAndroidPrevious) + $(TFMPrevious)-ios;$(TFMPrevious)-maccatalyst;$(TFMPrevious)-android$(TPVAndroidPrevious) $(TFMPrevious)-android$(TPVAndroidPrevious) $(MauiTargetFrameworksAppPrevious);$(TFMPrevious)-windows$(TPVWindowsPrevious) From 4db5009f8ca534c84e8c69a28532f2dbaadf4951 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Wed, 29 Apr 2026 20:52:26 +0200 Subject: [PATCH 3/3] Remove all platform TPVs from app TFMs, not just Apple MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restores the original intent of MauiTargetFrameworksApp from commit 40b0f57852 — app TFMs should have no TPV so they use whatever workload is installed. The TPVs were accidentally added in 58a1a735cb (#3514). Windows keeps the TPV since it's a Windows SDK version, not a workload. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- source/SkiaSharp.Build.props | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/SkiaSharp.Build.props b/source/SkiaSharp.Build.props index b3117f11f62..c871c476503 100644 --- a/source/SkiaSharp.Build.props +++ b/source/SkiaSharp.Build.props @@ -159,15 +159,15 @@ $(MauiTargetFrameworksCurrent);$(MauiTargetFrameworksPrevious) - + - $(TFMCurrent)-ios;$(TFMCurrent)-maccatalyst;$(TFMCurrent)-android$(TPVAndroidCurrent) - $(TFMCurrent)-android$(TPVAndroidCurrent) + $(TFMCurrent)-ios;$(TFMCurrent)-maccatalyst;$(TFMCurrent)-android + $(TFMCurrent)-android $(MauiTargetFrameworksAppCurrent);$(TFMCurrent)-windows$(TPVWindowsCurrent) - $(TFMPrevious)-ios;$(TFMPrevious)-maccatalyst;$(TFMPrevious)-android$(TPVAndroidPrevious) - $(TFMPrevious)-android$(TPVAndroidPrevious) + $(TFMPrevious)-ios;$(TFMPrevious)-maccatalyst;$(TFMPrevious)-android + $(TFMPrevious)-android $(MauiTargetFrameworksAppPrevious);$(TFMPrevious)-windows$(TPVWindowsPrevious)