.NET 8.0.1xxx - Xcode 16.0 Support (8303)
🚨 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
- 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 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 #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] Delay computing trimming options until MAUI has had a chance to change the default. by @rolfbjarne in #20970
- [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
- [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
- [main] Enable dedup only when targeting arm64 by @dalexsoto in #20953
- [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 support for signing with the placeholder key. by @rolfbjarne in #20823
- [msbuild] Don't use storyboards / asset catalogs in the prebuilt HotRestart app bundle. by @rolfbjarne in #21237
- [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
- [ObjCRuntime] Allow a null delegate in Runtime.ReleaseBlockWhenDelegateIsCollected. Fixes #20920. by @rolfbjarne in #20999
- [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
- [src/runtime] Add extra checks to Runtime.IsUserType to detect invalid pointers. by @rolfbjarne in #21001
- [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
- [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] Misc fixes after running tests on macOS Sequoia. by @rolfbjarne in #21193
- [xcode16] Update to Xcode 16 stable. by @rolfbjarne in #21248
- [xcode16] Use [Experimental] instead of [RequiresPreviewFeatures]. by @rolfbjarne in #21178
- Add UseInterpreter as part of the check for DynamicCodeSupport by @mcumming in #20912
- 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
- Do not enable dedup when targeting
maccatalyst-x64
by @ivanpovazan in #20945 - Fix described in #21132 by @rolfbjarne in #21140
- Reenable dedup optimization for all AOT modes by @ivanpovazan in #20936
Full Changelog: dotnet-8.0.1xx-xcode15.4-8030...dotnet-8.0.1xx-xcode16.0-8303