Fix Apple platform TFMs: use 26.0 for libraries, unversioned for apps#3798
Merged
Conversation
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>
Contributor
📦 Try the packages from this PRWarning Do not run these scripts without first reviewing the code in this PR. Step 1 — Download the packages bash / macOS / Linux: curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 3798PowerShell / Windows: iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 3798"Step 2 — Add the local NuGet source dotnet nuget add source ~/.skiasharp/hives/pr-3798/packages --name skiasharp-pr-3798More options
Or download manually from Azure Pipelines — look for the Remove the source when you're done: dotnet nuget remove source skiasharp-pr-3798 |
Contributor
|
📖 Documentation Preview The documentation for this PR has been deployed and is available at: 🔗 View Staging Site This preview will be updated automatically when you push new commits to this PR. This comment is automatically updated by the documentation staging workflow. |
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>
Restores the original intent of MauiTargetFrameworksApp from commit 40b0f57 — app TFMs should have no TPV so they use whatever workload is installed. The TPVs were accidentally added in 58a1a73 (#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>
This was referenced Apr 30, 2026
1 task
This was referenced Jul 10, 2026
agneszitte
added a commit
to unoplatform/uno.templates
that referenced
this pull request
Jul 13, 2026
…de from auto-update SkiaSharp 3.119.4 ships iOS-26.2 assets that break iOS <26.2 (Xcode <26.2) builds (uno#23680, uno.chefs#1750). Pin SkiaSharp to 3.119.2 and bump Hot Design to 1.20.0-dev.477 (post uno.hotdesign#7206, floors SkiaSharp 3.119.2) so the pin resolves without NU1605. Add SkiaSharp to the Uno.Sdk.Updater exclude list (+ JSONC support) so automated SDK-update PRs stop re-bumping it. Remove on SkiaSharp 3.119.5 (mono/SkiaSharp#3798) or the v4 move at Uno.Sdk 7.0 (mono/SkiaSharp#4031). Related to unoplatform/uno#23680 Related to unoplatform/uno.chefs#1750 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the Apple Target Platform Versions introduced in #3514 (the .NET 10 upgrade). Libraries were incorrectly targeting
net10.0-ios26.2instead ofnet10.0-ios26.0, and app TFMs had explicit TPVs when they should be unversioned.Problem
26.2instead of26.0— packages shipped with TFMs likenet10.0-ios26.2, requiring consumers to have that exact workload installed.MauiTargetFrameworksAppwas originally designed (in commit 40b0f57) to use unversioned TFMs so apps pick up whatever workload is installed. The TPVs were accidentally added in Update to .NET 10 SDK with workload version set pinning #3514.Fix
.0net10.0-ios26.0net10.0-iosChanges
source/SkiaSharp.Build.props26.2→26.0;MauiTargetFrameworksApprestored to unversioned (no TPV for iOS, MacCatalyst, Android)build.cakenet10.0-iosandnet10.0-maccatalyst(unversioned)scripts/VERSIONS.txt_26.2→_26.0, versions26.2.10217→26.0.11017scripts/cake/UpdateDocs.cake_26.2→_26.0Not changed (intentional)
XCODE_VERSION: '26.2'andIOS_TEST_DEVICE_VERSION: 26.2in CI YAML — these are actual Xcode/simulator versions on CI agents, not TFMsVerification
All 15 Apple-platform NuGet packages confirmed to use
26.0TFMs. iOS and Mac Catalyst tests pass.