Skip to content

.NET 7 release notes

Rolf Bjarne Kvinge edited this page Aug 31, 2022 · 10 revisions

Warning This document is still work-in-progress/incomplete.

We're excited to announce our .NET 7 SDK release!

Note: these are the base SDKs that add support for the platforms in question, if you are looking for .NET MAUI (which is built on top of our SDKs), go here instead: https://docs.microsoft.com/en-us/dotnet/maui/.

Getting Started | What's New | Known Issues | Feedback | FAQ

Requirements

It's highly recommended to use Xcode 14.0+ (which requires macOS 12.4 (Monterey)). Earlier versions of Xcode may work, but some featuers won't be available.

With the release the minimum supported OS versions can be targeted for apps:

  • iOS: 10.0
  • macOS: 10.14
  • tvOS: 10.0
  • Mac Catalyst: 13.1

Getting started

In contrast to how Xamarin.iOS and Xamarin.Mac were shipped (as installable *.pkg files), our .NET SDKs are shipped as workloads in the .NET world. This means that the first step is to getting started is to install .NET 7.0.100 (or later).

Then install the workload corresponding with the desired platform:

$ dotnet workload install ios # other workloads: macos, tvos, and maccatalyst

Create new app from a template with:

$ dotnet new ios # 'dotnet new --list --tag Mobile' will show all available templates

Finally build and run the new app in the simulator

$ dotnet run

What's New in this Release

This release contains SDKs for the following four platforms: iOS, tvOS, Mac Catalyst and macOS, and has support and bindings for the OS versions that were shipped with Xcode 14.0:

  • iOS 16.0
  • macOS 13.0
  • tvOS 16.0
  • Mac Catalyst 16.0

Notable Changes

macOS

Mac Catalyst

Breaking Changes

  • Entitlements.plist is automatically picked up and used for entitlements.

If the root directory of the project file contains an Entitlements.plist file, we'll automatically pick it up and use it for entitlements when signing the app (previously the CodesignEntitlements property would have to be set in the project file).

In the case this is not desired, it's possible to get the old behavior back by setting the EnableDefaultCodesignEntitlements property to false in the project file:

<PropertyGroup>
    <EnableDefaultCodesignEntitlements>false</EnableDefaultCodesignEntitlements>
</EnableDefaultCodesignEntitlements>

Ref: https://github.com/xamarin/xamarin-macios/pull/15729

Release builds for macOS and Mac Catalyst are universal by default.

We've made release builds (builds where Configuration=Release) default to be universal, so that release builds won't have to be translated by Rosetta on ARM64 macOS devices.

If this is not desired, it can be overridden in the project file by doing something like this:

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <RuntimeIdentifier>maccatalyst-x64</RuntimeIdentifier>
</PropertyGroup>

Ref: https://github.com/xamarin/xamarin-macios/issues/15620

Known Issues

Feedback

File issues here: https://github.com/xamarin/xamarin-macios/issues/new.

Frequently Asked Questions

Clone this wiki locally