-
Notifications
You must be signed in to change notification settings - Fork 520
.NET 10 release notes
Warning
This document is still work-in-progress/incomplete, and also contains references to potential future changes which may or may not happen.
We're excited to announce our .NET 10 SDK release!
Note: these are the base SDKs that add support for the platforms in question, if you are looking for .NET MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.
Getting Started | What's New | Known Issues | Feedback | FAQ
This release consists of the following versions:
It's highly recommended to use Xcode 17.0+ (which requires macOS 15.? (Sonoma)). Earlier versions of Xcode may work, but some features won't be available.
With the release the minimum supported OS versions can be targeted for apps:
- iOS: 12.2 (to be confirmed)
- macOS: 12 (to be confirmed)
- tvOS: 12.2 (to be confirmed)
- Mac Catalyst: 15.0 (to be confirmed)
Note: while we support macOS 12, we're only testing on OS versions that Apple supports. At the time of this writing this means we're only testing on macOS 13+.
In contrast to how Xamarin.iOS and Xamarin.Mac were shipped (as installable *.pkg
files), our .NET SDKs are shipped as workloads in the .NET world. This means that the first step is to getting started is to install .NET 10.0.100 (or later).
Then install the workload corresponding with the desired platform:
$ dotnet workload install ios # other workloads: macos, tvos, and maccatalyst
Create new app from a template with:
$ dotnet new ios # 'dotnet new --list --tag Mobile' will show all available templates
Finally build and run the new app in the simulator
$ dotnet run
This release contains SDKs for the following four platforms: iOS, tvOS, Mac Catalyst and macOS, and has support and bindings for the OS versions that were shipped with Xcode 16.0:
- iOS 19.0
- macOS 16.0
- tvOS 19.0
- Mac Catalyst 19.0
In the past we've suppressed trimmer warnings, because the base class library produced trimmer warnings, which meant that it wouldn't be possible for developers to fix all the trimmer warnings.
However, in .NET 9 we believe we fixed all the trimmer warnings from our own code, so now we're ready to for developers to do the same, and thus we're enabling trimmer warnings by default.
This can be disabled, by adding this to the project file:
<PropertyGroup>
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
</PropertyGroup>
Ref: https://github.com/xamarin/xamarin-macios/issues/21293
Library projects can have various types of bundle resources (storyboards, xibs, property lists, png images, CoreML models, texture atlases, etc.), and they're bundled into the compiled library as embedded resources.
If any processing can be done (such as compiling storyboards or xibs, or optimizing property lists/png images, etc), this has historically been done before embedding, but this complicates library builds a lot, because this processing:
- Needs to run on a Mac, because compiling xibs/storyboards can only be done on a Mac.
- Needs Apple's toolchain around.
- Makes it impossible to do any decision-making based on the original resources when building the app.
So we've added opt-in support for embedding the original resource in libraries in .NET 9, and making it opt-out in .NET 10.
The default behavior can be changed in the project file like this:
<PropertyGroup>
<BundleOriginalResources>false</BundleOriginalResources>
</PropertyGroup>
Ref: https://github.com/xamarin/xamarin-macios/issues/19028
We've added support for Xcode 17 + many new APIs in iOS 19, tvOS 19, macOS 16 and Mac Catalyst 19.
The trimmer is now enabled in the following configurations:
- iOS Simulator/arm64 (all configurations)
- tvOS Simulator/arm64 (all configurations)
- Mac Catalyst/arm64 (all configurations)
Reference: https://github.com/xamarin/xamarin-macios/issues/21444
File issues here: https://github.com/xamarin/xamarin-macios/issues/new.
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status