Skip to content

Releases: dotnet/macios

.NET 9 - Xcode 16.3 support (9288)

08 Apr 23:02
dd5e708
Compare
Choose a tag to compare

🚨 Xcode 16.3 is required with this release. Xcode 16.3 requires macOS 15.2+.

This is a servicing release to the previous .NET 9 release, with support for Xcode 16.3.

Note: these are the base SDKs that add support for the platforms in question, for MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Versions

This release consists of the following versions:

Installation

You can use workload set version 9.0.203 in order to install these versions of the SDKs, please make sure to be using the latest .NET SDK 9.0.203 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 9.0.203 or greater before proceeding.

dotnet workload install <workload id(s)> --version 9.0.203

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 9.0.203

You can use dotnet workload --info to validate the workload versions installed in your system.

What's changed

Support for 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 (it will become opt-out in .NET 10).

The default behavior can be changed in the project file like this:

<PropertyGroup>
    <BundleOriginalResources>true</BundleOriginalResources>
</PropertyGroup>

Ref: #19028

Disallowed duplicated attributes in api definitions in binding projects

In the past, we've allowed duplicated availability attributes in binding projects:

[iOS (17, 0)]
[iOS (18, 0)]
[BaseType (typeof (NSObject))]
interface MyObject { ... }

This is obviously not correct, and the resulting behavior by the binding generator has been random, so starting with this release, we've marked the availability attributes as single-use only, and this code will raise a compiler error.

References:

Improved debug build time when using the interpreter

We've disabled an optimization (to decrease the app size) when using the interpreter, because it increases build time (which is more important to keep low for debug builds than the app size), and additionally it even made the app size bigger (when using the interpreter), and as such was not useful.

The end result is faster builds and smaller apps when using the interpreter.

References:

An error occurs if trying to use a static library with Hot Restart

An error will be shown if trying to use a static library with Hot Restart, because this will typically result in an app that doesn't work as expected. This new error can be ignored if desired, by using the SkipStaticLibraryValidation property in the project file.

References:

Community Highlights

Special thanks to @filipnavara for his contribution #22337, the contributed code and Roslyn analyzer allowed our team to fix more than 52k+ potential GC issues.

What's Changed

Read more

.NET 10.0.1xx Preview 3 (10695)

10 Apr 20:16
425ab2e
Compare
Choose a tag to compare
Pre-release

We're excited to announce our third preview release for .NET 10!

Note: these are the base SDKs that add support for the platforms in question. For MAUI (which is built on top of our SDKs), visit: https://learn.microsoft.com/dotnet/maui/.

This release consists of the following versions:

Full release notes: .NET 10 release notes
Known issues: Known issues in .NET 10

Installation

You can use workload set version 10.0.100-preview.3.25208.1 in order to install these versions of the SDKs, please make sure to be using the second preview of the .NET SDK 10.0.100 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 10.0.100 or greater before proceeding.

dotnet workload install <workload id(s)> --version 10.0.100-preview.3.25208.1

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 10.0.100-preview.3.25208.1

You can use dotnet workload --info to validate the workload versions installed in your system.

What's Changed

Read more

.NET 10.0.1xx Preview 2 (10552)

18 Mar 20:35
984cbb1
Compare
Choose a tag to compare
Pre-release

We're excited to announce our second preview release for .NET 10!

Note: these are the base SDKs that add support for the platforms in question. For MAUI (which is built on top of our SDKs), visit: https://learn.microsoft.com/dotnet/maui/.

This release consists of the following versions:

Full release notes: .NET 10 release notes
Known issues: Known issues in .NET 10

Installation

You can use workload set version 10.0.100-preview.2.25167.2 in order to install these versions of the SDKs, please make sure to be using the second preview of the .NET SDK 10.0.100 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 10.0.100 or greater before proceeding.

dotnet workload install <workload id(s)> --version 10.0.100-preview.2.25167.2

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 10.0.100-preview.2.25167.2

You can use dotnet workload --info to validate the workload versions installed in your system.

What's Changed

Read more

.NET 10.0.1xx Preview 1 (10322)

25 Feb 20:23
e32808d
Compare
Choose a tag to compare
Pre-release

We're excited to announce our first preview release for .NET 10!

Note: these are the base SDKs that add support for the platforms in question. For MAUI (which is built on top of our SDKs), visit: https://learn.microsoft.com/dotnet/maui/.

This release consists of the following versions:

Full release notes: .NET 10 release notes
Known issues: Known issues in .NET 10

Installation

You can use workload set version 10.0.100-preview.1.25124.2 in order to install these versions of the SDKs, please make sure to be using the first preview of the .NET SDK 10.0.100 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 10.0.100 or greater before proceeding.

dotnet workload install <workload id(s)> --version 10.0.100-preview.1.25124.2

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 10.0.100-preview.1.25124.2

You can use dotnet workload --info to validate the workload versions installed in your system.

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: #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: #19028

API improvements / fixes / additions

Full Changelog: dotnet-9.0.1xx-xcode16.2-9173...dotnet-10.0.1xx-preview1-10320

.NET 9 - Xcode 16.2 support (9180)

20 Feb 11:26
63d5ccc
Compare
Choose a tag to compare

🚨 Xcode 16.2 is required with this release. Xcode 16.2 requires macOS 14.5+ or 15.0+.

This is a servicing release to the previous .NET 9 release.

Note: these are the base SDKs that add support for the platforms in question, for MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Versions

This release consists of the following versions:

What's Changed

  • [release/9.0.1xx] Update HotRestart.Client to 17.14.51-gd03e25086a by @rolfbjarne in #21994
  • [release/9.0.1xx] Update Hot Restart Client to 17.14.83-g77e8f56103 by @mauroa in #22034
  • [release/9.0.1xx] [CI] Use macOS Sequoia for building and testing by @dalexsoto in #22072
  • [release/9.0.1xx] Update Hot Restart Client to 17.14.133-g001ce2ac7a by @mauroa in #22129

Full Changelog: dotnet-9.0.1xx-xcode16.2-9173...dotnet-9.0.1xx-xcode16.2-9180

.NET 9 - Xcode 16.2 support (9173)

27 Jan 19:44
b3ee0f2
Compare
Choose a tag to compare

🚨 Xcode 16.2 is required with this release. Xcode 16.2 requires macOS 14.5+ or 15.0+.

This is a servicing release to the previous .NET 9 release, with support for Xcode 16.2.

Note: these are the base SDKs that add support for the platforms in question, for MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Versions

This release consists of the following versions:

Installation

You can use workload set version 9.0.102.1 in order to install these versions of the SDKs, please make sure to be using the latest .NET SDK 9.0.102 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 9.0.102 or greater before proceeding.

dotnet workload install <workload id(s)> --version 9.0.102.1

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 9.0.102.1

You can use dotnet workload --info to validate the workload versions installed in your system.

What's Changed

Full Changelog: dotnet-9.0.1xx-xcode16.2-9170...dotnet-9.0.1xx-xcode16.2-9173

.NET 9 - Xcode 16.2 support (9170)

19 Dec 16:00
4c5dd93
Compare
Choose a tag to compare

🚨 Xcode 16.2 is required with this release. Xcode 16.2 requires macOS 14.5+ or 15.0+.

This is a servicing release to the previous .NET 9 release, with support for Xcode 16.2.

Note: these are the base SDKs that add support for the platforms in question, for MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Versions

This release consists of the following versions:

Installation

You can use workload set version 9.0.101.2 in order to install these versions of the SDKs, please make sure to be using the latest .NET SDK 9.0.101 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 9.0.101 or greater before proceeding.

dotnet workload install <workload id(s)> --version 9.0.101.2

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 9.0.101.2

You can use dotnet workload --info to validate the workload versions installed in your system.

What's changed

Marshaled managed exceptions will be treated as unhandled exceptions by debuggers

Generally managed exceptions shouldn't "leak" into native code - they will be converted into Objective-C exceptions, but Objective-C exceptions have many issues and this can cause runtime problems.

Additionally, some native code will just swallow all Objective-C exceptions, essentially making any managed exceptions that triggered those Objective-C exceptions entirely silent (AppKit does this in its UI loop - see dotnet/maui#7176).

With this change, debuggers will be notified just before a managed exception is converted into an Objective-C exception, and will treat it as an unhandled managed exception, which will be a great improvement. One current downside is that the debugger isn't notified when the exception is thrown, but at a later point, which means the current frame when the debugger is stopped isn't entirely helpful. Work is in progress to improve this as well, and hopefully at some point we'll be able to stop the debugger when such managed exceptions are thrown.

References:

What's Changed

Read more

.NET 8.0.1xxx - Xcode 16.0 Support (8319)

19 Dec 16:00
0ee2837
Compare
Choose a tag to compare

🚨 Xcode 16.0 is required with this release. Xcode 16 requires macOS 14.5+ or 15.0+.

This is a servicing release to the previous .NET 8 release.

Note: these are the base SDKs that add support for the platforms in question, for MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Versions

This release consists of the following versions:

What's Changed

Full Changelog: dotnet-8.0.1xx-xcode16.0-8316...dotnet-8.0.1xx-xcode16.0-8319

.NET 9 - Xcode 16.1 support (9163)

26 Nov 13:01
b07bd9d
Compare
Choose a tag to compare

🚨 Xcode 16.1 is required with this release. Xcode 16.1 requires macOS 14.5+ or 15.0+.

This is a servicing release to the previous .NET 9 release, with support for Xcode 16.1.

Note: these are the base SDKs that add support for the platforms in question, for MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Versions

This release consists of the following versions:

Installation

You can use workload set version 9.0.101.1 in order to install these versions of the SDKs, please make sure to be using the latest .NET SDK 9.0.101 before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 9.0.101 or greater before proceeding.

dotnet workload install <workload id(s)> --version 9.0.101.1

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 9.0.101.1

You can use dotnet workload --info to validate the workload versions installed in your system.

What's Changed

Full Changelog: dotnet-9.0.1xx-xcode16.0-9617...dotnet-9.0.1xx-xcode16.1-9163

.NET 8.0.1xxx - Xcode 16.0 Support (8316)

26 Nov 13:01
16d8ceb
Compare
Choose a tag to compare

🚨 Xcode 16.0 is required with this release. Xcode 16 requires macOS 14.5+ or 15.0+.

This is a servicing release to the previous .NET 8 release.

Note: these are the base SDKs that add support for the platforms in question, for MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Versions

This release consists of the following versions:

What's Changed

Full Changelog: dotnet-8.0.1xx-xcode16.0-8314...dotnet-8.0.1xx-xcode16.0-8316