close
Skip to content

Releases: dotnet/macios

.NET 11.0.1xx Preview 4 (11514)

12 May 21:17
cbe4263

Choose a tag to compare

Pre-release

We're excited to announce our fourth preview release for .NET 11!

Note

  • Xcode 26.4 is required with this release. Xcode 26.4 requires macOS 26.2+.

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 11 release notes
Known issues: Known issues in .NET 11

Installation

You can use workload set version 11.0.100-preview.4.26261.2 in order to install these versions of the SDKs,
please make sure to be using the fourth preview of the .NET SDK 11.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 11.0.100 or greater before proceeding.

dotnet workload install <workload id(s)> --version 11.0.100-preview.4.26261.2

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 11.0.100-preview.4.26261.2

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

New features

(Experimental) CoreCLR

We've added support for using CoreCLR as the runtime for iOS, tvOS and Mac Catalyst, and this is now the default runtime.

Most apps will see:

  • Smaller app size.
  • Faster launch and runtime execution.
  • Faster builds, both for debug and release.

We're looking for testers to ensure everything works as expected - using CoreCLR should be a drop-in replacement (it's been the runtime on macOS since .NET 6)

To enable, add this to your project file:

<!-- Use CoreCLR on iOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

<!-- Use CoreCLR on tvOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tvos'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

<!-- Use CoreCLR on Mac Catalyst -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

Please try this in your applications and report any issues, either if something doesn't work, or if app size or runtime performance is worse.

Known issues (these will be fixed in a future preview):

  • Debugging isn't supported yet
  • Some runtime diagnostics features aren't fully functional yet

This is an experimental feature and not intended for production use yet.

If you find that CoreCLR doesn't work, you can keep using Mono by adding this to your project file:

<PropertyGroup>
    <UseMonoRuntime>true</UseMonoRuntime>
</PropertyGroup>

What's Changed

  • [Accessibility] Update bindings to Xcode 26.4 Beta 3 by @dalexsoto in #24877
  • [apidiff] Update reference/stable versions to latest .NET 10 / Xcode 26.3 by @dalexsoto in #25157
  • [AppKit] Fix the name of the userInfo 'Item' key in the WillAddItem/DidRemoveItem notifications. by @rolfbjarne in #25158
  • [AuthenticationServices] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24993
  • [AutomaticAssessmentConfiguration] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24998
  • [AVFoundation] Updated bindings to Xcode 26.4 RC by @dalexsoto in #24933
  • [AVKit] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24945
  • [BackgroundAssets] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24940
  • [bgen] Enable nullability everywhere. by @rolfbjarne in #25023
  • [BrowserKit] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24939
  • [CarPlay] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24961
  • [ClassKit] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24946
  • [copilot] Tell copilot to not report potential compiler errors. by @rolfbjarne in #25038
  • [CoreData] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24951
  • [CoreFoundation] Fix typo in native symbol name by @rolfbjarne in #25052
  • [CoreMidi] kMIDIDriverPropertyUsesSerial is only available on macOS. by @rolfbjarne in #25095
  • [CoreNFC] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24958
  • [CoreTelephony] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24959
  • [CoreText] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24960
  • [CoreWlan] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24995
  • [CryptoTokenKit] Update bindings all the way to Xcode 26.4 by @dalexsoto in #25025
  • [docs] Fix typo 'embeddded' -> 'embedded'. by @rolfbjarne in #25205
  • [docs] Minor updates from copilot review in the dotnet/docs-mobile repository. by @rolfbjarne in #25191
  • [dotnet-linker] Create an xml descriptor instead of manual marking when applying the [Preserve] attribute. by @rolfbjarne in #25109
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking in MarkIProtocolHandler. by @rolfbjarne in #24931
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking of NSObjects. by @rolfbjarne in #25146
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when marking static registrar methods. by @rolfbjarne in #25018
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when optimizing generated code. by @rolfbjarne in #24979
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when preserving block code. by @rolfbjarne in #24936
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when preserving smart enum methods. by @rolfbjarne in #24934
  • [dotnet] Add net10.0 msbuild tool DLLs to SignList.xml by @dalexsoto in #25006
  • [dotnet] Don't remove the 'LaunchProfiles' capability for macOS projects. by @rolfbjarne in #25113
  • [dotnet] Make 'dotnet watch' work. by @rolfbjarne in #24922
  • [dotnet] Quote the path to our TrimAttributes.LinkDescription.xml file. Fixes #24964. by @rolfbjarne in #24994
  • [dotnet] Use the target framework version to compute the path to the task assembly. by @rolfbjarne in #25060
  • [Foundation] Add KeepHeadersAfterDecompression app context switch to NSUrlSessionHandler by @rolfbjarne in #24957
  • [Foundation] Clean up pre-net10.0 code from NSUrlSessionHandler. by @rolfbjarne in #25177
  • [Foundation] Enable HTTP digest auth in NSUrlSessionHandler by @rolfbjarne in #25180
  • [Foundation] Improve nullability in NSArray.FromArrayOfArray. by @rolfbjarne in #24919
  • [Foundation] Improve nullability in NSArray.ToArray. by @rolfbjarne in #24974
  • [Foundation] Improve potential reentrancy problems in NSUrlSessionHandler. by @rolfbjarne in #25183
  • [Foundation] Remove Content-Encoding and Content-Length headers for auto-decompressed responses in NSUrlSessionHandler. Fixes #23958. by @rolfbjarne in #24924
  • [Foundation] Throws a specific exception in NSUrlSessionHandler when a certificate is needed but not provided. Fixes #24532. by @rolfbjarne i...
Read more

.NET 10 - Xcode 26.4 support (26.4.10259)

05 May 02:16
644ec02

Choose a tag to compare

Note

  • Xcode 26.4 is required with this release. Xcode 26.4 requires macOS 26.2+ (Tahoe).

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

This release consists of the following versions:

Installation

You can use workload set version 10.0.203.1 in order to install these versions of the SDKs.

Please make sure to be using the latest .NET SDK 10.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 10.0.203 before proceeding.

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

Available workload ids

Example command installing all listed workloads.

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

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

Full release notes: https://github.com/dotnet/macios/wiki/.NET-10-release-notes

What's Changed

  • [Accessibility] Update bindings to Xcode 26.4 Beta 3 by @dalexsoto in #24877
  • [AudioUnit] Simplify code and fix leak in AudioComponent.ComponentList. by @rolfbjarne in #24511
  • [AuthenticationServices] ASAuthorizationPlatformPublicKeyCredentialAssertionRequest is no longer gone. by @rolfbjarne in #24477
  • [AuthenticationServices] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24993
  • [AutomaticAssessmentConfiguration] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24998
  • [AVFoundation] Updated bindings to Xcode 26.4 RC by @dalexsoto in #24933
  • [AVKit] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24945
  • [BackgroundAssets] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24940
  • [bgen] Preserve all public methods supporting protocol methos as events. Fixes #24236. by @rolfbjarne in #24566
  • [BrowserKit] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24939
  • [CarPlay] Remove extraneous [Deprecated] on a CPGridButton ctor. Fixes #24491. by @rolfbjarne in #24497
  • [CarPlay] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24961
  • [ClassKit] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24946
  • [CoreData] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24951
  • [CoreFoundation/Foundation] Optimize getting a handle for NSNull and a null CFAllocator. by @rolfbjarne in #24775
  • [CoreNFC] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24958
  • [CoreTelephony] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24959
  • [CoreText] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24960
  • [CoreVideo] Expose CVPixelBufferAttributes.AllocateWithIOSurface|MetalCompatibility on macOS. Fixes #24584. by @rolfbjarne in #24590
  • [CoreWlan] Update bindings to Xcode 26.4 Release Candidate by @dalexsoto in #24995
  • [docs] Add a step to API docs publishing about flipping monikers from 'prelease' to 'live'. by @rolfbjarne in #24465
  • [docs] Move the docs about ReferenceNativeSymbol in the correct file. by @rolfbjarne in #24462
  • [docs] The MAUI wiki no longer needs updates when we release new versions. by @rolfbjarne in #24461
  • [docs] Update sample snippet with a suggestion from Copilot. by @rolfbjarne in #24466
  • [dotnet-linker] Mark field references in trimmed INativeObject/NSObject constructors. Fixes #24663. by @rolfbjarne in #24687
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking in MarkIProtocolHandler. by @rolfbjarne in #24931
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when preserving block code. by @rolfbjarne in #24936
  • [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when preserving smart enum methods. by @rolfbjarne in #24934
  • [dotnet] Add net10.0 msbuild tool DLLs to SignList.xml by @dalexsoto in #25006
  • [dotnet] Add support for @(RuntimeEnvironmentVariable). by @rolfbjarne in #24824
  • [dotnet] Disable any default 'PublishRuntimeIdentifier' values. by @rolfbjarne in #24562
  • [dotnet] Fix computing the app bundle location for 'dotnet run' for desktop apps. by @rolfbjarne in #24468
  • [dotnet] Fix handling binding frameworks embedded in binding assemblies remotely. by @rolfbjarne in #24518
  • [dotnet] Fix support for startup hooks. Fixes #24492. by @rolfbjarne in #24664
  • [dotnet] Make 'dotnet watch' work. by @rolfbjarne in #24922
  • [dotnet] Quote the path to our TrimAttributes.LinkDescription.xml file. Fixes #24964. by @rolfbjarne in #24994
  • [Foundation] Add [NullAllowed] to NSBundle members. Fixes #24803. by @rolfbjarne in #24805
  • [Foundation] Add helper methods to NSArray to create managed arrays of strongly typed dictionaries. by @rolfbjarne in #24759
  • [Foundation] Add KeepHeadersAfterDecompression app context switch to NSUrlSessionHandler by @rolfbjarne in #24957
  • [Foundation] Fix nullability in NSConnection. by @rolfbjarne in #24438
  • [Foundation] Fix nullability in NSDictionary. by @rolfbjarne in #24478
  • [Foundation] Fix nullability in NSDictionary<TKey,TValue>. by @rolfbjarne in #24457
  • [Foundation] Fix nullability in NSKeyedArchiver. by @rolfbjarne in #24436
  • [Foundation] Fix nullability in NSLayoutConstraint. by @rolfbjarne in #24434
  • [Foundation] Fix nullability in NSLocale. by @rolfbjarne in #24433
  • [Foundation] Fix nullability in NSMutableAttributedString. by @rolfbjarne in #24431
  • [Foundation] Fix nullability in NSMutableDictionary. by @rolfbjarne in #24428
  • [Foundation] Fix nullability in NSMutableDictionary<TKey, TValue>. by @rolfbjarne in #24458
  • [Foundation] Fix nullability in NSMutableSet. by @rolfbjarne in #24419
  • [Foundation] Fix nullability in NSMutableSet. by @rolfbjarne in #24422
  • [Foundation] Fix nullability in NSObject. by @rolfbjarne in #24481
  • [Foundation] Improve NSArray.ArrayFromHandle significantly. by @rolfbjarne in #24808
  • [Foundation] Improve NSArray.From[NS]Objects slightly. by @rolfbjarne in #24569
  • [Foundation] Improve NSArray.FromIntPtrs slightly. by @rolfbjarne in #24501
  • [Foundation] Improve NSArray.FromNativeObjects slightly. by @rolfbjarne in #24509
  • [Foundation] Improve NSArray.FromStrings a bit. by @rolfbjarne in #24583
  • [Foundation] Improve NSArray.StringArrayFromHandle a bit. by @rolfbjarne in #24640
  • [Foundation] Improve nullability in NSArray.ArrayFromHandleFunc. by @rolfbjarne in #24900
  • [Foundation] Improve nullability in NSArray.EnumsFromHandle. by @rolfbjarne in #24861
  • [Foundation] Improve nullability in NSArray.FromArray. by @rolfbjarne in #24873
  • [Foundation] Improve nullability in NSArray.FromArrayNative. by @rolfbjarne in #24884
  • [Foundation] Improve nul...
Read more

.NET 9 - Xcode 26.4 support (26.4.9015)

05 May 02:11
ac80159

Choose a tag to compare

Note

  • Xcode 26.4 is required with this release. Xcode 26.4 requires macOS 26.2+ (Tahoe).
  • This release adds Xcode 26.4 build support, no new APIs have been added.

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:

Installation

You can use workload set version 9.0.313.1 in order to install these versions of the SDKs.

Please make sure to be using the latest .NET SDK 9.0.313 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.313 or greater before proceeding.

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

Available workload ids

Example command installing all listed workloads.

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

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

What's Changed

  • [release/9.0.1xx] Update build to use Xcode 26.4 no new API bindings by @dalexsoto in #25010

Full Changelog: dotnet-9.0.1xx-xcode26.2.9008...dotnet-9.0.1xx-xcode26.4-9015

Sharpie 26.4.0.212

17 Apr 14:58

Choose a tag to compare

Sharpie 26.4.0.212 Pre-release
Pre-release

We're excited to announce the second preview release of a major upgrade to Objective-Sharpie!

Main changes

  • Open source
  • Shipped as a .NET tool
  • Updated to use a much newer version of Clang (21), which also means it's possible to use the latest versions of Xcode.
  • Updated to use ClangSharp instead of a custom clang integration.

Our documentation has been updated as well: https://learn.microsoft.com/dotnet/maui/ios/objective-sharpie/

Installation

Install like this:

$ dotnet tool install -g Sharpie.Bind.Tool
You can invoke the tool using the following command: sharpie
Tool 'sharpie.bind.tool' (version '26.4.0.212') was successfully installed.

or update like this:

$ dotnet tool update -g Sharpie.Bind.Tool
Tool 'sharpie.bind.tool' was successfully updated from version '26.3.0.11' to version '26.4.0.212'.

Important

If the old sharpie is still installed, it might be found when executing sharpie:

$ sharpie --version
3.5.126-e5d8c166 # this is the old sharpie
sharpie --version
dotnet-sharpie 26.4.0.212 # this is the new sharpie

Running this should make the new sharpie take precedence (this won't actually uninstall the old sharpie, just remove the convenience script in "/usr/local/bin/sharpie"):

$ sudo rm -f /usr/local/bin/sharpie

Usage

Use it to bind a framework like this:

$ sharpie bind --framework path/to/my.framework --output output-directory

For more information see https://learn.microsoft.com/dotnet/maui/ios/objective-sharpie/.


Please test and file any issues here!

What's Changed

  • [sharpie/xtro] VersionTuple.IsEmpty is incorrect, so use an extension property with the correct implementation. by @rolfbjarne in #25034
  • [sharpie] Add --custom-delegates option to generate named delegates instead of Func<>/Action<> by @rolfbjarne in #24975
  • [sharpie] Add --deepsplit option to split bindings into one file per source header by @dalexsoto in #24883
  • [sharpie] Add support for visionos_app_extension availability platform. Fixes #18098. by @rolfbjarne in #24828
  • [sharpie] Bump ClangSharp to v21.1.8.3 by @dalexsoto in #25004
  • [sharpie] Fix --scope path matching by @dalexsoto in #24882
  • [sharpie] Fix platform type mapping for types inside generic type arguments. Fixes #24892. by @rolfbjarne in #24911
  • [sharpie] Prefer standard protocol interfaces over [Model] classes in type mapping by @rolfbjarne in #24913

Full Changelog: sharpie-26.3.0.11...sharpie-26.4.0.212

.NET 11.0.1xx Preview 3 (11588)

14 Apr 23:57
1aedd2b

Choose a tag to compare

Pre-release

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

Note

  • Xcode 26.3 is required with this release. Xcode 26.3 requires macOS 15.6+.

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 11 release notes
Known issues: Known issues in .NET 11

Installation

You can use workload set version 11.0.100-preview.3.26214.1 in order to install these versions of the SDKs, please make sure to be using the third preview of the .NET SDK 11.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 11.0.100 or greater before proceeding.

dotnet workload install <workload id(s)> --version 11.0.100-preview.3.26214.1

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 11.0.100-preview.3.26214.1

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

New features

(Experimental) CoreCLR

We've added support for using CoreCLR as the runtime for iOS, tvOS and Mac Catalyst.

Most apps will see:

  • Smaller app size.
  • Faster launch and runtime execution.
  • Faster builds, both for debug and release.

We're looking for early testers to ensure everything works as expected - using CoreCLR should be a drop-in replacement (it's been the runtime on macOS since .NET 6)

To enable, add this to your project file:

<!-- Use CoreCLR on iOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

<!-- Use CoreCLR on tvOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tvos'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

<!-- Use CoreCLR on Mac Catalyst -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

Please try this in your applications and report any issues, either if something doesn't work, or if app size or runtime performance is worse.

Known issues (these will be fixed in a future preview):

  • Debugging isn't supported yet
  • Some runtime diagnostics features aren't fully functional yet

This is an experimental feature and not intended for production use yet.

What's Changed

Read more

.NET 10 - Xcode 26.3 support (26.2.10233)

15 Apr 00:06
6542b70

Choose a tag to compare

Note

  • Xcode 26.3 is required with this release. Xcode 26.3 requires macOS 15.6+.

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

This release consists of the following versions:

Installation

You can use workload set version 10.0.202 in order to install these versions of the SDKs.

Please make sure to be using the latest .NET SDK 10.0.202 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.202 before proceeding.

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

Available workload ids

Example command installing all listed workloads.

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

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

Full release notes: https://github.com/dotnet/macios/wiki/.NET-10-release-notes

What's Changed

  • [release/10.0.1xx] Include .mobile.props for DTB (fix for VS Code) by @rolfbjarne in #24804
  • [release/10.0.1xx] [system-dependencies] Update the check for the Metal toolchain to update if an update is available. by @rolfbjarne in #24857
  • [release/10.0.1xx] Bump mlaunch to get fix for #24935. by @rolfbjarne in #24955
  • [release/10.0.1xx] Bump to Xcode 26.3 Stable by @dalexsoto in #25000

Full Changelog: dotnet-10.0.1xx-xcode26.2-10217...dotnet-10.0.1xx-xcode26.2-10233

.NET 9 - Xcode 26.3 support (26.2.9008)

15 Apr 00:00
e8fdb2b

Choose a tag to compare

Note

  • Xcode 26.3 is required with this release. Xcode 26.3 requires macOS 15.6+.
  • This release add Xcode 26.3 build support, no new APIs has been added.

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:

Installation

You can use workload set version 9.0.313 in order to install these versions of the SDKs.

Please make sure to be using the latest .NET SDK 9.0.313 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.313 or greater before proceeding.

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

Available workload ids

Example command installing all listed workloads.

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

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

What's Changed

  • [release/9.0.1xx] Bump to Xcode 26.3. by @rolfbjarne in #24796
  • [release/9.0.1xx] [system-dependencies] Update the check for the Metal toolchain to update if an update is available. by @rolfbjarne in #24858
  • [release/9.0.1xx] [tests] Fix arm64 - Mac Tahoe (26) condition by @rolfbjarne in #24865
  • [release/9.0.1xx] Bump mlaunch to get fix for #24935. by @rolfbjarne in #24953

Full Changelog: dotnet-9.0.1xx-xcode26.2.9000...dotnet-9.0.1xx-xcode26.2.9008

Sharpie 26.3.0.11

04 Mar 12:00

Choose a tag to compare

Sharpie 26.3.0.11 Pre-release
Pre-release

We're excited to announce the first preview release of a major upgrade to Objective-Sharpie!

Main changes

  • Open source
  • Shipped as a .NET tool
  • Updated to use a much newer version of Clang (21), which also means it's possible to use the latest versions of Xcode.
  • Updated to use ClangSharp instead of a custom clang integration.

Our documentation has been updated as well: https://learn.microsoft.com/dotnet/maui/ios/objective-sharpie/

Installation

Install like this:

$ dotnet tool install -g Sharpie.Bind.Tool
You can invoke the tool using the following command: sharpie
Tool 'sharpie.bind.tool' (version '26.3.0.11') was successfully installed.

Important

If the old sharpie is still installed, it might be found when executing sharpie:

$ sharpie --version
3.5.126-e5d8c166 # this is the old sharpie
sharpie --version
dotnet-sharpie 26.3.0.11 # this is the new sharpie

Running this should make the new sharpie take precedence (this won't actually uninstall the old sharpie, just remove the convenience script in "/usr/local/bin/sharpie"):

$ sudo rm -f /usr/local/bin/sharpie

Usage

Use it to bind a framework like this:

$ sharpie bind --framework path/to/my.framework --output output-directory

For more information see https://learn.microsoft.com/dotnet/maui/ios/objective-sharpie/.


Please test and file any issues here!

.NET 11.0.1xx Preview 2 (11428)

10 Mar 22:20
5515a3b

Choose a tag to compare

Pre-release

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

Note

  • Xcode 26.2 is required with this release. Xcode 26.2 requires macOS 15.6+.
    If you are using Xcode 26.3 you need to set this msbuild property ValidateXcodeVersion=false in order to skip the Xcode check. Xcode 26.2 and 26.3 have identical SDKs.

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 11 release notes
Known issues: Known issues in .NET 11

Installation

You can use workload set version 11.0.100-preview.2.26160.1 in order to install these versions of the SDKs, please make sure to be using the first preview of the .NET SDK 11.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 11.0.100 or greater before proceeding.

dotnet workload install <workload id(s)> --version 11.0.100-preview.2.26160.1

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 11.0.100-preview.2.26160.1

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

New features

(Experimental) CoreCLR

We've added support for using CoreCLR as the runtime for iOS, tvOS and Mac Catalyst.

Most apps will see:

  • Smaller app size.
  • Faster launch and runtime execution.
  • Faster builds, both for debug and release.

We're looking for early testers to ensure everything works as expected - using CoreCLR should be a drop-in replacement (it's been the runtime on macOS since .NET 6)

To enable, add this to your project file:

<!-- Use CoreCLR on iOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

<!-- Use CoreCLR on tvOS -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tvos'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

<!-- Use CoreCLR on Mac Catalyst -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">
    <UseMonoRuntime>false</UseMonoRuntime>
</PropertyGroup>

Please try this in your applications and report any issues, either if something doesn't work, or if app size or runtime performance is worse.

Known issues (these will be fixed in a future preview):

  • Debugging isn't supported yet
  • Some runtime diagnostics features aren't fully functional yet

This is an experimental feature and not intended for production use yet.

What's Changed

  • [bgen] Preserve all public methods supporting protocol methos as events. Fixes #24236. by @rolfbjarne in #24566
  • [CoreVideo] Expose CVPixelBufferAttributes.AllocateWithIOSurface|MetalCompatibility on macOS. Fixes #24584. by @rolfbjarne in #24590
  • [dotnet-linker] Mark field references in trimmed INativeObject/NSObject constructors. Fixes #24663. by @rolfbjarne in #24687
  • [dotnet] Add support for CoreCLR when building from Windows. Fixes #24504. by @rolfbjarne in #24521
  • [dotnet] Add support for transforming CoreCLR's dylibs to frameworks when building for device. by @rolfbjarne in #24506
  • [dotnet] Disable any default 'PublishRuntimeIdentifier' values. by @rolfbjarne in #24562
  • [dotnet] Fix building with NativeAOT remotely from Windows. Fixes #21808. by @rolfbjarne in #24623
  • [dotnet] Fix handling binding frameworks embedded in binding assemblies remotely. by @rolfbjarne in #24518
  • [dotnet] Fix support for startup hooks. Fixes #24492. by @rolfbjarne in #24664
  • [Foundation] Improve NSArray.From[NS]Objects slightly. by @rolfbjarne in #24569
  • [Foundation] Improve NSArray.FromStrings a bit. by @rolfbjarne in #24583
  • [Foundation] Improve NSArray.StringArrayFromHandle a bit. by @rolfbjarne in #24640
  • [Foundation] Unify the FromObjectsAndKeys implementations for creating dictionaries. by @rolfbjarne in #24556
  • [MediaAccessibility] Tweak nullability in MACaptionAppearance. by @rolfbjarne in #24581
  • [msbuild/dotnet] Add support for listing the devices and simulators available to run on. by @rolfbjarne in #24542
  • [msbuild] Add a XamarinTask.SdkDevPath property and deduplicate a lot of code in child classes. by @rolfbjarne in #24523
  • [msbuild] Add support for ACToolPath, IBToolPath and TextureAtlasPath. by @rolfbjarne in #24549
  • [msbuild] Add the latest .NET version as a target framework for MSBuild projects by @rolfbjarne in #24522
  • [msbuild] Automatically set DEVELOPER_DIR for all child processes. by @rolfbjarne in #24541
  • [msbuild] Fix finding applicable simulator devices in GetMlaunchArguments task. by @rolfbjarne in #24610
  • [msbuild] Fix listing devices with no udid. Fixes #24605. by @rolfbjarne in #24607
  • [msbuild] Fix missing character in log message. by @rolfbjarne in #24635
  • [msbuild] It seems that the 'get-task-allow' entitlement is allowed on all platforms. by @rolfbjarne in #24636
  • [msbuild] Show a warning if SdkDevPath hasn't been set and we're executing a process. by @rolfbjarne in #24555
  • [mtouch/dotnet-linker] Enable nullability in most files and fix any issues. by @rolfbjarne in #24565
  • [net11.0] Enable launch time logging with environment variable by @kotlarmilos in #24656
  • [net11.0] Exclude debug libraries in Release builds by @kotlarmilos in #24680
  • [net11.0] Fix building .NET 10 projects. Fixes #24417. by @rolfbjarne in #24633
  • [net11.0] Only create frameworks for dylibs on iOS and tvOS. by @rolfbjarne in #24632
  • [net11.0] Update default linking for CoreCLR by @kotlarmilos in #24654
  • [src] Remove redundant null checks before Class.GetHandle(Type) by @rolfbjarne in #24695
  • [tools] Enable nullability in the registrars. by @rolfbjarne in #24589
  • [tools] Remove the IntPtr.Size inline optimization. by @rolfbjarne in #24597
  • [UIKit] Enable nullability and clean up UIAccessibility. by @rolfbjarne in #24568
  • [UIKit] Enable nullability and clean up UIAccessibilityCustomAction. by @rolfbjarne in #24580
  • [UIKit] Enable nullability and clean up UIActionSheet. by @rolfbjarne in #24593
  • [UIKit] Enable nullability and clean up UIAppearance. by @rolfbjarne in #24596
  • [UIKit] Enable nullability and clean up UICollectionView. by @rolfbjarne in #24599
  • [UIKit] Enable nullability and clean up UICollectionViewLayoutAttributes. by @rolfbjarne in #24606
  • [UIKit] Enable nullability and clean up UIControl. by @rolfbjarne in #24608
  • [UIKit] Enable nullability and clean up UIDragDropSessionExtensions. by @rolfbjarne in #24609
  • [UIKit] Enable nullability and clean up UIFont. by @rolfbjarne in #24637
  • [UIKit] Enable nullability and clean up UIFontDescriptor. by @rolfbjarne in #24642
  • [UIKit] Enable nullability and clean up UIGraphics. by @rolfbjarne in #24655
  • [UIKit] Enable nullability and clean up UIGuidedAccessRestriction. by @rolfbjarne in...
Read more

.NET 10 - Xcode 26.2 support (26.2.10217)

11 Mar 01:57
f97742b

Choose a tag to compare

Note

  • Xcode 26.2 is required with this release. Xcode 26.2 requires macOS 15.6+.
    If you are using Xcode 26.3 you need to set this msbuild property ValidateXcodeVersion=false in order to skip the Xcode check. Xcode 26.2 and 26.3 have identical SDKs.

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

This release consists of the following versions:

Installation

You can use workload set version 10.0.200 in order to install these versions of the SDKs.

Please make sure to be using the latest .NET SDK 10.0.200 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.200 before proceeding.

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

Available workload ids

Example command installing all listed workloads.

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

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

Full release notes: https://github.com/dotnet/macios/wiki/.NET-10-release-notes

What's Changed

  • [release/10.0.1xx] [bgen] Preserve all public methods supporting protocol methods as events. Fixes #24236. by @rolfbjarne in #24576
  • [release/10.0.1xx] [dotnet-linker] Mark field references in trimmed INativeObject/NSObject constructors. Fixes #24663. by @rolfbjarne in #24689
  • [release/10.0.1xx] Bring back arcade script files by @adamzip in #24742
  • [release/10.0.1xx] [Foundation] Treat any exception during X509Chain.Build as a remote certificate chain error. Fixes #24739. by @rolfbjarne in #24757
  • [release/10.0.1xx] Hardcode our manifest version band to 10.0.100 by @dalexsoto in #24779
  • [release/10.0.1xx] Track .NET 9/Xcode 26.2 instead of .NET 9/Xcode 26.0 by @rolfbjarne in #24786

Full Changelog: dotnet-10.0.1xx-xcode26.2-10197...dotnet-10.0.1xx-xcode26.2-10217