Skip to content

.NET 10 release notes

Rolf Bjarne Kvinge edited this page Feb 12, 2025 · 5 revisions

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

Versions

This release consists of the following versions:

Requirements

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+.

Getting started

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

What's New in this Release

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

What's Changed

Trimmer warnings enabled by default

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

Bundling original resources in libraries

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

Xcode 17

We've added support for Xcode 17 + many new APIs in iOS 19, tvOS 19, macOS 16 and Mac Catalyst 19.

The trimmer is enabled by default in more configurations

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

...

New Contributors

Changelog

Full changelog

Breaking Changes

Known Issues

See Known issues in .NET 10.

FAQ

Feedback

File issues here: https://github.com/xamarin/xamarin-macios/issues/new.

Clone this wiki locally