Skip to content

Releases: xamarin/xamarin-macios

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

.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

.NET 9

13 Nov 21:46
797d307
Compare
Choose a tag to compare

We're excited to announce our .NET 9 SDK 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/.

This release consists of the following versions:

Installation

You can use workload set version 9.0.100 in order to install these versions of the SDKs, please make sure to be using the latest .NET SDK 9.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 9.0.100 before proceeding.

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

Available workload ids

Example command installing all listed workloads.

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

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

Full release notes: https://github.com/xamarin/xamarin-macios/wiki/.NET-9-release-notes

.NET 8.0.1xxx - Xcode 16.0 Support (8314)

13 Nov 21:46
8354d6d
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, with support for Xcode 16 and macOS 15.0 (Sequoia).

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-8303...dotnet-8.0.1xx-xcode16.0-8314

.NET 9.0.1xx RC 2 (9600)

08 Oct 16:52
a6599c7
Compare
Choose a tag to compare
Pre-release

We're excited to announce our second (and last) release candidate for .NET 9!

This release includes support for Xcode 16 and macOS 15.0 (Sequoia).

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:

🚨 This release requires Xcode 16.0

Installation

You can use workload set version 9.0.100-rc.2.24503.1 in order to install the 18.0.9600-net9-rc2 version of the iOS SDK, please make sure to be using the latest .NET SDK 9.0.100-rc.2 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.100-rc.2 before proceeding.

dotnet workload install <workload id(s)> --version 9.0.100-rc.2.24503.1

Available workload ids

Example command installing all listed workloads.

dotnet workload install ios tvos macos maccatalyst maui android --version 9.0.100-rc.2.24503.1

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

Full release notes: .NET 9 release notes

Known issues

VSCode on macOS 15.0 (Sequoia)

VSCode currently has some incompatibilities on macOS 15.0 (Sequoia). Full details (with workarounds) can be found here: microsoft/vscode-dotnettools#1449

The native strip tool might crash (and exit with exit code 139)

This is a bug in the native strip tool (shipped by Apple with Xcode).

The simplest workaround is to disable stripping by adding the following to your csproj (the downside is that the app size will increase somewhat):

<PropertyGroup>
    <NoSymbolStrip Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">True</NoSymbolStrip>
</PropertyGroup>

For more information: #19157

App submission denied because app references the BrowserEngineKit framework

The workaround is to add the following to the project file:

<Target Name="DoNotLinkWithBrowserEngineKit" AfterTargets="_ComputeLinkNativeExecutableInputs">
	<ItemGroup>
		<_NativeExecutableFrameworks Remove="BrowserEngineKit" />
	</ItemGroup>
</Target>

For more information: #21324

Binding projects don't build

Binding projects will fail to build with an error like this:

/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net9.0_18.0/18.0.9600-net9-rc2/tools/msbuild/iOS/Xamarin.Shared.targets(1776,3): error MSB6006: "dotnet" exited with code 150.

It might be possible to work around this by installing a daily .NET 9 RTM build from here: https://github.com/dotnet/sdk/blob/main/documentation/package-table.md

For more information: #21407

Known issues in .NET 9: Known issues in .NET 9

What's Changed

  • [Accessibility] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21070
  • [AccessorySetupKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20857
  • [AppKit/UIKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21130
  • [AudioToolbox] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20856
  • [AuthenticationServices] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21143
  • [AutomaticAssessmentConfiguration] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20847
  • [AutomaticAssessmentConfiguration] Implement Xcode beta 5 changes. by @rolfbjarne in #21028
  • [AVFoundation] Add AVCaptureDeviceTypeExternal. by @rolfbjarne in #21190
  • [AVFoundation] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes (from AVFAudio only). by @rolfbjarne in #20851
  • [AVKit] Implement Xcode 15 + Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20849
  • [bgen] Add methods to convert between arrays of strong enum values and their underlying native enum type. by @rolfbjarne in #21089
  • [bgen] Add support for delegates with pointer types. by @rolfbjarne in #21159
  • [bgen] Add support for more backing field types. by @rolfbjarne in #21172
  • [bgen] Add support for specifying the backing field for strong enums using a new BackingFieldType attribute. by @rolfbjarne in #21016
  • [bgen] Add warning to the list of exceptions instead of showing it right away. by @rolfbjarne in #21027
  • [bgen] Fix compiler warnings. by @rolfbjarne in #21184
  • [bgen] Fix detecting NSObject types and generating block code with types that aren't NSObjects. by @rolfbjarne in #21181
  • [bgen] Fix generating delegates with nullable return types. #17109. by @rolfbjarne in #21094
  • [bgen] Fix using arrays of INativeObjects in delegate signatures. by @rolfbjarne in #21183
  • [bgen] Fix using types that are in multiple namespaces. by @rolfbjarne in #21182
  • [bgen] Fully qualify the RequiredMember and OptionalMember attributes. Fixes #21073. by @rolfbjarne in #21076
  • [bgen] Generate Obsolete + EditorBrowsable attributes in a few more cases. by @rolfbjarne in #21135
  • [bgen] Improve nullability detection to detect the nullability attributes the C# compiler generates. Fixes #17130. by @rolfbjarne in #21099
  • [BrowserEngineKit] Implement this new framework. by @rolfbjarne in #21168
  • [BrowserEngineKit] Improve API a bit by making a few methods async. by @rolfbjarne in #21236
  • [CallKit] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20858
  • [CarPlay] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21039
  • [CloudKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20861
  • [ContactProvider] Don't bind this framework. by @rolfbjarne in #21160
  • [Contacts] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20860
  • [CoreAnimation] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21050
  • [CoreAudioTypes] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21019
  • [CoreBluetooth] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20859
  • [CoreData] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21113
  • [CoreFoundation] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21116
  • [CoreGraphics] Bind the CGSession API. by @rolfbjarne in #21024
  • [CoreGraphics] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21033
  • [CoreImage] Implement Xcode 16 beta 6 changes. by @rolfbjarne in #21117
  • [CoreLocation] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20864
  • [CoreMedia] Implement Xcode 16 beta 3-6 changes. by @rolfbjarne in #21118
  • [CoreMedia] Implement Xcode 16 RC changes. by @rolfbjarne in #21226
  • [CoreMidi] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20882
  • [CoreMidi] Move fields to the api definition. by @rolfbjarne in #21043
  • [CoreML] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21145
  • [CoreMotion] Implement Xcode 16.0 beta 1, beta 2 and b...
Read more

.NET 8.0.1xxx - Xcode 16.0 Support (8303)

26 Sep 23:12
a8d7eab
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, with support for Xcode 16 and macOS 15.0 (Sequoia).

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 8.0.402.1 in order to install the 18.0.8303 version of the iOS SDK, please make sure to be using the latest .NET SDK 8.0.402+ before issuing the dotnet workload install command below. You can validate your installed dotnet version using dotnet --version do make sure it shows 8.0.402 or above but below 9.0 before proceeding.

⚠️ Xcode 16 support for .NET 9 will be available on Release Candidate 2

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

Available workload ids

Example command installing all listed workloads.

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

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

If you need to downgrade to the previous version of the workloads for any reason, this command will do it:

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

Full release notes: https://github.com/xamarin/xamarin-macios/wiki/.NET-8-release-notes

Known issues

VSCode on macOS 15.0 (Sequoia)

VSCode currently has some incompatibilities on macOS 15.0 (Sequoia). Full details (with workarounds) can be found here: microsoft/vscode-dotnettools#1449

The native strip tool might crash (and exit with exit code 139)

This is a bug in the native strip tool (shipped by Apple with Xcode).

The simplest workaround is to disable stripping by adding the following to your csproj (the downside is that the app size will increase somewhat):

<PropertyGroup>
    <NoSymbolStrip Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">True</NoSymbolStrip>
</PropertyGroup>

For more information: #19157

App submission denied because app references the BrowserEngineKit framework

The workaround is to add the following to the project file:

<Target Name="DoNotLinkWithBrowserEngineKit" AfterTargets="_ComputeLinkNativeExecutableInputs">
	<ItemGroup>
		<_NativeExecutableFrameworks Remove="BrowserEngineKit" />
	</ItemGroup>
</Target>

For more information: #21324

What's Changed

  • [Accessibility] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21070
  • [AccessorySetupKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20857
  • [AppKit/UIKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21130
  • [AudioToolbox] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20856
  • [AuthenticationServices] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21143
  • [AutomaticAssessmentConfiguration] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20847
  • [AutomaticAssessmentConfiguration] Implement Xcode beta 5 changes. by @rolfbjarne in #21028
  • [AVFoundation] Add AVCaptureDeviceTypeExternal. by @rolfbjarne in #21190
  • [AVFoundation] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes (from AVFAudio only). by @rolfbjarne in #20851
  • [AVKit] Implement Xcode 15 + Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20849
  • [bgen] Add methods to convert between arrays of strong enum values and their underlying native enum type. by @rolfbjarne in #21089
  • [bgen] Add support for delegates with pointer types. by @rolfbjarne in #21159
  • [bgen] Add support for more backing field types. by @rolfbjarne in #21172
  • [bgen] Add support for NSNumber as the underlying type for Objective-C fields. by @rolfbjarne in #21018
  • [bgen] Add support for specifying the backing field for strong enums using a new BackingFieldType attribute. by @rolfbjarne in #21016
  • [bgen] Add warning to the list of exceptions instead of showing it right away. by @rolfbjarne in #21027
  • [bgen] Fix detecting NSObject types and generating block code with types that aren't NSObjects. by @rolfbjarne in #21181
  • [bgen] Fix generating delegates with nullable return types. #17109. by @rolfbjarne in #21094
  • [bgen] Fix using arrays of INativeObjects in delegate signatures. by @rolfbjarne in #21183
  • [bgen] Fix using types that are in multiple namespaces. by @rolfbjarne in #21182
  • [bgen] Fully qualify the RequiredMember and OptionalMember attributes. Fixes #21073. by @rolfbjarne in #21076
  • [bgen] Generate Obsolete + EditorBrowsable attributes in a few more cases. by @rolfbjarne in #21135
  • [bgen] Improve nullability detection to detect the nullability attributes the C# compiler generates. Fixes #17130. by @rolfbjarne in #21099
  • [BrowserEngineKit] Implement this new framework. by @rolfbjarne in #21168
  • [BrowserEngineKit] Improve API a bit by making a few methods async. by @rolfbjarne in #21236
  • [CallKit] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20858
  • [CarPlay] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21039
  • [CloudKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20861
  • [ContactProvider] Don't bind this framework. by @rolfbjarne in #21160
  • [Contacts] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20860
  • [CoreAnimation] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21050
  • [CoreAudioTypes] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21019
  • [CoreBluetooth] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20859
  • [CoreData] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21113
  • [CoreFoundation] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21116
  • [CoreGraphics] Bind the CGSession API. by @rolfbjarne in #21024
  • [CoreGraphics] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21033
  • [CoreImage] Implement Xcode 16 beta 6 changes. by @rolfbjarne in #21117
  • [CoreLocation] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20864
  • [CoreMedia] Implement Xcode 16 beta 3-6 changes. by @rolfbjarne in #21118
  • [CoreMedia] Implement Xcode 16 RC changes. by @rolfbjarne in #21226
  • [CoreMidi] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20882
  • [CoreMidi] Move fields to the api definition. by @rolfbjarne in #21043
  • [CoreML] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21145
  • [CoreMotion] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20862
  • [CoreSpotlight] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20866
  • [CoreTelephony] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in https://github.com/xama...
Read more

.NET 9.0.1xx RC 1 (9270)

10 Sep 15:31
41241b1
Compare
Choose a tag to compare
Pre-release

We're excited to announce our first release candidate for .NET 9!

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:

🚨 This release requires Xcode 15.4

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

What's Changed

Full Changelog: dotnet-9.0.1xx-preview7-9231...dotnet-9.0.1xx-rc1-9270

.NET 8.0.1xxx - Xcode 15.4 Support (8030)

10 Sep 04:13
bc01f5e
Compare
Choose a tag to compare

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:

Full release notes: https://github.com/xamarin/xamarin-macios/wiki/.NET-8-release-notes

🚨 This release requires Xcode 15.4

What's Changed

Full Changelog: dotnet-8.0.1xx-xcode15.4-8020...dotnet-8.0.1xx-xcode15.4-8030