- Notifications
You must be signed in to change notification settings - Fork548
.NET 7 release notes
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
This release consists of the following versions:
Note that these versions do not support Xcode 14.1, an update with Xcode 14.1 will be released shortly.
It's highly recommended to use Xcode 14.0+ (which requires macOS 12.4 (Monterey)). Earlier versions of Xcode may work, but some features 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
Note: while we support macOS 10.14, we're only testing on OS versions that Apple supports. At the time of this writing this means we're only testing on macOS 11.0+.
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 toinstall .NET 7.0.100 (or later).
Theninstall the workload corresponding with the desired platform:
$ dotnet workload install ios# other workloads: macos, tvos, and maccatalystCreate new app from a template with:
$ dotnet new ios# 'dotnet new --list --tag Mobile' will show all available templatesFinally build and run the new app in the simulator
$ dotnet run
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 12.4
- tvOS 16.0
- Mac Catalyst 15.4
- [.NET/AudioUnit] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] Partial Fix for #10470 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15808
- [.NET/CoreFoundation] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] Partial Fix for #10470 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15879
- [.NET/CoreGraphics] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] Partial Fix for #10470 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15906
- [.NET/CoreMedia] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] Partial Fix for #10470 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15934
- [.NET/CoreMidi] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] Partial Fix for #10470 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15774
- [.NET/CoreVideo] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] Partial Fix for #10470 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15892
- [.NET/MediaToolbox] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] Partial Fix for #10470 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15942
- [.NET] added cecil tests for generic pinvokes and generic delegates. Fix for #11771 by @stephen-hawley inhttps://github.com/dotnet/macios/pull/15974
- [AppKit] Add constructors for NSMenuToolbarItem classes by @chamons inhttps://github.com/dotnet/macios/pull/15087
- [appkit] Add missing NullAllowed on NSSavePanel.AllowedFileTypes by @chamons inhttps://github.com/dotnet/macios/pull/15570
- [AppKit] Add NSView.AddToolTip overloads that take NSObjects as owners. Fixes #14996. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15000
- [AppKit] Fix wrong binding for NSToolbarItem.Image in Mac Catalyst. Fixes #15068. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15075
- [AVFoundation] Fix the AVAudioFormat.StreamDescription binding. Fixes #8892. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16206
- [AVFoundation] Improve the callback in AVAssetImageGenerator.GenerateCGImagesAsynchronously. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16325
- [CarPlay] Propagate constructors to derived classes. Fixes #15169. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15179
- [compression] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14916
- [CoreCLR] Avoid having any internal calls in managed code for CoreCLR. Fixes #15343. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15358
- [CoreCLR] Handle ref/out enum values as parameters. Fixes #15744. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15870
- [corefoundation] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15090
- [corefoundation] Cache
kCFNullto avoid native calls by @spouliot inhttps://github.com/dotnet/macios/pull/15146 - [coregraphics] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15067
- [coremedia] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15066
- [CoreMedia] Don't use 'bool' in an [UnmanagedCallersOnly] method. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15986
- [coremidi] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15098
- [coremotion] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15072
- [coreservices] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15081
- [corespotlight] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15023
- [coretelephony] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15022
- [coretext] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14978
- [Dlfcn] Add an enum to specify the mode to dlopen by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15438
- [dotnet-linker] Bump default trampoline count when using the interpreter on x64 in .NET. Fixes #14887. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15025
- [dotnet/Templates] Remove preview language by @pjcollins inhttps://github.com/dotnet/macios/pull/14842
- [dotnet] Accept invalid runtime identifiers for Restore. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15357
- [dotnet] Add binding templates for tvOS and macOS. Fixes #15839. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15921
- [dotnet] Add class library project templates for tvOS, macOS and Mac Catalyst. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16263
- [dotnet] Add numerous item templates. Fixes #15836. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16287
- [dotnet] Add support for selecting whether to create P/Invoke wrappers or not. Fixes #4940. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14961
- [dotnet] Change condition when to include the System.Runtime.InteropServices.NFloat.Internal package reference. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15183
- [dotnet] Condition default inclusion on the target framework version. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15196
- [dotnet] Don't set '_RunAotCompiler' on macOS if 'MtouchInterpreter' is set. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14874
- [dotnet] Don't try to collect RID-specific items to codesign unless we're connected to (or building on) a Mac. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16153
- [dotnet] Don't try to ILStrip assemblies unless we're connected to a Mac. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16160
- [dotnet] Fix issue with frameworks with dots. Fixes #15727. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15872
- [dotnet] Hardcode 'true' as the default value for GenerateSatelliteAssembliesForCore. Fixes #16193. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16306
- [dotnet] Honor existing values for BuildIpa and CreatePackage. Fixes #15696. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15697
- [dotnet] Implement support for building net6.0-* apps with .NET 7. Fixes #15672. by @vs-mobiletools-engineering-service2 inhttps://github.com/dotnet/macios/pull/15785
- [dotnet] Improve name and descripting in a few existing templates a little bit. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16260
- [dotnet] macOS is not a mobile platform, so don't claim it is in the templates. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16262
- [dotnet] macOS/MacCatalyst Archive and publishing support by @emaf inhttps://github.com/dotnet/macios/pull/15720
- [dotnet] Make it possible to specify the registrar using a 'Registrar' property in MSBuild. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15483
- [dotnet] Make relase builds for desktop universal by default. Fixes #15620. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15769
- [dotnet] Make sure to not run the linker when we're on a disconnected Windows build. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15076
- [dotnet] Stop hardcoding the TargetFrameworkVersion in the default items template. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15386
- [dotnet] Tweak a template name slightly. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16323
- [dotnet][macos] The only runtime is CoreCLR (not a feature) by @spouliot inhttps://github.com/dotnet/macios/pull/15340
- [Fix] Reorder the enum to the correct order by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15540
- [foundation] Add lowPowerModeEnabled to macOS by @chamons inhttps://github.com/dotnet/macios/pull/15940
- [Foundation] Add NSArray.ToArray and implement IEnumerable. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16252
- [foundation] Cache parts of
NSObject.ConformsToProtocolby @spouliot inhttps://github.com/dotnet/macios/pull/15294 - [Foundation] Implement the server certificate custom validation callback usage in NSUrlSessionHandler by @simonrozsival inhttps://github.com/dotnet/macios/pull/15117
- [Foundation] Make NSUserDefaults.VolatileDomainNames a property in XAMCORE_5_0. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14942
- [Foundation] Use ObjCRuntime.ThrowHelper in NSUrlSessionHandler. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14823
- [gameplaykit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14615
- [generator] Do not zero-extend implied catalyst attributes by @chamons inhttps://github.com/dotnet/macios/pull/15648
- [generator] Don't use culture-aware API. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15392
- [generator] Use new ObsoletedOSPlatformAttribute for generated code by @chamons inhttps://github.com/dotnet/macios/pull/15941
- [healthkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14730
- [homekit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15111
- [illink] Ensure we replace the dotnet SDK path in the _ExtraTrimmerArgs for remote builds by @mauroa inhttps://github.com/dotnet/macios/pull/16294
- [imagecapturecore] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15127
- [ituneslibrary] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14967
- [main] [msbuild] Use _TrimmerDefaultAction if TrimmerDefaultAction isn't set. by @vs-mobiletools-engineering-service2 inhttps://github.com/dotnet/macios/pull/16130
- [main] [mtouch] Automatically disable bitcode if using Xcode 14+. Fixes #15210. by @vs-mobiletools-engineering-service2 inhttps://github.com/dotnet/macios/pull/16054
- [main] Fix selectors from submission tests by @chamons inhttps://github.com/dotnet/macios/pull/16042
- [mediaplayer] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15147
- [metal] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15162
- [metalperformanceshaders] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15163
- [modelio] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15164
- [msbuild/dotnet] Add support for passing --aot arguments to the AOT compiler. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14936
- [msbuild/tools] Fix path issues in the FilterStaticFrameworks task and ExtractBindingLibraries step. Fixes #15289. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15321
- [msbuild] Add a public 'CompileImageAssetsDependsOn' property. Fixes #16065. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16089
- [msbuild] Add additional app extensions to the list of items we need to sign. Fixes #15598. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15829
- [msbuild] Add support for keeping temporary output when looking for AOT compilers. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15884
- [msbuild] Automatically add the 'com.apple.security.cs.allow-jit' entitlement for desktop release builds. Fixes #15745. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15927
- [msbuild] Automatically detect any Entitlements.plist files in the root project in .NET. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15729
- [msbuild] Compute _AppContainerDir from AppBundleDir if AppBundleDir is set by the developer. Fixes #15014. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15869
- [msbuild] Copy binding resource files back to Windows. Fixes #13393. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14702
- [msbuild] Copy partial app manifests to build server if they exists on Windows. Fixes #15267. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15328
- [msbuild] Enable nullability in the AOTCompileTask class. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14924
- [msbuild] Enable nullability in the CompileEntitlements task. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15912
- [msbuild] Fix computing the output path for SceneKitAsset items with custom Link metadata. Fixes #15104. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15186
- [msbuild] Fix processing static libraries in binding sidecars. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16227
- [msbuild] Fix the FindAotCompiler task for .NET 7. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15759
- [msbuild] Fixes Hot Restart compiled Entitlements output path by @emaf inhttps://github.com/dotnet/macios/pull/15125
- [msbuild] Improve error reporting when an external tool fails to print some of stderr. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14993
- [msbuild] Improve logic to clean up app bundle for unwanted files. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15080
- [msbuild] Make DetectSigningIdentity.CodesignEntitlements an ITaskItem property. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16174
- [msbuild] Make sure '_AppBundlePath' is always relative. Fixes #15130. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15868
- [msbuild] Only pass -z to dsymutil when using Xcode 13.2 or earlier. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15254
- [msbuild] Only require a provisioning profile if we have non-empty entitlements. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15918
- [msbuild] Put all the MSBuild tests in the same namespace. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15919
- [msbuild] Remove MS7068 so allow creating binding projects without native libraries. Fixes #15489. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15926
- [msbuild] Take the .NET version into account when computing the illink.dll location. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15876
- [msbuild] Update ILRepack location now that we're putting all our packages in a directory in our repo. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15228
- [msbuild] Use 'netstandard2.0' as the target framework in every project. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15796
- [msbuild] Use the full path to the symbols list file. Fixes #15046. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15105
- [mtouch] Preserve the xamarin_dyn_* functions when we're handling Objective-C exceptions by unwinding managed code. Fixes #14193. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14852
- [NET Attribute Conversion][generator] Generate NET style attributes by @chamons inhttps://github.com/dotnet/macios/pull/14779
- [net7.0-xcode14] [ShareWithYou] Fix linker problem due to a bad yy. Fixes #16084 by @vs-mobiletools-engineering-service2 inhttps://github.com/dotnet/macios/pull/16186
- [net7.0-xcode14] Disable objc_msgSend stubs in clang. Fixes #16223. by @vs-mobiletools-engineering-service2 inhttps://github.com/dotnet/macios/pull/16236
- [net7.0] [workload] Update net6.0 KnownFrameworkReference by @vs-mobiletools-engineering-service2 inhttps://github.com/dotnet/macios/pull/15882
- [net7.0] Updates the path to illink when building from Windows by @dalexsoto inhttps://github.com/dotnet/macios/pull/15667
- [Network] Fix a few issues with the callbacks in NWPath. Fixes #13772. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16138
- [NSObject] Unify some code between iOS and macOS. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15302
- [ObjCRuntime] Add missing cases for UIntPtr for determining if a type is a built-in type. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15391
- [ObjCRuntime] Improve the debug logging in the Runtime.CoreCLR.cs file. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14920
- [ObjCRuntime] Specify the string comparison to use when comparing strings in Runtime.IsARM64CallingConvention. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14840
- [opengl] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15174
- [passkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15262
- [perf] Cache
Runtime.IsUserTyperesults by @spouliot inhttps://github.com/dotnet/macios/pull/15149 - [photos] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14861
- [printcore] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14856
- [quicklook] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14865
- [quicklookui] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14862
- [registrar] Improve naming of generated P/Invoke wrappers. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15480
- [replaykit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14863
- [runtime] Add some debugging aid to xamarin_release_managed_ref. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15767
- [runtime] Adjust exception handling to always return managed exceptions if so requested. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15432
- [runtime] Adjust nullability a bit by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15439
- [runtime] Fix 'skip_nested_brace' to not read past the string. Fixes #15253. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15257
- [runtime] Fix build when logging is enabled. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14922
- [Runtime] Fix comparing a pointer to a UTF8 string with a managed string with embedded nulls. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15854
- [runtime] Handle fatal managed exceptions a bit better in the runtime. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15029
- [runtime] Improve error reporting when calling mono_assembly_open. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15139
- [runtime] Only build macOS libraries if we're building for macOS. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15754
- [Runtime] Provide better diagnostics if we fail to invoke a method in CoreCLR. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15043
- [runtime] Remove dead code. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15479
- [runtime] Simplify code to use existing local variable by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15441
- [runtime] Skip passing ICU_DAT_FILE_PATH to the runtime if we don't have an ICU data file. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15085
- [runtime] Store assemblies' MVID in the generated static registrar code. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15795
- [runtime] The InitializationFlagsDynamicRegistrar flag is never used, so remove it by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15435
- [runtime] Use a custom native -> managed trampoline for calling NSObject.InvokeConformsToProtocol from the generated static registrar code. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15830
- [scenekit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14879
- [SceneKit] Fix SCNMatrix4 in .NET. Fixes #15094. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15160
- [searchkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14878
- [security] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14884
- [sensorkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14881
- [social] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14882
- [spritekit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14883
- [src] Adjust AssemblyVersion for .NET with Xcode 13.3. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15497
- [src] Use constants instead of string literals in numerous DllImports. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15521
- [storekit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14896
- [submodules] Fix indentation in config file. by @mandel-macaque inhttps://github.com/dotnet/macios/pull/15618
- [system-dependencies] Check for and install shellcheck and yamllint. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16285
- [systemcomponentmodel] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14886
- [systemconfiguration] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14903
- [Templates] Updated app icons for net6 templates by @davidortinau inhttps://github.com/dotnet/macios/pull/15237
- [tools] Always weak link the SensorKit framework. Fixes #9938. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16215
- [Tools] Enable nullability on Cache.cs. by @mandel-macaque inhttps://github.com/dotnet/macios/pull/14947
- [Tools] Enable nullability on Execution.cs by @mandel-macaque inhttps://github.com/dotnet/macios/pull/14954
- [Tools] Enable nullability on StringUtils. by @mandel-macaque inhttps://github.com/dotnet/macios/pull/14944
- [tools] Fix issue when doing api comparison for PRs with multiple commits by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15710
- [tools] Fix nullability for the Execution.Environment field. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15084
- [tools] Make sure to finish the P/Invoke generator output before running the static registrar. Fixes #15190. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15214
- [tools] Use MONO_AOT_MODE_INTERP_ONLY instead of MONO_AOT_MODE_INTERP for x86_64. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15429
- [tvmlkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14912
- [tvservices] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14928
- [twitter] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14929
- [UIKit] Add attr missing from the review inhttps://github.com/dotnet/macios/pull/15800 by @mandel-macaque inhttps://github.com/dotnet/macios/pull/15835
- [UIKit] Add Constructor for UIHoverGestureRecognizer by @haritha-mohan inhttps://github.com/dotnet/macios/pull/15837
- [UIkit] Add generic callbacks for UIGestureRecognizer by @haritha-mohan inhttps://github.com/dotnet/macios/pull/15846
- [UIKit] Add nullability to file by @haritha-mohan inhttps://github.com/dotnet/macios/pull/15857
- [UIKit] Add Preferred Content Size Wrapper by @haritha-mohan inhttps://github.com/dotnet/macios/pull/15800
- [UIKit] Correct nullability attributes for parts of UIKit by @rpendleton inhttps://github.com/dotnet/macios/pull/15200
- [UIKit] Fix typo in UIGraphics EndPDFContent => EndPDFContext by @dalexsoto inhttps://github.com/dotnet/macios/pull/15381
- [UIKit] Remove the preprocessor directives for watchOS. by @mandel-macaque inhttps://github.com/dotnet/macios/pull/15601
- [UIKit] Wrap the call to UIApplicationMain in a @try/@catch handler. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15746
- [usernotification] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14941
- [videosubscriberaccount] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14948
- [videotoolbox] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14971
- [vision] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14973
- [watchkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14972
- [webkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/15028
- [wkwebkit] Add nullability to (generated and manual) bindings by @tj-devel709 inhttps://github.com/dotnet/macios/pull/14955
- [workloads] Fix iOS.Windows.Sdk.Aliased.net6 pack name by @pjcollins inhttps://github.com/dotnet/macios/pull/15820
- Add 'None' build action to ObjC binding items by @mauroa inhttps://github.com/dotnet/macios/pull/15797
- Add a [NativeName] attribute we can use to declare the native name for a type (enum/struct). by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14918
- Add comment explaining how the marshalling of secitem arrays works by @Therzok inhttps://github.com/dotnet/macios/pull/15513
- Add MetalPerformanceShadersGraph Bindings by @praeclarum inhttps://github.com/dotnet/macios/pull/14303
- Avoid executing _VerifyXcodeVersion when there's no connection to a Mac by @mauroa inhttps://github.com/dotnet/macios/pull/15026
- Bump mono to get debugging fix when using the interpreter. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/15507
- Bump mono to get fix for #12416. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/14934
- Ensure we restore the temp csproj to compute AOT compiler path by @mauroa inhttps://github.com/dotnet/macios/pull/16280
- Fix #9996 and #15622 by @janwiebe-jump inhttps://github.com/dotnet/macios/pull/15642
- Fix crash with NSUrl implicit conversion and null by @chamons inhttps://github.com/dotnet/macios/pull/14860
- Fix introspection selection when old simulators are present. by @mandel-macaque inhttps://github.com/dotnet/macios/pull/15367
- Fix up lifetime handling of SecItemCopyMatching result parameter by @Therzok inhttps://github.com/dotnet/macios/pull/15468
- Fixed remote archiving with iOS app extensions by @mauroa inhttps://github.com/dotnet/macios/pull/15726
- Nullability annotations on NSUrl by @Therzok inhttps://github.com/dotnet/macios/pull/15356
- Provisionator's XcodeSelect now configures Xamarin Settings.plist by @sandyarmstrong inhttps://github.com/dotnet/macios/pull/15079
- Remove duplicated SceneKitAsset declarations by @J-Swift inhttps://github.com/dotnet/macios/pull/15665
- Semi-manually update all 'Starting with VERSION' Obsolete attributes to use 'ObsoletedOSPlatform' by @chamons inhttps://github.com/dotnet/macios/pull/15953
- Set TrimMode to partial if not set by @agocke inhttps://github.com/dotnet/macios/pull/15368
- Use Environment.SpecialFolder.UserProfile, not SpecialFolder.Personal. by @rolfbjarne inhttps://github.com/dotnet/macios/pull/16017
- @agocke made their first contribution inhttps://github.com/dotnet/macios/pull/15368
- @davidortinau made their first contribution inhttps://github.com/dotnet/macios/pull/15237
- @J-Swift made their first contribution inhttps://github.com/dotnet/macios/pull/15665
- @JamieMagee made their first contribution inhttps://github.com/dotnet/macios/pull/15842
- @janwiebe-jump made their first contribution inhttps://github.com/dotnet/macios/pull/15642
- @nathannaveen made their first contribution inhttps://github.com/dotnet/macios/pull/15300
- @naveensrinivasan made their first contribution inhttps://github.com/dotnet/macios/pull/15330
- @praeclarum made their first contribution inhttps://github.com/dotnet/macios/pull/14303
- @simonrozsival made their first contribution inhttps://github.com/dotnet/macios/pull/15117
- iOS and tvOS:https://github.com/dotnet/macios/compare/dotnet-6.0.4xx-xcode14-523...dotnet-7.0.1xx-xcode14-1478
- macOS and Mac Catalyst:https://github.com/dotnet/macios/compare/dotnet-6.0.4xx-465...dotnet-7.0.1xx-xcode13.3-2372
If the root directory of the project file contains anEntitlements.plist file, we'll automatically pick it up and use it for entitlements when signing the app (previously theCodesignEntitlements 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 theEnableDefaultCodesignEntitlements property to false in the project file:
<PropertyGroup> <EnableDefaultCodesignEntitlements>false</EnableDefaultCodesignEntitlements></EnableDefaultCodesignEntitlements>
Ref:https://github.com/dotnet/macios/pull/15729
We've made release builds (builds whereConfiguration=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:
<PropertyGroupCondition="'$(Configuration)' == 'Release'"> <RuntimeIdentifier>maccatalyst-x64</RuntimeIdentifier></PropertyGroup>
Ref:https://github.com/dotnet/macios/issues/15620
We've made theNSArray type implement theIEnumerable<NSObject> interface,so now this works:
vararray=newNSArray();foreach(varelementinarray){// ...}
However, this has a somewhat unfortunate side-effect, because enumerating overan instance of the genericNSArray<TKey> type doesn't compile anymore:
vararray=newNSArray<NSString>();foreach(varelementinarray){// Fails to compile with:// error CS1640: foreach statement cannot operate on variables of type 'NSArray' because it implements multiple instantiations of 'IEnumerable'; try casting to a specific interface instantiation}
This happens because theNSArray<NSString> instance implements bothIEnumerable<NSString> andIEnumerable<NSObject> (sinceNSArray<NSString>is a subclass ofNSArray).
The fix is to cast toIEnumerable<NSString> like this:
vararray=newNSArray<NSString>();foreach(varelementin(IEnumerable<NSString>)array){// This works}
Unfortunately the compiler error when using LINQ is a bit more confusing:
usingSystem.Linq;vararray=newNSArray<NSString>();varlist=array.ToList();// Fails with:// Error CS1061: 'NSArray<NSString>' does not contain a definition for 'ToList' and no accessible extension method 'ToList' accepting a first argument of type 'NSArray<NSString>' could be found (are you missing a using directive or an assembly reference?)
On the other hand the solution is somewhat easier on the eyes, just specific thegeneric type in the call toToList:
usingSystem.Linq;vararray=newNSArray<NSString>();varlist=array.ToList<NSString>();
Note: this does not affect any existing binaries (such as NuGets), it's purelyan issue when building from source code.
Ref:https://github.com/dotnet/macios/pull/16252
We've taken advantage of the newObsoletedOSPlatform attribute in .NET 7 in orderto properly annotate API that has been obsoleted (previously we had to markthese APIs with anUnsupportedOSPlatformattribute, which didn't describe the situation accurately).
A side-effect of this is that the warning number and text has changed.
For example code like this:
Console.WriteLine(NSColor.WindowFrame);
would previously report CA1416:
Error: AppDelegate.cs(20,27): warning CA1416: This call site is reachable on: 'macOS/OSX' 10.14 and later. 'NSColor.WindowFrame.get' is unsupported on: 'macOS/OSX' 11.0.0 and later.and now it reports CA1422:
Error: AppDelegate.cs(20,27): error CA1422: This call site is reachable on: 'macOS/OSX' 10.14 and later. 'NSColor.WindowFrame.get' is obsoleted on: 'macOS/OSX' 11.0 and later (Use 'NSVisualEffectMaterial.Title' instead.).Error: AppDelegate.cs(20,27): error CA1422: This call site is reachable on: 'macOS/OSX' 10.14 and later. 'NSColor.WindowFrame' is obsoleted on: 'macOS/OSX' 11.0 and later (Use 'NSVisualEffectMaterial.Title' instead.).References:
We're aware of an issue where hot reload doesn't work when executing an app onan iOS or tvOS device. This will be fixed in a future service release.
It's currently not possible to run a mobile app (iOS, tvOS) on Windows usingthe command line. Please use an IDE to launch apps from Windows.
Ref:https://github.com/dotnet/macios/issues/16609
The general process is documented here:
https://docs.microsoft.com/en-us/dotnet/maui/ios/cli
but does not include running on an attached device.
To do that, include-p:RuntimeIdentifier=ios-arm64, along with the other parameters.
dotnet build -t:Run -f:net7.0-ios -p:RuntimeIdentifier=ios-arm64 -p:_DeviceName=MY_SPECIFIC_UUID
with MY_SPECIFIC_UUID found asdescribed here but for your device.
Note that thisdoes not work from Windows, only from a Mac.
File issues here:https://github.com/dotnet/macios/issues/new.