Releases: dotnet/macios
.NET 11.0.1xx Preview 5 (11546)
We're excited to announce our fifth preview release for .NET 11!
Note
- Xcode 26.5 is required with this release. Xcode 26.5 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:
- iOS: 26.5.11546-net11-p5
- tvOS: 26.5.11546-net11-p5
- Mac Catalyst: 26.5.11546-net11-p5
- macOS: 26.5.11546-net11-p5
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.5.26309.3 in order to install these versions of the SDKs,
please make sure to be using the fifth 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.5.26309.3Available 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 11.0.100-preview.5.26309.3You 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
- [xcode26.5] Initial bump PR for Xcode 26.5 Beta 1 by @dalexsoto in #25071
- [Photos] Update bindings up to Xcode 26.5 Beta 1 by @dalexsoto in #25101
- [StoreKit] Update bindings up to Xcode 26.5 Beta 1 by @dalexsoto in #25102
- [CoreServices] Add deprecated attributes to FSEventStream RunLoop P/Invokes and fix UnscheduleFromRunLoop bug by @dalexsoto in #25103
- [MediaSetup] Add Mac Catalyst support by @dalexsoto in #25118
- [CoreMotion] Clean up xtro files by @dalexsoto in #25116
- [iTunesLibrary] Clean up xtro files by @dalexsoto in #25117
- [xcode26.5] Merge main into xcode26.5 by @dalexsoto in #25127
- [LocalAuthenticationEmbeddedUI] Update bindings and xtro by @dalexsoto in #25119
- [SafetyKit] Enable bindings in MacCatalyst by @dalexsoto in #25134
- [SystemConfiguration] Cleanup xtro files by @dalexsoto in #25132
- [PrintCore] Update bindings and clear xtro by @dalexsoto in #25128
- [SecurityUI] Clean up xtro by @dalexsoto in #25131
- [xcode26.5] Merge main into xcode26.5 by @dalexsoto in #25159
- [xcode26.5] Bump to Xcode 26.5 Beta 2 by @dalexsoto in #25167
- [devops] Fix PR latest-commit detection by @rolfbjarne in #25231
- [monotouch-test] Remove versioned code that's become dead due to min macOS version increasing. by @rolfbjarne in #25181
- [StoreKit] Fix StoreKit iTunes identifier width. Fixes #25219. by @rolfbjarne in #25221
- [net11.0] Fix PublishBuildAssets.proj path for newer Arcade SDK by @jonathanpeppers in #25260
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #25245
- [main] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #25209
- [tests] Enable nullability in Touch.Unit. by @rolfbjarne in #25204
- [net11.0] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #25226
- [dotnet] Add test project templates for all Apple platforms by @jonathanpeppers in #25195
- [net11.0] Support multiple R2R images for ios/tvos apps by @rolfbjarne in #25077
- [CoreML] Remove the 'MLModelCollectionDidChangeNotification' field, it's not available anymore. by @rolfbjarne in #25277
- [devops] Make the API diff pipeline use a pr: trigger. by @rolfbjarne in #25284
- [net11.0] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #25197
- [automated] Merge branch 'main' => 'net11.0' by @github-actions[bot] in #25246
- [xtro] Enable nullability and fix any issues. by @rolfbjarne in #25274
- [AppKit] Implement manual bindings for notification event args properties that use literal strings. by @rolfbjarne in #25273
- [AudioUnit] Adjust framework for a few constants. by @rolfbjarne in #25272
- [QuartzComposer] Replace RSS-related field bindings with manual code that returns null. by @rolfbjarne in #25271
- [CoreBluetooth] Remove CBUUIDValidRangeString. by @rolfbjarne in #25270
- [github] Update aw. by @rolfbjarne in #25266
- [tests] Fix flaky TestNSUrlSessionHandlerSendClientCertificate. Fixes #25240 by @rolfbjarne in #25258
- [copilot] Add fix-random-ci-test-failure skill for diagnosing flaky tests by @rolfbjarne in #25256
- Fix flaky UrlProtocolTest.RegistrarTest race condition. Fixes #25223 by @rolfbjarne in #25255
- [dotnet] Fix CoreCLR framework signing with correct Info.plist tracking. Fixes #25248. by @rolfbjarne in #25254
- Update README.md Downloads and Feedback sections from Xamarin to .NET workloads by @rolfbjarne in #25252
- [tests] Fix flaky DeskCase_83099_InmutableDictionary keychain test by @rolfbjarne in #25251
- [devops] Remove empty directories and extract archive-html-report template by @rolfbjarne in #25250
- [tests] Use NSTemporaryDirectory instead of Xamarin.Cache in FSEventStreamTest by @rolfbjarne in #25243
- [xcode26.5] Update to use Xcode 26.5 Beta 3 by @dalexsoto in #25293
- [xcode26.5] Merge main into xcode26.5 by @dalexsoto in #25287
- [devops] Make the tests pipeline use a pr: trigger. by @rolfbjarne in #25239
- [tools] Add a new 'trimmable-static' registrar, that uses trimmable type maps. Fixes #23108. by @rolfbjarne in #25079
- Fix unclosed markdown code block in scripts/README.md by @rolfbjarne in #25267
- [too...
.NET 10 - Xcode 26.5 support (26.5.10284)
Note
- Xcode 26.5 is required with this release. Xcode 26.5 requires macOS 26.2+ (Tahoe).
This is a servicing release to the previous .NET 10 release.
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:
- iOS: 26.5.10284
- tvOS: 26.5.10284
- macOS: 26.5.10284
- Mac Catalyst: 26.5.10284
Installation
You can use workload set version 10.0.300.3 in order to install these versions of the SDKs.
Please make sure to be using the latest .NET SDK 10.0.300 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.300 before proceeding.
dotnet workload install <workload id(s)> --version 10.0.300.3Available 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 10.0.300.3You 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] Delete old NuGet.config feeds. by @rolfbjarne in #25468
- [release/10.0.1xx] Fix issue #25462: Update Xamarin.MacDev by @dalexsoto in #25465
- [release/10.0.1xx] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #25459
- [release/10.0.1xx] [tools] Fix IL2009 warning for generic types in linker XML descriptors by @rolfbjarne in #25477
Full Changelog: dotnet-10.0.1xx-xcode26.5-10280...dotnet-10.0.1xx-xcode26.5-10284
.NET 9 - Xcode 26.5 support (26.5.9002)
Note
- Xcode 26.5 is required with this release. Xcode 26.5 requires macOS 26.2+ (Tahoe).
- This release adds Xcode 26.5 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.314.3 in order to install these versions of the SDKs.
Please make sure to be using the latest .NET SDK 9.0.314 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.314 or greater before proceeding.
dotnet workload install <workload id(s)> --version 9.0.314.3Available 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.314.3You can use dotnet workload --info to validate the workload versions installed in your system.
What's Changed
- [release/9.0.1xx] Update dependencies from dotnet/sdk by @dotnet-maestro[bot] in #25437
Full Changelog: dotnet-9.0.1xx-xcode26.5.9001...dotnet-9.0.1xx-xcode26.5.9002
.NET 9 - Xcode 26.5 support (26.5.9001)
Note
- Xcode 26.5 is required with this release. Xcode 26.5 requires macOS 26.2+ (Tahoe).
- This release adds Xcode 26.5 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.314.2 in order to install these versions of the SDKs.
Please make sure to be using the latest .NET SDK 9.0.314 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.314 or greater before proceeding.
dotnet workload install <workload id(s)> --version 9.0.314.2Available 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.314.2You can use dotnet workload --info to validate the workload versions installed in your system.
What's Changed
- [release/9.0.1xx] Update dependencies from dotnet/sdk by @dotnet-maestro[bot] in #25227
- [release/9.0.1xx] Backport a number of CI changes to make PRs work. by @rolfbjarne in #25345
- [release/9.0.1xx] Update build to use Xcode 26.5 no new API bindings by @dalexsoto in #25412
- [release/9.0.1xx] Update dependencies from dotnet/sdk by @dotnet-maestro[bot] in #25352
Full Changelog: dotnet-9.0.1xx-xcode26.4-9015...dotnet-9.0.1xx-xcode26.5.9001
.NET 10 - Xcode 26.5 support (26.5.10280)
Note
- Xcode 26.5 is required with this release. Xcode 26.5 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:
- iOS: 26.5.10280
- tvOS: 26.5.10280
- macOS: 26.5.10280
- Mac Catalyst: 26.5.10280
Installation
You can use workload set version 10.0.300.2 in order to install these versions of the SDKs.
Please make sure to be using the latest .NET SDK 10.0.300 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.300 before proceeding.
dotnet workload install <workload id(s)> --version 10.0.300.2Available 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 10.0.300.2You 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
- [src] Fix a few nullablity issues in a few places. by @rolfbjarne in #25043
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #25048
- [CoreFoundation] Fix typo in native symbol name by @rolfbjarne in #25052
- [main] Bump dependency/support for .NET 9 Xcode 26.4 packages. by @dalexsoto in #25055
- [CryptoTokenKit] Update bindings all the way to Xcode 26.4 by @dalexsoto in #25025
- [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when optimizing generated code. by @rolfbjarne in #24979
- [bgen] Enable nullability everywhere. by @rolfbjarne in #25023
- [dotnet] Use the target framework version to compute the path to the task assembly. by @rolfbjarne in #25060
- [skills] More updates to macios-binding-creator by @dalexsoto in #25064
- [ImageCaptureCore] Bind new APIs and fix existing bindings up to Xcode 26.4 by @dalexsoto in #25028
- [xcode26.5] Initial bump PR for Xcode 26.5 Beta 1 by @dalexsoto in #25071
- [PdfKit] Implement manual bindings for PdfViewAnnotationHitEventArgs.AnnotationHit. by @rolfbjarne in #25068
- Fix xharness HTML failure summaries by @rolfbjarne in #25092
- [CoreMidi] kMIDIDriverPropertyUsesSerial is only available on macOS. by @rolfbjarne in #25095
- [Foundation] Throws a specific exception in NSUrlSessionHandler when a certificate is needed but not provided. Fixes #24532. by @rolfbjarne in #24544
- [Photos] Update bindings up to Xcode 26.5 Beta 1 by @dalexsoto in #25101
- [StoreKit] Update bindings up to Xcode 26.5 Beta 1 by @dalexsoto in #25102
- [CoreServices] Add deprecated attributes to FSEventStream RunLoop P/Invokes and fix UnscheduleFromRunLoop bug by @dalexsoto in #25103
- Bump peterjgrainger/action-create-branch from 3.0.0 to 4.0.0 by @dependabot[bot] in #25097
- [msbuild] Fix Content/BundleResource with PublishFolderType not bundled in multi-RID builds. Fixes #25053. by @rolfbjarne in #25065
- Remove duplicate @ prefix from issueAuthor in GitOps by @akoeplinger in #25100
- [introspection] Enable nullability. by @rolfbjarne in #25110
- [MediaSetup] Add Mac Catalyst support by @dalexsoto in #25118
- [CoreMotion] Clean up xtro files by @dalexsoto in #25116
- [iTunesLibrary] Clean up xtro files by @dalexsoto in #25117
- [ObjCRuntime] Add a Class.GetClassName to avoid code duplication. by @rolfbjarne in #25114
- [dotnet] Don't remove the 'LaunchProfiles' capability for macOS projects. by @rolfbjarne in #25113
- [xcode26.5] Merge main into xcode26.5 by @dalexsoto in #25127
- [LocalAuthenticationEmbeddedUI] Update bindings and xtro by @dalexsoto in #25119
- [main] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #25138
- [SafetyKit] Enable bindings in MacCatalyst by @dalexsoto in #25134
- [SystemConfiguration] Cleanup xtro files by @dalexsoto in #25132
- [PrintCore] Update bindings and clear xtro by @dalexsoto in #25128
- [SecurityUI] Clean up xtro by @dalexsoto in #25131
- [dotnet-linker] Create an xml descriptor instead of manual marking when applying the [Preserve] attribute. by @rolfbjarne in #25109
- [msbuild] Revamp finding a simulator to use when running an app in the simulator. Fixes #25112. by @rolfbjarne in #25129
- [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking when marking static registrar methods. by @rolfbjarne in #25018
- [main] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #25140
- [main] Update dependencies from dotnet/xharness by @dotnet-maestro[bot] in #25153
- CoreSpotlight: fix 'occured' -> 'occurred' in CSEnums XML doc comment by @SAY-5 in #25164
- [xcode26.5] Merge main into xcode26.5 by @dalexsoto in #25159
- [xharness] Enable nullability, and fix any errors. by @rolfbjarne in #25160
- [AppKit] Fix the name of the userInfo 'Item' key in the WillAddItem/DidRemoveItem notifications. by @rolfbjarne in #25158
- [src] Review xml docs for grammar. by @rolfbjarne in #25165
- [xcode26.5] Bump to Xcode 26.5 Beta 2 by @dalexsoto in #25167
- [main] Bump Xcode to 26.4.1 by @dalexsoto in #25169
- [ObjCRuntime] Provide a way to remove an object from the object map. by @rolfbjarne in #25166
- [src] Unify the xml docs for the
Dispose(bool)method. by @rolfbjarne in #25175 - [tools] Improve the create-makefile-fragment script a bit. by @rolfbjarne in #25174
- [Foundation] Clean up pre-net10.0 code from NSUrlSessionHandler. by @rolfbjarne in #25177
- [main] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #25199
- [sharpie] Add docs on how to create a sharpie release. by @rolfbjarne in #25178
- [docs] Minor updates from copilot review in the dotnet/docs-mobile repository. by @rolfbjarne in #25191
- Add eng/Signing.props to sign cab files inside MSI workload packs by @rolfbjarne in #25192
- Bump mlaunch to get startup hook fix. by @rolfbjarne in #25202
- [dotnet-linker] Use [DynamicDependency] attributes instead of manual marking of NSObjects. by @rolfbjarne in #25146
- [Foundation] Enable HTTP digest auth in NSUrlSessionHandler by @rolfbjarne in #25180
- [docs] Fix typo 'embeddded' -> 'embedded'. by @rolfbjarne in #25205
- [devops] Disable implicit CI triggers on xamarin-macios-pr pipeline by @rolfbjarne in #25211
- [devops] Add a timeout to the 'Publish to Artifact Services Drop' step. by @rolfbjarne in #25210
- Add macios-reviewer skill for PR code review by @rolfbjarne in #25206
- [Foundation] Improve potential reentrancy problems in NSUrlSessionHandler. by @rolfbjarne in #25183
- [msbuild] Copy some ILLink output back to Windows when building remotely. by @rolfbjarne in #25235
- [msbuild] Add a condition to make sure empty item groups aren't processed. by @rolfbjarne in ...
.NET 11.0.1xx Preview 4 (11514)
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:
- iOS: 26.4.11514-net11-p4
- tvOS: 26.4.11514-net11-p4
- Mac Catalyst: 26.4.11514-net11-p4
- macOS: 26.4.11514-net11-p4
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.2Available 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 11.0.100-preview.4.26261.2You 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...
.NET 10 - Xcode 26.4 support (26.4.10259)
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:
- iOS: 26.4.10259
- tvOS: 26.4.10259
- macOS: 26.4.10259
- Mac Catalyst: 26.4.10259
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.1Available 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 10.0.203.1You 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...
.NET 9 - Xcode 26.4 support (26.4.9015)
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.1Available 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.313.1You 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
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 sharpiesharpie --version
dotnet-sharpie 26.4.0.212 # this is the new sharpieRunning 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/sharpieUsage
Use it to bind a framework like this:
$ sharpie bind --framework path/to/my.framework --output output-directoryFor 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)
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:
- iOS: 26.2.11588-net11-p3
- tvOS: 26.2.11588-net11-p3
- Mac Catalyst: 26.2.11588-net11-p3
- macOS: 26.2.11588-net11-p3
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.1Available 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 11.0.100-preview.3.26214.1You 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
- [UIKit] Enable nullability and clean up UIVibrancyEffect. by @rolfbjarne in #24703
- [UIKit] Generate all UIToolbar bindings. by @rolfbjarne in #24709
- [UIKit] Enable nullability and clean up UITypes. by @rolfbjarne in #24701
- [tools] Add sharpie. Fixes #23962. by @rolfbjarne in #24622
- [build] Remove the sharpie dependency. by @rolfbjarne in #24719
- [src] Fix numerous memory leaks. by @rolfbjarne in #24723
- [build] Remove the code to create msbuild.zip/bundle.zip. by @rolfbjarne in #24724
- [ObjCRuntime] Enable nullability and clean up Blocks. by @rolfbjarne in #24726
- [ObjCRuntime] Enable nullability and clean up TypeConverter. by @rolfbjarne in #24733
- [main] Bring back arcade common files by @adamzip in #24743
- [ObjCRuntime] Enable nullability and clean up BackingField. by @rolfbjarne in #24734
- [ObjCRuntime] Enable nullability and clean up Stret. by @rolfbjarne in #24732
- [ObjCRuntime] Enable nullability and clean up CategoryAttribute. by @rolfbjarne in #24744
- [build] Remove Mono dependency. by @rolfbjarne in #24736
- [ObjCRuntime] Enable nullability and clean up TrampolineBlockBase. by @rolfbjarne in #24741
- [Foundation] Treat any exception during X509Chain.Build as a remote certificate chain error. Fixes #24739. by @rolfbjarne in #24754
- [runtime] Remove some dead code related to the embeddinator and unnecessary MONOMAC code. by @rolfbjarne in #24746
- [CI] Bump to use macOS Tahoe by @dalexsoto in #24612
- [tools] Convert tools/diff-to-html to a C# script in scripts/diff-to-html by @rolfbjarne in #24756
- [workflows] Add an arcade workflow to flow 'main' into 'net11.0'. by @rolfbjarne in #24753
- CoreCLR: Compute and pass instruction set to crossgen2 based on deployment target by @Copilot in #24621
- [net11.0] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #24780
- [targets] Improve/fix post-processing item collection for dylibs and frameworks by @rolfbjarne in #24721
- [ObjCRuntime] Enable nullability and clean up Runtime. by @rolfbjarne in #24747
- [CoreFoundation/Foundation] Optimize getting a handle for NSNull and a null CFAllocator. by @rolfbjarne in #24775
- [devops] Add GitHub comment posting to Prepare .NET Release stage by @rolfbjarne in #24783
- [Foundation] Add helper methods to NSArray to create managed arrays of strongly typed dictionaries. by @rolfbjarne in #24759
- [net11.0] Update dependencies from dotnet/macios by @dotnet-maestro[bot] in #24789
- [net11.0] Cache R2R image when only user assemblies are changed by @kotlarmilos in #24735
- [main] Update dependencies from dotnet/dotnet by @dotnet-maestro[bot] in #24752
- [main] Bump to Xcode 26.3 Stable by @dalexsoto in #24795
- [src] Fix memory leaks: release retained handles from Copy/Create native calls by @rolfbjarne in #24794
- [build] Make it possible to only build Objective-Sharpie. by @rolfbjarne in #24788
- Include .mobile.props for DTB (fix for VS Code) by @noiseonwires in #24801
- [Foundation] Add [NullAllowed] to NSBundle members. Fixes #24803. by @rolfbjarne in #24805
- [sharpie] Set a few required properties for the nupkg. by @rolfbjarne in #24813
- [devops] Treat 'merge/' branches as pull request branches. by @rolfbjarne in #24823
- [sharpie] Add the sharpie nupkg version to 'make show-versions'. by @rolfbjarne in #24827
- [ObjCRuntime] Fix GC race in RetainAndAutoreleaseHandle causing intermittent SIGSEGV by @rolfbjarne in #24814
- [sharpie] Add support for visionos_app_extension availability platform. Fixes #18098. by @rolfbjarne in #24828
- [msbuild] Fix race condition when generating MSBStrings.Designer.cs by @rolfbjarne in #24826
- [skills] Add a "macios-xcode-beta-update" skill by @dalexsoto in #24818
- [msbuild] Fix incremental build for Metal shaders. Fixes #24816. by @rolfbjarne in #24829
- [net11.0] Add CoreCLR and R2R framework to post-processing for symbol stripping by @kotlarmilos in #24678
- [msbuild] Don't pass symbol file to strip when _ExportSymbolsExplicitly=false. Fixes #24582. by @rolfbjarne in #24800
- [dotnet] Add support for @(RuntimeEnvironmentVariable). by @rolfbjarne in #24824
- [Foundation] Improve NSArray.ArrayFromHandle significantly. by @rolfbjarne in #24808
- [skills] Add CI failure inspector skill by @dalexsoto in #24846
- [system-dependencies] Update the check for the Metal too...