🚨 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
- ios
- tvos
- macos
- maccatalyst
- android (see https://github.com/dotnet/android)
- maui (see https://github.com/dotnet/maui)
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
- [Accessibility] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21686
- [AccessorySetupKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21692
- [AppKit/UIKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21735
- [AppKit] Fix nullability for numerous NSView members. Fixes #21598. by @rolfbjarne in #21619
- [AudioToolbox] Implement Xcode 16.2 beta 1-3 changes in AudioToolbox. by @rolfbjarne in #21691
- [AuthenticationServices] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21707
- [AVFoundation] Implement Xcode 16.2 beta 1-3 changes in AVFAudio. by @rolfbjarne in #21687
- [AVFoundation] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21709
- [AVFoundation] Improve AVPlayerItemVideoOutput.CopyPixelBuffer. Fixes #21702. by @rolfbjarne in #21710
- [bgen] Add support for [return: Release] for types subclassing NativeObject or implementing INativeObject. by @rolfbjarne in #21752
- [BrowserEngineKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21719
- [CoreLocation] Fix misspelled field. Fixes #21641. by @rolfbjarne in #21652
- [CoreVideo] Add CVMetalBufferCache.TryCreate overloads and use these to improve tests. by @rolfbjarne in #21757
- [docs] Add docs about our build items and properties. by @rolfbjarne in #21578
- [Foundation] Fix memory leak in NSArray.ArrayFromHandle by @rolfbjarne in #21749
- [Foundation] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21711
- [Foundation] Improve the NSAttributedString constructors. Fixes #14489. by @rolfbjarne in #21727
- [HealthKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21712
- [HomeKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21715
- [JavaScriptCore] Implement missing Xcode 16.0 changes. by @rolfbjarne in #21716
- [managed static registrar] Don't try to create instances of abstract types. by @rolfbjarne in #21665
- [MapKit] Manually make MKUserLocation implement the MKAnnotation protocol. Fixes #21759. by @rolfbjarne in #21760
- [Metal] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21718
- [MetalPerformanceShadersGraph] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21731
- [msbuild] Bump to Microsoft.Build 16.10.0. by @rolfbjarne in #21813
- [msbuild] Capture any logging from Xamarin.MacDev in DetectSigningIdentity. by @rolfbjarne in #21770
- [msbuild] Enable and fix nullability in the TextureAtlas task. by @rolfbjarne in #21689
- [msbuild] Fix duplicate error code by renumber one of them. by @rolfbjarne in #21755
- [msbuild] Fix some issues with various types of resources when building from Windows. by @rolfbjarne in #21586
- [msbuild] Log a bit more info about process execution. by @rolfbjarne in #21595
- [msbuild] Move some Windows-related files back to an iOS-specific directory. by @rolfbjarne in #21781
- [msbuild] Port the ALToolUpload and ALToolValidate tasks to subclass XamarinTask. by @rolfbjarne in #21617
- [msbuild] Port the BTouch task to subclass XamarinTask. by @rolfbjarne in #21616
- [msbuild] Port the CreateAssetPack task to subclass XamarinTask. by @rolfbjarne in #21713
- [msbuild] Port the CreateInstallerPackage task to subclass XamarinTask. by @rolfbjarne in #21614
- [msbuild] Port the OptimizeImage task to subclass XamarinTask. by @rolfbjarne in #21618
- [msbuild] Port the OptimizePropertyLists task to subclass XamarinTask. by @rolfbjarne in #21615
- [msbuild] Port the SpotlightIndexer task to subclass XamarinTask. by @rolfbjarne in #21613
- [msbuild] Port the Zip task to subclass XamarinTask. by @rolfbjarne in #21612
- [msbuild] Remove a lot of legacy logic + a few improvements. by @rolfbjarne in #21742
- [msbuild] Remove the ArTool task. by @rolfbjarne in #21609
- [msbuild] Remove the MTouch and Mmp tasks. by @rolfbjarne in #21608
- [msbuild] Remove the XamarinToolTask class, it's no longer used. by @rolfbjarne in #21787
- [msbuild] Use earlier version of MSBuild assemblies. Fixes #21671. by @rolfbjarne in #21679
- [PassKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21720
- [PassKit] Improve and simplify the manually bound constructors for PKShareablePassMetadata. by @rolfbjarne in #21677
- [PdfKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21739
- [RGen] Add code needed to detect changes in interface. by @mandel-macaque in #21704
- [Rgen] add transformer by @haritha-mohan in #21669
- [RGen] Follow the BCL docs recomendation and inherit from the abstract class. by @mandel-macaque in #21722
- [Rgen] Implement SmartEnums analyzer. by @mandel-macaque in #21656
- [Rgen] Implement the generation of the smart enums. by @mandel-macaque in #21562
- [Rgen] Move unsupported and obsoleted versions to a sorted dict. by @mandel-macaque in #21723
- [RGen] Simplify the use of IEnumerables on all platforms in xUnit. by @mandel-macaque in #21694
- [Rgen] Update data model to detect changes in methods. by @mandel-macaque in #21701
- [Rgen] Update data model to take into account changes on events. by @mandel-macaque in #21700
- [RGen] Update the changes data structure to take in to account constructors. by @mandel-macaque in #21699
- [RGen] Update the changes data structure to take in to account properties. by @mandel-macaque in #21680
- [runtime] Call mono_debugger_agent_unhandled_exception when an exception is marshalled. by @rolfbjarne in #21778
- [SafariServices] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21721
- [ScreenCaptureKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21730
- [ScreenCaptureKit] Improve and simplify the manually bound constructors for SCContentFilter. by @rolfbjarne in #21654
- [Speech] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21724
- [src/tests] Fix computing docid for generic method parameters. by @rolfbjarne in #21761
- [src] Only print analyzer statistics if we're doing a verbose build. by @rolfbjarne in #21756
- [static registrar] Make sure to save any changes made by the managed static registrar. Fixes #21606. by @rolfbjarne in #21637
- [UIKit] Fix nullability for numerous UIView members. Fixes #21598. by @rolfbjarne in #21621
- [UIKit] Inline the UITraitChangeObservable protocol into the classes that implement it. Fixes #20265. by @rolfbjarne in #21676
- [UniformTypeIdentifiers] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21728
- [Vision] Improve and simplify manually bound constructors for VNCircle and VNVector. by @rolfbjarne in #21653
- [WebKit] Add WKWebsiteDataStore.ProxyConfigurations. Fixes #19259. by @rolfbjarne in #21734
- [WebKit] Implement Xcode 16.2 beta 1-3 changes. by @rolfbjarne in #21733
Full Changelog: dotnet-9.0.1xx-xcode16.1-9163...dotnet-9.0.1xx-xcode16.2-9170