.NET 9.0.1xx RC 2 (9600)
Pre-releaseWe'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:
- iOS: 18.0.9600-net9-rc2
- tvOS: 18.0.9600-net9-rc2
- Mac Catalyst: 18.0.9600-net9-rc2
- macOS: 15.0.9600-net9-rc2
🚨 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
- 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.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 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 #20863
- [CoreText] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20878
- [CoreVideo] Create a strongly typed dictionary for the CVPixelFormat values. by @rolfbjarne in #21110
- [CoreVideo] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21163
- [DeviceDiscoveryExtension] Implement Xcode 16 beta 6 changes. by @rolfbjarne in #21175
- [DeviceDiscoveryExtension] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20870
- [dotnet-linker] Fix computing block signatures. Fixes #21008. by @rolfbjarne in #21011
- [dotnet-linker] Trim away the static constructor for protocol interfaces if we're registering protocols in the static registrar. by @rolfbjarne in #21012
- [dotnet] Change the usage of the classic linker to be opt-in. by @rolfbjarne in #21231
- [dotnet] Increase verbosity when doing 'dotnet workload install' in CI. by @rolfbjarne in #21122
- [dotnet] Make the RelativeMlaunchPath and XamarinRelativeSdkRootDirectory properties public. by @rolfbjarne in #21074
- [FileProvider] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20890
- [Foundation] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21065
- [Foundation] NSCoding and NS[Mutable]Copying shouldn't be models. by @rolfbjarne in #21257
- [Foundation] NSUrlSessionHandler: Adds support for X509 client certificates by @rolfbjarne in #21284
- [FSKit] Implement this new framework. by @rolfbjarne in #21029
- [GameController] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20874
- [GameKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20880
- [HealthKit] Implement Xcode 16 RC changes. by @rolfbjarne in #21225
- [HealthKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21146
- [HomeKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21080
- [ImageIO] Implement Xcode 16 beta 4-6 changes. by @rolfbjarne in #21136
- [ImageIO] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20875
- [Intents] Fix a few missing APIs for Xcode 16 beta 1-6. by @rolfbjarne in #21138
- [Intents] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20881
- [IOSurface] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20879
- [JavaScriptCore] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20883
- [LinkPresentation] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20887
- [LocalAuthentication] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20891
- [LockedCameraCapture] Don't bind this framework. by @rolfbjarne in #21161
- [MapKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20893
- [MediaAccessibility] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. by @rolfbjarne in #20894
- [MediaAccessibility] Implement Xcode 16.0 beta 4 changes. by @rolfbjarne in #21144
- [MediaExtension] Implement this new framework. by @rolfbjarne in #21176
- [MediaPlayer] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21072
- [MessageUI] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20892
- [Metal] Implement Xcode 16 RC changes. by @rolfbjarne in #21229
- [Metal] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #20895
- [MetalFX] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21020
- [MetalPerforanceShaders] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21155
- [MetalPerforanceShadersGraph] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21154
- [ModelIO] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21032
- [msbuild] Add @(XcodeProject) action by @pjcollins in #21232
- [msbuild] Don't use storyboards / asset catalogs in the prebuilt HotRestart app bundle. by @rolfbjarne in #21237
- [msbuild] Fix:
Assembly.GetManifestResourceNames()
may return an empty string by @rolfbjarne in #21280 - [msbuild] Use ILRepack as a dotnet tool. by @rolfbjarne in #21240
- [net9.0] Migrate Messaging Build agent to .NET 8 by @rolfbjarne in #21264
- [Network] Fix binding mistake in NWConnection. by @rolfbjarne in #21174
- [Network] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21075
- [NetworkExtension] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21171
- [ObjCRuntime/bgen] Add support for (s)byte, (u)short and nuint fields. by @rolfbjarne in #21141
- [PassKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21139
- [PdfKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21034
- [PencilKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21148
- [Phase] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21156
- [Photos] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21040
- [PhotosUI] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21041
- [QuickLook] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21052
- [QuickLookThumbnailing] Implement Xcode 16.0 beta 1-5 changes. by @rolfbjarne in #21049
- [runtime] Enable C++ standard library hardening. Fixes #20709. by @rolfbjarne in #21230
- [SceneKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21055
- [ScreenCaptureKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21071
- [ScriptingBridge] Remove outdated tests and add documentation. Fixes #21242. by @rolfbjarne in #21246
- [Security] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21152
- [ShazamKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21051
- [Speech] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21077
- [SpriteKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21053
- [StoreKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21165
- [Symbols] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21056
- [tools] Fix typo 'occured' -> 'occurred'. by @rolfbjarne in #21208
- [tools] Improve error message when deployment target is too old. by @rolfbjarne in #21211
- [TVMLKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21064
- [UIKit] UIFontPickerViewControllerConfiguration.FilteredTraits isn't deprecated. by @rolfbjarne in #21270
- [UniformTypeIdentifiers] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21068
- [UserNotifications] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21066
- [VideoSubscriberAccount] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21067
- [VideoToolbox] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21157
- [Vision] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21149
- [WebKit] Implement Xcode 16.0 beta 1-6 changes. by @rolfbjarne in #21166
- [Xcode16] Allow the runtime to compile with Xcode 16 beta 2. by @rolfbjarne in #20844
- [xcode16] Bump mlaunch to a newer version with fix for xamarin/maccore#20710. by @rolfbjarne in #21153
- [xcode16] Bump to Xcode 16 beta 3. by @rolfbjarne in #20850
- [xcode16] Bump to Xcode 16 RC. by @rolfbjarne in #21209
- [Xcode16] Bump Xcode to beta 5. by @mandel-macaque in #20998
- [xcode16] Make the 'xcode16' branch the release branch for the 'xcode16' preview release. by @rolfbjarne in #20845
- [xcode16] Make Xcode 16 beta 1 work. by @rolfbjarne in #20774
- [xcode16] Misc fixes after running tests on macOS Sequoia. by @rolfbjarne in #21193
- [xcode16] Revert workarounds for breaking changes in earlier betas due to Apple removing watchOS APIs by @rolfbjarne in #21121
- [xcode16] Update to Xcode 16 stable. by @rolfbjarne in #21248
- [xcode16] Use [Experimental] instead of [RequiresPreviewFeatures]. by @rolfbjarne in #21178
- Bump mlaunch to a version that works with Xcode 16. by @rolfbjarne in #21255
- Bump to Xcode 16 beta 6. by @rolfbjarne in #21088
- Bump Xamarin.MacDev to get fix for xamarin/Xamarin.MacDev#20771. by @rolfbjarne in #21010
- Fix described in #21132 by @rolfbjarne in #21140
- Fix MobileILStrip handling of unmanaged dlls by @jkurdek in #21098
- NativeAOT: Exclude pdbs from NativeAOT app bundles by @ivanpovazan in #21291
- NativeAOT: Fix output dir path for universal apps built with NativeAOT by @ivanpovazan in #21288
- NativeAOT: Reenable failing networking tests on tvOS/x64 with NativeAOT by @ivanpovazan in #21285
New Contributors
Full Changelog: dotnet-9.0.1xx-rc1-9270...dotnet-9.0.1xx-rc2-9600