-
Notifications
You must be signed in to change notification settings - Fork 549
.NET release notes
iOS/tvOS/macOS/MacCatalyst SDK for .NET
Target audience:
This is not MAUI nor Xamarin.Forms. Go here instead: https://github.com/dotnet/maui
This release contains support for the following OSes, and the OS version we have bindings for:
- iOS 15.4
- macOS 12.3
- tvOS 15.4
- Mac Catalyst 15.4
Minimum supported OS versions:
- iOS 10.0
- macOS 10.14
- tvOS 10.0
- Mac Catalyst 13.1
Shipped as workloads: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-workload-install
Installed by dotnet workload install [ios|macos|tvos|maccatalyst]
Create new app from a template with:
dotnet new ios|macos|tvos|maccatalyst
Get a full list of available templates with:
dotnet new --list --tag Mobile
Getting Started | What's New | Known Issues | Blogs | Feedback | Open Source
- Xcode 13.3
- macOS 12.0 (Monterey)
Everything.
- Added support for arm64 in the iOS and tvOS simulator when running on an ARM64-capable Mac.
- Added support for arm64 for macOS projects. Note that the default is to always build for x64, to build for arm64 set the runtime identifier to
osx-arm64:
<RuntimeIdentifier>osx-arm64</RuntimeIdentifier>https://github.com/xamarin/xamarin-macios/issues/13160
"Platform" mode is gone for macOS. "LinkSdk", "None" and "Full" are still available for all platforms. manual mode is also available.
macOS is using the CoreCLR runtime instead of the Mono runtime.
There are a few incompatibilities between CoreCLR and Mono, those are listed here.
We've added support for Mac Catalyst!
We define both __IOS__ and __MACCATALYST__ for Mac Catalyst.
The system version for Mac Catalyst (as returned by UIDevice.CurrentDevice.SystemVersion) is the macOS version.
However, the helper method UIDevice.CurrentDevice.CheckSystemVersion takes the corresponding iOS version (like the .NET availability API does).
We've enabled exception marshalling by default, because it prevents numerous potential problems (crashes, memory corruption, memory leaks, etc.)
However, there is a performance degredation when calling into Objective-C code. In the future we'll make it possible to avoid this performance degredation (at the cost of a slightly bigger app), but in the meantime it's possible to disable Objective-C exception marshalling by adding the following property to a PropertyGroup in your project file:
<MtouchExtraArgs>--marshal-objectivec-exceptions:disable</MtouchExtraArgs>First release!
- {Bugzilla Number}: {Title of the bug}
- {DevCom Title}
See also Breaking Changes
- {Bugzilla Number}: {Title of the bug}
- {DevCom Title}
See [Known issues in .NET](Known issues in .NET)
File issues here: https://github.com/xamarin/xamarin-macios/issues/new.
We'll continue to ship Xamarin.iOS and Xamarin.Mac separately for a while, but they will eventually be discontinued.
Ref: <link to blog post? documentation?>