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