diff --git a/Make.config b/Make.config index 0082cba9ee1c..5b38ea1a25ed 100644 --- a/Make.config +++ b/Make.config @@ -146,8 +146,8 @@ NUGET_RELEASE_BRANCH=release/11.0.1xx ## ## Note that the prerelease identifier should be as short as possible, because otherwise ## the resulting package name can become too long for MSIs. -NUGET_HARDCODED_PRERELEASE_IDENTIFIER=net11-rc.2 -NUGET_HARDCODED_PRERELEASE_BRANCH=release/11.0.1xx-rc.2 +NUGET_HARDCODED_PRERELEASE_IDENTIFIER=xcode27.1-net11.0 +NUGET_HARDCODED_PRERELEASE_BRANCH=xcode27.1-net11.0 # compute the alphanumeric version of branch names NUGET_RELEASE_BRANCH_ALPHANUMERIC:=$(shell export LANG=C; printf "%s" "$(NUGET_RELEASE_BRANCH)" | tr -c '[a-zA-Z0-9-]' '-') @@ -209,7 +209,7 @@ MACCATALYST_NUGET_VERSION_FULL=$(MACCATALYST_NUGET_VERSION_NO_METADATA)$(NUGET_B -include $(TOP)/configure.inc # Xcode version should have both a major and a minor version (even if the minor version is 0) -XCODE_VERSION=27.0 +XCODE_VERSION=27.1 # CI provisions Xcode from an immutable Azure Artifacts Universal Package instead of # Provisionator. The same feed and package names exist in every supported Azure DevOps # organization; only the organization and project differ, and @@ -221,11 +221,11 @@ XCODE_VERSION=27.0 # which has no access to the internal feeds. XCODE_PACKAGE_FEED=macios-tools-internal XCODE_PACKAGE_NAME=xcode-apple-silicon -XCODE_PACKAGE_VERSION=27.0.0 -XCODE_BUILD_VERSION=27A266a -XCODE_URL=https://bosstoragemirror.blob.core.windows.net/internal-files/xcodes/Xcode_27.xip +XCODE_PACKAGE_VERSION=27.1.0-rc.1 +XCODE_BUILD_VERSION=27A9275 +XCODE_URL=https://bosstoragemirror.blob.core.windows.net/internal-files/xcodes/Xcode_27.1_Release_Candidate.xip ifndef NO_XCODE -XCODE_DEVELOPER_ROOT?=/Applications/Xcode_27.0.0.app/Contents/Developer +XCODE_DEVELOPER_ROOT?=/Applications/Xcode_27.1.0-rc.1.app/Contents/Developer ifneq (OK,$(shell test -d $(abspath $(XCODE_DEVELOPER_ROOT)) && echo OK)) NO_XCODE=1 $(warning The required Xcode ($(XCODE_VERSION)) is not installed in $(XCODE_DEVELOPER_ROOT) - this directory does not exist. Any parts of the build that require Xcode will be disabled.) @@ -297,10 +297,10 @@ MAX_TVOS_DEPLOYMENT_TARGET=$(TVOS_SDK_VERSION) # Decide which OS version we should run the simulator tests in. # Note that this may not necessarily match the SDK version, if there are OS releases with no API changes, then there wouldn't necessarily be a corresponding SDK version. -# If the errors below trigger, update the hardcoded Xcode version check (currently 26.3) to use the current Xcode version, and assign the corresponding max simulator versions. -ifeq ($(XCODE_VERSION),26.3) -MAX_IOS_SIMULATOR_VERSION=26.3 -MAX_TVOS_SIMULATOR_VERSION=26.2 +# If the errors below trigger, update the hardcoded Xcode version check (currently 26.6) to use the current Xcode version, and assign the corresponding max simulator versions. +ifeq ($(XCODE_VERSION),27.1) +MAX_IOS_SIMULATOR_VERSION=27.1 +MAX_TVOS_SIMULATOR_VERSION=27.0 else ifneq ($(XCODE_VERSION),$(IOS_SDK_VERSION)) $(error Check if a max iOS simulator is different than the current SDK version (this happens when there's a new iOS release, with no API changes so no new SDK)) else ifneq ($(XCODE_VERSION),$(TVOS_SDK_VERSION)) @@ -317,8 +317,8 @@ DOTNET_MIN_MACCATALYST_SDK_VERSION=17.0 DOTNET_MIN_MACOS_SDK_VERSION=14.0 # The min simulator version available in the Xcode we're using -MIN_IOS_SIMULATOR_VERSION=16.0 -MIN_TVOS_SIMULATOR_VERSION=16.0 +MIN_IOS_SIMULATOR_VERSION=17.0 +MIN_TVOS_SIMULATOR_VERSION=17.0 # These are the simulator package ids for the versions above EXTRA_SIMULATORS=iOS:MIN_IOS_SIMULATOR_VERSION tvOS:MIN_TVOS_SIMULATOR_VERSION diff --git a/Make.versions b/Make.versions index 27b07da8ad23..15c920fdd1a8 100644 --- a/Make.versions +++ b/Make.versions @@ -21,14 +21,14 @@ # IMPORTANT: There must be *no* managed API differences unless the two first # numbers (major.minor) changes. -IOS_NUGET_OS_VERSION=27.0 +IOS_NUGET_OS_VERSION=27.1 TVOS_NUGET_OS_VERSION=27.0 MACOS_NUGET_OS_VERSION=27.0 MACCATALYST_NUGET_OS_VERSION=27.0 # The following are the OS versions we first supported with the current .NET version. # These versions must *not* change with minor .NET updates, only major .NET releases. -IOS_TARGET_PLATFORM_VERSION_LIBRARY=27.0 +IOS_TARGET_PLATFORM_VERSION_LIBRARY=27.1 TVOS_TARGET_PLATFORM_VERSION_LIBRARY=27.0 MACOS_TARGET_PLATFORM_VERSION_LIBRARY=27.0 MACCATALYST_TARGET_PLATFORM_VERSION_LIBRARY=27.0 diff --git a/builds/Versions-iOS.plist.in b/builds/Versions-iOS.plist.in index 2d3928bfc2a4..d618ac39831d 100644 --- a/builds/Versions-iOS.plist.in +++ b/builds/Versions-iOS.plist.in @@ -31,6 +31,7 @@ 26.4 26.5 27.0 + 27.1 SupportedTargetPlatformVersions @@ -90,6 +91,7 @@ 26.4 26.5 27.0 + 27.1 RecommendedXcodeVersion diff --git a/src/UIKit/UIEnums.cs b/src/UIKit/UIEnums.cs index e7eafe65c1a5..fe127156153a 100644 --- a/src/UIKit/UIEnums.cs +++ b/src/UIKit/UIEnums.cs @@ -3820,6 +3820,10 @@ public enum UIWindowSceneSessionRole { [TV (26, 0), iOS (26, 0), MacCatalyst (26, 0)] [Field ("UIWindowSceneSessionRoleAssistiveAccessApplication")] AssistiveAccessApplication, + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Field ("UIWindowSceneSessionRoleCameraCaptureAccessory")] + CameraCaptureAccessory, } [MacCatalyst (13, 1)] @@ -4932,6 +4936,68 @@ public enum UITextAttachmentViewProviderReusePolicy : ulong { EditingInlineParagraphs = 1uL << 1, } + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Native] + public enum UIArrangementViewControllerViewPlacement : long { + None = 0, + Primary = 1, + Secondary = 2, + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Native] + public enum UIBarButtonItemAxisBehavior : long { + Automatic = 0, + [NoTV] + HorizontalOnly = 1, + [NoTV] + VerticalPreferred = 2, + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Native] + public enum UIHingeStatus : long { + Unknown = 0, + Closed = 1, + PartiallyOpen = 2, + FullyOpen = 3, + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Native] + public enum UIVerticalBarBehavior : long { + Automatic = 0, + Disabled = 1, + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Native] + public enum UIVerticalBarCompressionBehavior : long { + Automatic = 0, + [NoTV] + PrefersBarItems = 1, + [NoTV] + PrefersTabBar = 2, + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Native] + public enum UIVerticalBarEdge : long { + Unspecified = 0, + [NoTV] + Leading = 1, + [NoTV] + Trailing = 2, + } + + [Flags] + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Native] + public enum UIViewReservedRegionQueryOptions : ulong { + None = 0, + IncludeInactive = 1uL << 0, + } + // NSInteger -> NSTextTable.h [MacCatalyst (13, 1)] [Native] diff --git a/src/avfoundation.cs b/src/avfoundation.cs index 5a6fa841825d..8562f9822a68 100644 --- a/src/avfoundation.cs +++ b/src/avfoundation.cs @@ -18320,6 +18320,16 @@ enum AVCaptureDeviceType { [NoTV, NoMacCatalyst, NoiOS] [Field ("AVCaptureDeviceTypeDeskViewCamera")] DeskViewCamera, + + /// A built-in outer ultra-wide camera discoverable through a device discovery session. + [NoTV, NoMac, NoMacCatalyst, iOS (27, 1)] + [Field ("AVCaptureDeviceTypeBuiltInOuterUltraWideCamera")] + BuiltInOuterUltraWideCamera, + + /// A built-in inner ultra-wide camera discoverable through a device discovery session. + [NoTV, NoMac, NoMacCatalyst, iOS (27, 1)] + [Field ("AVCaptureDeviceTypeBuiltInInnerUltraWideCamera")] + BuiltInInnerUltraWideCamera, } [TV (17, 0)] // matches API that uses it. diff --git a/src/avkit.cs b/src/avkit.cs index 90d4a135a00a..87f7515be0b3 100644 --- a/src/avkit.cs +++ b/src/avkit.cs @@ -2,6 +2,8 @@ // avkit.cs: Definitions for AVKit.cs // // Copyright 2014-2015 Xamarin Inc +using System.Collections.Generic; + using CoreGraphics; using CoreImage; using CoreMedia; @@ -1702,4 +1704,58 @@ interface AVPlaybackUserInterfaceControllable : AVPlaybackUserInterfaceVolumeControllable, AVPlaybackUserInterfaceMetadataProviding { } + + [NoTV, NoMac, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface AVCaptureDeviceDescriptor { + [BindAs (typeof (AVCaptureDeviceType))] + [Export ("deviceType")] + NSString DeviceType { get; } + + [Export ("mediaTypes", ArgumentSemantic.Copy)] + NSSet WeakMediaTypes { get; } + + [Wrap ("WeakMediaTypes.ToHashSet (v => AVMediaTypesExtensions.GetValue (v))")] + HashSet MediaTypes { get; } + + [Export ("position")] + AVCaptureDevicePosition Position { get; } + + [Export ("uniqueID")] + string UniqueId { get; } + + [Export ("localizedName")] + string LocalizedName { get; } + } + + [NoTV, NoMac, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface AVCaptureDeviceDirectionMap { + [Export ("forwardFacingDeviceDescriptors", ArgumentSemantic.Copy)] + AVCaptureDeviceDescriptor [] ForwardFacingDeviceDescriptors { get; } + + [Export ("backwardFacingDeviceDescriptors", ArgumentSemantic.Copy)] + AVCaptureDeviceDescriptor [] BackwardFacingDeviceDescriptors { get; } + } + + [NoTV, NoMac, NoMacCatalyst, iOS (27, 1)] + delegate void AVCaptureDeviceDirectionCoordinatorChangeHandler (AVCaptureDeviceDirectionMap deviceDirections); + + [NoTV, NoMac, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface AVCaptureDeviceDirectionCoordinator { + /// Creates a coordinator that tracks device directions relative to a view. + /// The view used to determine camera direction. + /// The device types to observe. + /// An optional callback for direction changes, delivered on the main queue. + /// Create this coordinator on the main thread. + [Export ("initWithView:deviceTypes:changeHandler:")] + NativeHandle Constructor (UIView view, [BindAs (typeof (AVCaptureDeviceType []))] NSString [] deviceTypes, [NullAllowed] AVCaptureDeviceDirectionCoordinatorChangeHandler changeHandler); + + [Export ("deviceDirections")] + AVCaptureDeviceDirectionMap DeviceDirections { get; } + } } diff --git a/src/uikit.cs b/src/uikit.cs index a00f49c22389..ad78b198d1b5 100644 --- a/src/uikit.cs +++ b/src/uikit.cs @@ -5498,6 +5498,10 @@ interface UIBarButtonItem : NSCoding [TV (27, 0), iOS (27, 0), MacCatalyst (27, 0)] [Export ("paddingRemoved")] bool PaddingRemoved { [Bind ("isPaddingRemoved")] get; [Bind ("setPaddingRemoved:")] set; } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Export ("axisBehavior", ArgumentSemantic.Assign)] + UIBarButtonItemAxisBehavior AxisBehavior { get; set; } } [Static] @@ -10603,6 +10607,16 @@ interface UIViewLayoutRegion { [Static] [Export ("readableContentLayoutRegionWithCornerAdaptation:")] UIViewLayoutRegion CreateReadableContentLayoutRegion (UIViewLayoutRegionAdaptivityAxis cornerAdaptivityAxis); + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Static] + [Export ("layoutRegionForBarOnEdge:extent:")] + UIViewLayoutRegion CreateBarLayoutRegion (UIRectEdge edge, nfloat extent); + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Static] + [Export ("layoutRegionForBarOnDirectionalEdge:extent:")] + UIViewLayoutRegion CreateBarLayoutRegion (NSDirectionalRectEdge edge, nfloat extent); } [iOS (26, 0), TV (26, 0), MacCatalyst (26, 0)] @@ -13780,6 +13794,10 @@ interface UINavigationItem : NSCoding { [Export ("title", ArgumentSemantic.Copy)] string Title { get; set; } + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Export ("verticalBarCompressionBehavior", ArgumentSemantic.Assign)] + UIVerticalBarCompressionBehavior VerticalBarCompressionBehavior { get; set; } + [NoTV] [MacCatalyst (13, 1)] [NullAllowed] // by default this property is null @@ -22554,6 +22572,14 @@ interface UIView : UIAppearance, UIAppearanceContainer, UIAccessibility, UIDynam [Export ("layoutGuideForLayoutRegion:")] UILayoutGuide GetLayoutGuide (UIViewLayoutRegion layoutRegion); + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Export ("reservedRegionsOfKind:")] + UIViewReservedRegion [] GetReservedRegions (UIViewReservedRegionKind kind); + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Export ("reservedRegionsOfKind:options:")] + UIViewReservedRegion [] GetReservedRegions (UIViewReservedRegionKind kind, UIViewReservedRegionQueryOptions options); + [iOS (26, 0), TV (26, 0), MacCatalyst (26, 0)] [Export ("cornerConfiguration", ArgumentSemantic.Copy)] UICornerConfiguration CornerConfiguration { get; set; } @@ -23518,6 +23544,22 @@ interface UIViewController : NSCoding, UIAppearanceContainer, UIContentContainer [NoTV, NoMacCatalyst, iOS (27, 0)] [Export ("unregisterSceneAccessory:")] void UnregisterSceneAccessory (UISceneAccessoryRegistration registration); + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [NullAllowed, Export ("arrangementViewController")] + UIArrangementViewController ArrangementViewController { get; } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Export ("preferredVerticalBarBehavior")] + UIVerticalBarBehavior PreferredVerticalBarBehavior { get; } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [NullAllowed, Export ("childViewControllerForPreferredVerticalBarBehavior")] + UIViewController ChildViewControllerForPreferredVerticalBarBehavior { get; } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Export ("setNeedsUpdateOfVerticalBarConfiguration")] + void SetNeedsUpdateOfVerticalBarConfiguration (); } [MacCatalyst (13, 1)] @@ -23947,6 +23989,15 @@ partial interface UITraitCollection : NSCopying, NSSecureCoding { Class [] SystemTraitsAffectingImageLookup2 { get; } #endif + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Static] + [Export ("systemTraitsAffectingVerticalBarEdge")] + Class [] SystemTraitsAffectingVerticalBarEdge { get; } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [Export ("verticalBarEdge")] + UIVerticalBarEdge VerticalBarEdge { get; } + [TV (17, 0), iOS (17, 0), MacCatalyst (17, 0)] [Export ("typesettingLanguage")] string TypesettingLanguage { get; } @@ -32323,6 +32374,16 @@ interface UISceneAccessory { [Static] [Export ("externalNonInteractiveSceneAccessoryWithConfiguration:userInfo:")] UISceneAccessory CreateExternalNonInteractive (UISceneConfiguration sceneConfiguration, NSObject userInfo); + + [iOS (27, 1)] + [Static] + [Export ("cameraCaptureSceneAccessoryWithConfiguration:")] + UISceneAccessory CreateCameraCapture (UISceneConfiguration sceneConfiguration); + + [iOS (27, 1)] + [Static] + [Export ("cameraCaptureSceneAccessoryWithConfiguration:userInfo:")] + UISceneAccessory CreateCameraCapture (UISceneConfiguration sceneConfiguration, NSObject userInfo); } [NoTV, NoMacCatalyst, iOS (27, 0)] @@ -38647,4 +38708,235 @@ interface UIColorEffect { UIColorEffect Create ([NullAllowed] UIColor color); } + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UIArrangementViewState : NSCopying { + [Export ("zIndex")] + nint ZIndex { get; } + + [Export ("splitAxis")] + UIAxis SplitAxis { get; } + + [Export ("hidden")] + bool Hidden { [Bind ("isHidden")] get; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UIArrangement : NSCopying { } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (UIViewController))] + [DisableDefaultCtor] + interface UIArrangementViewController { + [DesignatedInitializer] + [Export ("init")] + NativeHandle Constructor (); + + [Export ("updateArrangement:")] + void UpdateArrangement (UIArrangement arrangement); + + [Export ("updateArrangement:animated:")] + void UpdateArrangement (UIArrangement arrangement, bool animated); + + [Export ("stateForPlacement:")] + [return: NullAllowed] + UIArrangementViewState GetState (UIArrangementViewControllerViewPlacement placement); + + [Export ("viewControllerForPlacement:")] + [return: NullAllowed] + UIViewController GetViewController (UIArrangementViewControllerViewPlacement placement); + + [Export ("placementForViewController:")] + UIArrangementViewControllerViewPlacement GetPlacement (UIViewController viewController); + + [Export ("setViewController:forPlacement:")] + void SetViewController ([NullAllowed] UIViewController viewController, UIArrangementViewControllerViewPlacement placement); + + [Export ("setViewController:forPlacement:animated:")] + void SetViewController ([NullAllowed] UIViewController viewController, UIArrangementViewControllerViewPlacement placement, bool animated); + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UIOverlayArrangementViewProperties : NSCopying { + [DesignatedInitializer] + [Export ("init")] + NativeHandle Constructor (); + + [Export ("edge", ArgumentSemantic.Assign)] + NSDirectionalRectEdge Edge { get; set; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (UIArrangement))] + [DisableDefaultCtor] + interface UIOverlayArrangement { + [Static] + [Export ("overlayArrangement")] + UIOverlayArrangement Create (); + + [Export ("axes", ArgumentSemantic.Assign)] + UIAxis Axes { get; set; } + + [Export ("defaultViewProperties", ArgumentSemantic.Copy)] + UIOverlayArrangementViewProperties DefaultViewProperties { get; } + + [Export ("setViewProperties:forPlacement:")] + void SetViewProperties (UIOverlayArrangementViewProperties viewProperties, UIArrangementViewControllerViewPlacement placement); + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UISplitArrangementDimension : NSCopying { + [Static] + [Export ("automaticDimension")] + UISplitArrangementDimension CreateAutomatic (); + + [Static] + [Export ("intrinsicDimension")] + UISplitArrangementDimension CreateIntrinsic (); + + [Static] + [Export ("fractionalDimension:")] + UISplitArrangementDimension CreateFractional (nfloat fraction); + + [Static] + [Export ("absoluteDimension:")] + UISplitArrangementDimension CreateAbsolute (nfloat absoluteValue); + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UISplitArrangementDimensionRange : NSCopying { + [DesignatedInitializer] + [Export ("init")] + NativeHandle Constructor (); + + [Export ("minimum", ArgumentSemantic.Copy)] + UISplitArrangementDimension Minimum { get; set; } + + [Export ("preferred", ArgumentSemantic.Copy)] + UISplitArrangementDimension Preferred { get; set; } + + [Export ("maximum", ArgumentSemantic.Copy)] + UISplitArrangementDimension Maximum { get; set; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UISplitArrangementViewProperties : NSCopying { + [DesignatedInitializer] + [Export ("init")] + NativeHandle Constructor (); + + [Export ("width", ArgumentSemantic.Copy)] + UISplitArrangementDimensionRange Width { get; set; } + + [Export ("height", ArgumentSemantic.Copy)] + UISplitArrangementDimensionRange Height { get; set; } + + [Export ("layoutPriority")] + nfloat LayoutPriority { get; set; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (UIArrangement))] + [DisableDefaultCtor] + interface UISplitArrangement { + [Static] + [Export ("splitArrangement")] + UISplitArrangement Create (); + + [Export ("axes", ArgumentSemantic.Assign)] + UIAxis Axes { get; set; } + + [Export ("defaultViewProperties", ArgumentSemantic.Copy)] + UISplitArrangementViewProperties DefaultViewProperties { get; } + + [Export ("setViewProperties:forPlacement:")] + void SetViewProperties (UISplitArrangementViewProperties viewProperties, UIArrangementViewControllerViewPlacement placement); + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UIHinge : NSCopying { + [Export ("status")] + UIHingeStatus Status { get; } + + [Export ("angle")] + nfloat Angle { get; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UIHingeInteractionUpdate : NSCopying { + [NullAllowed, Export ("hinge", ArgumentSemantic.Copy)] + UIHinge Hinge { get; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + delegate void UIHingeInteractionUpdateHandler (UIHingeInteraction interaction, UIHingeInteractionUpdate update); + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface UIHingeInteraction : UIInteraction { + [DesignatedInitializer] + [Export ("initWithUpdateHandler:")] + NativeHandle Constructor (UIHingeInteractionUpdateHandler updateHandler); + + [Export ("enabled")] + bool Enabled { [Bind ("isEnabled")] get; set; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + [Sealed] + interface UIViewReservedRegion : NSCopying { + [Export ("identifier")] + UIViewReservedRegionIdentifier Identifier { get; } + + [Export ("kind")] + UIViewReservedRegionKind Kind { get; } + + [Export ("frame")] + CGRect Frame { get; } + + [Export ("margins")] + UIEdgeInsets Margins { get; } + + [Export ("active")] + bool Active { [Bind ("isActive")] get; } + } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + [Sealed] + interface UIViewReservedRegionIdentifier : NSCopying { } + + [NoTV, NoMacCatalyst, iOS (27, 1)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + [Sealed] + interface UIViewReservedRegionKind : NSCopying { + [Static] + [Export ("occlusionRegionKind")] + UIViewReservedRegionKind CreateOcclusion (); + + [Static] + [Export ("divisionRegionKind")] + UIViewReservedRegionKind CreateDivision (); + } + } diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index 084f5ac924ae..c77f22dc4d5d 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -6706,6 +6706,9 @@ F:UIKit.UIApplicationCategoryDefaultErrorCode.RateLimited F:UIKit.UIApplicationCategoryDefaultStatus.IsDefault F:UIKit.UIApplicationCategoryDefaultStatus.NotDefault F:UIKit.UIApplicationCategoryDefaultStatus.Unavailable +F:UIKit.UIArrangementViewControllerViewPlacement.None +F:UIKit.UIArrangementViewControllerViewPlacement.Primary +F:UIKit.UIArrangementViewControllerViewPlacement.Secondary F:UIKit.UIAxis.Both F:UIKit.UIAxis.Horizontal F:UIKit.UIAxis.Neither @@ -6714,6 +6717,9 @@ F:UIKit.UIBandSelectionInteractionState.Began F:UIKit.UIBandSelectionInteractionState.Ended F:UIKit.UIBandSelectionInteractionState.Possible F:UIKit.UIBandSelectionInteractionState.Selecting +F:UIKit.UIBarButtonItemAxisBehavior.Automatic +F:UIKit.UIBarButtonItemAxisBehavior.HorizontalOnly +F:UIKit.UIBarButtonItemAxisBehavior.VerticalPreferred F:UIKit.UIBarButtonSystemItem.Close F:UIKit.UIBarButtonSystemItem.WritingTools F:UIKit.UIBarMinimizationBehavior.Automatic @@ -6888,6 +6894,10 @@ F:UIKit.UIGlassEffectStyle.Regular F:UIKit.UIHdrHeadroomUsageLimit.Active F:UIKit.UIHdrHeadroomUsageLimit.Inactive F:UIKit.UIHdrHeadroomUsageLimit.Unspecified +F:UIKit.UIHingeStatus.Closed +F:UIKit.UIHingeStatus.FullyOpen +F:UIKit.UIHingeStatus.PartiallyOpen +F:UIKit.UIHingeStatus.Unknown F:UIKit.UIImageDynamicRange.ConstrainedHigh F:UIKit.UIImageDynamicRange.High F:UIKit.UIImageDynamicRange.Standard @@ -7480,6 +7490,14 @@ F:UIKit.UIUserInterfaceIdiom.Vision F:UIKit.UIUserInterfaceLevel.Base F:UIKit.UIUserInterfaceLevel.Elevated F:UIKit.UIUserInterfaceLevel.Unspecified +F:UIKit.UIVerticalBarBehavior.Automatic +F:UIKit.UIVerticalBarBehavior.Disabled +F:UIKit.UIVerticalBarCompressionBehavior.Automatic +F:UIKit.UIVerticalBarCompressionBehavior.PrefersBarItems +F:UIKit.UIVerticalBarCompressionBehavior.PrefersTabBar +F:UIKit.UIVerticalBarEdge.Leading +F:UIKit.UIVerticalBarEdge.Trailing +F:UIKit.UIVerticalBarEdge.Unspecified F:UIKit.UIVibrancyEffectStyle.Fill F:UIKit.UIVibrancyEffectStyle.Label F:UIKit.UIVibrancyEffectStyle.QuaternaryLabel @@ -7491,6 +7509,8 @@ F:UIKit.UIVibrancyEffectStyle.TertiaryLabel F:UIKit.UIViewLayoutRegionAdaptivityAxis.Horizontal F:UIKit.UIViewLayoutRegionAdaptivityAxis.None F:UIKit.UIViewLayoutRegionAdaptivityAxis.Vertical +F:UIKit.UIViewReservedRegionQueryOptions.IncludeInactive +F:UIKit.UIViewReservedRegionQueryOptions.None F:UIKit.UIWindowSceneDismissalAnimation.Commit F:UIKit.UIWindowSceneDismissalAnimation.Decline F:UIKit.UIWindowSceneDismissalAnimation.Standard @@ -7499,6 +7519,7 @@ F:UIKit.UIWindowScenePresentationStyle.Prominent F:UIKit.UIWindowScenePresentationStyle.Standard F:UIKit.UIWindowSceneSessionRole.Application F:UIKit.UIWindowSceneSessionRole.AssistiveAccessApplication +F:UIKit.UIWindowSceneSessionRole.CameraCaptureAccessory F:UIKit.UIWindowSceneSessionRole.CarTemplateApplication F:UIKit.UIWindowSceneSessionRole.ExternalDisplay F:UIKit.UIWindowSceneSessionRole.ExternalDisplayNonInteractive @@ -26018,6 +26039,14 @@ M:UIKit.UIApplicationShortcutIcon.FromTemplateImageName(System.String) M:UIKit.UIApplicationShortcutIcon.FromType(UIKit.UIApplicationShortcutIconType) M:UIKit.UIApplicationShortcutItem.#ctor(System.String,System.String,System.String,UIKit.UIApplicationShortcutIcon,Foundation.NSDictionary{Foundation.NSString,Foundation.NSObject}) M:UIKit.UIApplicationShortcutItem.#ctor(System.String,System.String) +M:UIKit.UIArrangementViewController.#ctor +M:UIKit.UIArrangementViewController.GetPlacement(UIKit.UIViewController) +M:UIKit.UIArrangementViewController.GetState(UIKit.UIArrangementViewControllerViewPlacement) +M:UIKit.UIArrangementViewController.GetViewController(UIKit.UIArrangementViewControllerViewPlacement) +M:UIKit.UIArrangementViewController.SetViewController(UIKit.UIViewController,UIKit.UIArrangementViewControllerViewPlacement,System.Boolean) +M:UIKit.UIArrangementViewController.SetViewController(UIKit.UIViewController,UIKit.UIArrangementViewControllerViewPlacement) +M:UIKit.UIArrangementViewController.UpdateArrangement(UIKit.UIArrangement,System.Boolean) +M:UIKit.UIArrangementViewController.UpdateArrangement(UIKit.UIArrangement) M:UIKit.UIAttachmentBehavior.#ctor(UIKit.IUIDynamicItem,CoreGraphics.CGPoint) M:UIKit.UIAttachmentBehavior.#ctor(UIKit.IUIDynamicItem,UIKit.IUIDynamicItem) M:UIKit.UIAttachmentBehavior.#ctor(UIKit.IUIDynamicItem,UIKit.UIOffset,CoreGraphics.CGPoint) @@ -26732,6 +26761,7 @@ M:UIKit.UIGraphicsRendererContext.StrokeRect(CoreGraphics.CGRect) M:UIKit.UIGravityBehavior.#ctor(UIKit.IUIDynamicItem[]) M:UIKit.UIGravityBehavior.AddItem(UIKit.IUIDynamicItem) M:UIKit.UIGravityBehavior.RemoveItem(UIKit.IUIDynamicItem) +M:UIKit.UIHingeInteraction.#ctor(UIKit.UIHingeInteractionUpdateHandler) M:UIKit.UIHoverAutomaticEffect.Create M:UIKit.UIHoverGestureRecognizer.#ctor(Foundation.NSObject,ObjCRuntime.Selector) M:UIKit.UIHoverGestureRecognizer.#ctor(System.Action) @@ -26976,6 +27006,9 @@ M:UIKit.UINib.Instantiate(Foundation.NSObject,Foundation.NSDictionary) M:UIKit.UINotificationFeedbackGenerator.GetFeedbackGenerator(UIKit.UIView) M:UIKit.UINotificationFeedbackGenerator.NotificationOccurred(UIKit.UINotificationFeedbackType,CoreGraphics.CGPoint) M:UIKit.UINotificationFeedbackGenerator.NotificationOccurred(UIKit.UINotificationFeedbackType) +M:UIKit.UIOverlayArrangement.Create +M:UIKit.UIOverlayArrangement.SetViewProperties(UIKit.UIOverlayArrangementViewProperties,UIKit.UIArrangementViewControllerViewPlacement) +M:UIKit.UIOverlayArrangementViewProperties.#ctor M:UIKit.UIPageControl.#ctor(CoreGraphics.CGRect) M:UIKit.UIPageControl.GetCurrentPageIndicatorImage(System.IntPtr) M:UIKit.UIPageControl.GetIndicatorImage(System.IntPtr) @@ -27261,6 +27294,8 @@ M:UIKit.UIScene.CompleteStateRestoration M:UIKit.UIScene.ExtendStateRestoration M:UIKit.UIScene.OpenUrl(Foundation.NSUrl,UIKit.UISceneOpenExternalUrlOptions,System.Action{System.Boolean}) M:UIKit.UIScene.OpenUrlAsync(Foundation.NSUrl,UIKit.UISceneOpenExternalUrlOptions) +M:UIKit.UISceneAccessory.CreateCameraCapture(UIKit.UISceneConfiguration,Foundation.NSObject) +M:UIKit.UISceneAccessory.CreateCameraCapture(UIKit.UISceneConfiguration) M:UIKit.UISceneAccessory.CreateExternalNonInteractive(UIKit.UISceneConfiguration,Foundation.NSObject) M:UIKit.UISceneAccessory.CreateExternalNonInteractive(UIKit.UISceneConfiguration) M:UIKit.UISceneClosureConfirmation.Create(System.String,System.String,UIKit.UIAlertAction[]) @@ -27432,6 +27467,14 @@ M:UIKit.UISliderTick.Create(System.Single,System.String,UIKit.UIImage) M:UIKit.UISliderTrackConfiguration.Create(System.IntPtr) M:UIKit.UISliderTrackConfiguration.Create(UIKit.UISliderTick[]) M:UIKit.UISnapBehavior.#ctor(UIKit.IUIDynamicItem,CoreGraphics.CGPoint) +M:UIKit.UISplitArrangement.Create +M:UIKit.UISplitArrangement.SetViewProperties(UIKit.UISplitArrangementViewProperties,UIKit.UIArrangementViewControllerViewPlacement) +M:UIKit.UISplitArrangementDimension.CreateAbsolute(System.Runtime.InteropServices.NFloat) +M:UIKit.UISplitArrangementDimension.CreateAutomatic +M:UIKit.UISplitArrangementDimension.CreateFractional(System.Runtime.InteropServices.NFloat) +M:UIKit.UISplitArrangementDimension.CreateIntrinsic +M:UIKit.UISplitArrangementDimensionRange.#ctor +M:UIKit.UISplitArrangementViewProperties.#ctor M:UIKit.UISplitViewController.#ctor(System.String,Foundation.NSBundle) M:UIKit.UISplitViewController.#ctor(UIKit.UISplitViewControllerStyle) M:UIKit.UISplitViewController.GetViewController(UIKit.UISplitViewControllerColumn) @@ -28037,6 +28080,8 @@ M:UIKit.UIView.GetDirectionalEdgeInsets(UIKit.UIViewLayoutRegion) M:UIKit.UIView.GetEdgeInsets(UIKit.UIViewLayoutRegion) M:UIKit.UIView.GetFrame(UIKit.UIView) M:UIKit.UIView.GetLayoutGuide(UIKit.UIViewLayoutRegion) +M:UIKit.UIView.GetReservedRegions(UIKit.UIViewReservedRegionKind,UIKit.UIViewReservedRegionQueryOptions) +M:UIKit.UIView.GetReservedRegions(UIKit.UIViewReservedRegionKind) M:UIKit.UIView.GetSoundIdentifier(UIKit.UIFocusUpdateContext) M:UIKit.UIView.GetUserInterfaceLayoutDirection(UIKit.UISemanticContentAttribute,UIKit.UIUserInterfaceLayoutDirection) M:UIKit.UIView.GetUserInterfaceLayoutDirection(UIKit.UISemanticContentAttribute) @@ -28167,6 +28212,7 @@ M:UIKit.UIViewController.SetNeedsUpdateOfPrefersInterfaceOrientationLocked M:UIKit.UIViewController.SetNeedsUpdateOfPrefersPointerLocked M:UIKit.UIViewController.SetNeedsUpdateOfScreenEdgesDeferringSystemGestures M:UIKit.UIViewController.SetNeedsUpdateOfSupportedInterfaceOrientations +M:UIKit.UIViewController.SetNeedsUpdateOfVerticalBarConfiguration M:UIKit.UIViewController.SetNeedsUpdateProperties M:UIKit.UIViewController.SetNeedsUserInterfaceAppearanceUpdate M:UIKit.UIViewController.SetOverrideTraitCollection(UIKit.UITraitCollection,UIKit.UIViewController) @@ -28205,6 +28251,8 @@ M:UIKit.UIViewController.WillMoveToParentViewController(UIKit.UIViewController) M:UIKit.UIViewController.WillRotate(UIKit.UIInterfaceOrientation,System.Double) M:UIKit.UIViewControllerTransition.Zoom(UIKit.UIZoomTransitionOptions,System.Func{UIKit.UIZoomTransitionSourceViewProviderContext,UIKit.UIView}) M:UIKit.UIViewControllerTransition.Zoom(UIKit.UIZoomTransitionOptions,UIKit.UIViewControllerTransitionZoomBarButtonHandler) +M:UIKit.UIViewLayoutRegion.CreateBarLayoutRegion(UIKit.NSDirectionalRectEdge,System.Runtime.InteropServices.NFloat) +M:UIKit.UIViewLayoutRegion.CreateBarLayoutRegion(UIKit.UIRectEdge,System.Runtime.InteropServices.NFloat) M:UIKit.UIViewLayoutRegion.CreateMarginsLayoutRegion(UIKit.UIViewLayoutRegionAdaptivityAxis) M:UIKit.UIViewLayoutRegion.CreateReadableContentLayoutRegion(UIKit.UIViewLayoutRegionAdaptivityAxis) M:UIKit.UIViewLayoutRegion.CreateSafeAreaLayoutRegion(UIKit.UIViewLayoutRegionAdaptivityAxis) @@ -28212,6 +28260,8 @@ M:UIKit.UIViewPropertyAnimator.#ctor(System.Double,CoreGraphics.CGPoint,CoreGrap M:UIKit.UIViewPropertyAnimator.#ctor(System.Double,UIKit.IUITimingCurveProvider) M:UIKit.UIViewPropertyAnimator.#ctor(System.Double,UIKit.UIViewAnimationCurve,System.Action) M:UIKit.UIViewPropertyAnimator.CreateRunningPropertyAnimator(System.Double,System.Double,UIKit.UIViewAnimationOptions,System.Action,System.Action{UIKit.UIViewAnimatingPosition}) +M:UIKit.UIViewReservedRegionKind.CreateDivision +M:UIKit.UIViewReservedRegionKind.CreateOcclusion M:UIKit.UIVisualEffectView.#ctor(UIKit.UIVisualEffect) M:UIKit.UIWebView.#ctor(CoreGraphics.CGRect) M:UIKit.UIWebView.EvaluateJavascript(System.String) @@ -35970,6 +36020,15 @@ P:AVFoundation.IAVVideoCompositing.CanConformColorOfSourceFrames P:AVFoundation.IAVVideoCompositing.SupportsHdrSourceFrames P:AVFoundation.IAVVideoCompositing.SupportsSourceTaggedBuffers P:AVFoundation.IAVVideoCompositing.SupportsWideColorSourceFrames +P:AVKit.AVCaptureDeviceDescriptor.DeviceType +P:AVKit.AVCaptureDeviceDescriptor.LocalizedName +P:AVKit.AVCaptureDeviceDescriptor.MediaTypes +P:AVKit.AVCaptureDeviceDescriptor.Position +P:AVKit.AVCaptureDeviceDescriptor.UniqueId +P:AVKit.AVCaptureDeviceDescriptor.WeakMediaTypes +P:AVKit.AVCaptureDeviceDirectionCoordinator.DeviceDirections +P:AVKit.AVCaptureDeviceDirectionMap.BackwardFacingDeviceDescriptors +P:AVKit.AVCaptureDeviceDirectionMap.ForwardFacingDeviceDescriptors P:AVKit.AVCaptureEvent.Phase P:AVKit.AVCaptureEvent.ShouldPlaySound P:AVKit.AVCaptureEventInteraction.DefaultCaptureSoundDisabled @@ -49402,6 +49461,9 @@ P:UIKit.UIApplicationShortcutItem.LocalizedTitle P:UIKit.UIApplicationShortcutItem.TargetContentIdentifier P:UIKit.UIApplicationShortcutItem.Type P:UIKit.UIApplicationShortcutItem.UserInfo +P:UIKit.UIArrangementViewState.Hidden +P:UIKit.UIArrangementViewState.SplitAxis +P:UIKit.UIArrangementViewState.ZIndex P:UIKit.UIAttachmentBehavior.AnchorPoint P:UIKit.UIAttachmentBehavior.AttachedBehaviorType P:UIKit.UIAttachmentBehavior.AttachmentRange @@ -49451,6 +49513,7 @@ P:UIKit.UIBarAppearance.OverrideUserInterfaceStyle P:UIKit.UIBarAppearance.ShadowColor P:UIKit.UIBarAppearance.ShadowImage P:UIKit.UIBarButtonItem.Action +P:UIKit.UIBarButtonItem.AxisBehavior P:UIKit.UIBarButtonItem.Badge P:UIKit.UIBarButtonItem.ButtonGroup P:UIKit.UIBarButtonItem.ChangesSelectionAsPrimaryAction @@ -50212,6 +50275,10 @@ P:UIKit.UIGravityBehavior.Angle P:UIKit.UIGravityBehavior.GravityDirection P:UIKit.UIGravityBehavior.Items P:UIKit.UIGravityBehavior.Magnitude +P:UIKit.UIHinge.Angle +P:UIKit.UIHinge.Status +P:UIKit.UIHingeInteraction.Enabled +P:UIKit.UIHingeInteractionUpdate.Hinge P:UIKit.UIHoverGestureRecognizer.AltitudeAngle P:UIKit.UIHoverGestureRecognizer.RollAngle P:UIKit.UIHoverGestureRecognizer.ZOffset @@ -50638,6 +50705,7 @@ P:UIKit.UINavigationItem.Title P:UIKit.UINavigationItem.TitleMenuProvider P:UIKit.UINavigationItem.TitleView P:UIKit.UINavigationItem.TrailingItemGroups +P:UIKit.UINavigationItem.VerticalBarCompressionBehavior P:UIKit.UINavigationItem.WeakRenameDelegate P:UIKit.UINSIntegerTraitDefinition.AffectsColorAppearance P:UIKit.UINSIntegerTraitDefinition.DefaultValue @@ -50649,6 +50717,9 @@ P:UIKit.UIObjectTraitDefinition.Identifier P:UIKit.UIObjectTraitDefinition.Name P:UIKit.UIOpenUrlContext.Options P:UIKit.UIOpenUrlContext.Url +P:UIKit.UIOverlayArrangement.Axes +P:UIKit.UIOverlayArrangement.DefaultViewProperties +P:UIKit.UIOverlayArrangementViewProperties.Edge P:UIKit.UIPageControl.AllowsContinuousInteraction P:UIKit.UIPageControl.BackgroundStyle P:UIKit.UIPageControl.CurrentPage @@ -51149,6 +51220,14 @@ P:UIKit.UISliderTrackConfiguration.Ticks P:UIKit.UISmartReplySuggestion.SmartReply P:UIKit.UISnapBehavior.Damping P:UIKit.UISnapBehavior.SnapPoint +P:UIKit.UISplitArrangement.Axes +P:UIKit.UISplitArrangement.DefaultViewProperties +P:UIKit.UISplitArrangementDimensionRange.Maximum +P:UIKit.UISplitArrangementDimensionRange.Minimum +P:UIKit.UISplitArrangementDimensionRange.Preferred +P:UIKit.UISplitArrangementViewProperties.Height +P:UIKit.UISplitArrangementViewProperties.LayoutPriority +P:UIKit.UISplitArrangementViewProperties.Width P:UIKit.UISplitViewController.DisplayMode P:UIKit.UISplitViewController.DisplayModeButtonItem P:UIKit.UISplitViewController.DisplayModeButtonVisibility @@ -51685,12 +51764,14 @@ P:UIKit.UITraitCollection.SplitViewControllerLayoutEnvironment P:UIKit.UITraitCollection.SystemPrefersReducedResourceUsage P:UIKit.UITraitCollection.SystemTraitsAffectingColorAppearance2 P:UIKit.UITraitCollection.SystemTraitsAffectingImageLookup2 +P:UIKit.UITraitCollection.SystemTraitsAffectingVerticalBarEdge P:UIKit.UITraitCollection.TabAccessoryEnvironment P:UIKit.UITraitCollection.ToolbarItemPresentationSize P:UIKit.UITraitCollection.TypesettingLanguage P:UIKit.UITraitCollection.UserInterfaceIdiom P:UIKit.UITraitCollection.UserInterfaceLevel P:UIKit.UITraitCollection.UserInterfaceStyle +P:UIKit.UITraitCollection.VerticalBarEdge P:UIKit.UITraitCollection.VerticalSizeClass P:UIKit.UITraitDisplayGamut.AffectsColorAppearance P:UIKit.UITraitDisplayGamut.DefaultValue @@ -51922,11 +52003,13 @@ P:UIKit.UIViewConfigurationState.Selected P:UIKit.UIViewConfigurationState.TraitCollection P:UIKit.UIViewController.ActivePresentationController P:UIKit.UIViewController.AdditionalSafeAreaInsets +P:UIKit.UIViewController.ArrangementViewController P:UIKit.UIViewController.AutomaticallyAdjustsScrollViewInsets P:UIKit.UIViewController.AutomaticallyForwardAppearanceAndRotationMethodsToChildViewControllers P:UIKit.UIViewController.BottomLayoutGuide P:UIKit.UIViewController.ChildViewControllerForHomeIndicatorAutoHidden P:UIKit.UIViewController.ChildViewControllerForPointerLock +P:UIKit.UIViewController.ChildViewControllerForPreferredVerticalBarBehavior P:UIKit.UIViewController.ChildViewControllerForScreenEdgesDeferringSystemGestures P:UIKit.UIViewController.ChildViewControllerForTouchBar P:UIKit.UIViewController.ChildViewControllerForUserInterfaceStyle @@ -51962,6 +52045,7 @@ P:UIKit.UIViewController.PreferredScreenEdgesDeferringSystemGestures P:UIKit.UIViewController.PreferredStatusBarUpdateAnimation P:UIKit.UIViewController.PreferredTransition P:UIKit.UIViewController.PreferredUserInterfaceStyle +P:UIKit.UIViewController.PreferredVerticalBarBehavior P:UIKit.UIViewController.PrefersHomeIndicatorAutoHidden P:UIKit.UIViewController.PrefersPointerLocked P:UIKit.UIViewController.PresentationController @@ -52006,6 +52090,11 @@ P:UIKit.UIViewPropertyAnimator.Interruptible P:UIKit.UIViewPropertyAnimator.PausesOnCompletion P:UIKit.UIViewPropertyAnimator.ScrubsLinearly P:UIKit.UIViewPropertyAnimator.TimingParameters +P:UIKit.UIViewReservedRegion.Active +P:UIKit.UIViewReservedRegion.Frame +P:UIKit.UIViewReservedRegion.Identifier +P:UIKit.UIViewReservedRegion.Kind +P:UIKit.UIViewReservedRegion.Margins P:UIKit.UIVisualEffectView.ContentView P:UIKit.UIVisualEffectView.Effect P:UIKit.UIWebView.AllowsInlineMediaPlayback @@ -55086,6 +55175,10 @@ T:AVFoundation.CMTagCollectionVideoOutputPreset T:AVFoundation.CMTagCollectionVideoOutputPreset_Extensions T:AVKit.AVAudioSession_AVPlaybackRouteSelecting T:AVKit.AVAudioSessionRouteSelection +T:AVKit.AVCaptureDeviceDescriptor +T:AVKit.AVCaptureDeviceDirectionCoordinator +T:AVKit.AVCaptureDeviceDirectionCoordinatorChangeHandler +T:AVKit.AVCaptureDeviceDirectionMap T:AVKit.AVCaptureEvent T:AVKit.AVCaptureEventInteraction T:AVKit.AVCaptureEventPhase @@ -59337,6 +59430,10 @@ T:UIKit.UIApplication_DefaultApplication T:UIKit.UIApplicationCategory T:UIKit.UIApplicationCategoryDefaultErrorCode T:UIKit.UIApplicationCategoryDefaultStatus +T:UIKit.UIArrangement +T:UIKit.UIArrangementViewController +T:UIKit.UIArrangementViewControllerViewPlacement +T:UIKit.UIArrangementViewState T:UIKit.UIAttachmentBehavior T:UIKit.UIAxis T:UIKit.UIBackgroundConfiguration @@ -59347,6 +59444,7 @@ T:UIKit.UIBandSelectionInteractionState T:UIKit.UIBarAppearance T:UIKit.UIBarButtonItem T:UIKit.UIBarButtonItemAppearance +T:UIKit.UIBarButtonItemAxisBehavior T:UIKit.UIBarButtonItemBadge T:UIKit.UIBarButtonItemGroup T:UIKit.UIBarButtonItemStateAppearance @@ -59548,6 +59646,11 @@ T:UIKit.UIGravityBehavior T:UIKit.UIGuidedAccessAccessibilityFeature T:UIKit.UIGuidedAccessErrorCode T:UIKit.UIHdrHeadroomUsageLimit +T:UIKit.UIHinge +T:UIKit.UIHingeInteraction +T:UIKit.UIHingeInteractionUpdate +T:UIKit.UIHingeInteractionUpdateHandler +T:UIKit.UIHingeStatus T:UIKit.UIHoverAutomaticEffect T:UIKit.UIHoverGestureRecognizer T:UIKit.UIHoverHighlightEffect @@ -59632,6 +59735,8 @@ T:UIKit.UINavigationItemStyle T:UIKit.UINib T:UIKit.UINSToolbarItemPresentationSize T:UIKit.UIOpenUrlContext +T:UIKit.UIOverlayArrangement +T:UIKit.UIOverlayArrangementViewProperties T:UIKit.UIPageControl T:UIKit.UIPageControlBackgroundStyle T:UIKit.UIPageControlDirection @@ -59747,6 +59852,10 @@ T:UIKit.UISliderTick T:UIKit.UISliderTrackConfiguration T:UIKit.UISmartReplySuggestion T:UIKit.UISnapBehavior +T:UIKit.UISplitArrangement +T:UIKit.UISplitArrangementDimension +T:UIKit.UISplitArrangementDimensionRange +T:UIKit.UISplitArrangementViewProperties T:UIKit.UISplitViewController T:UIKit.UISplitViewControllerBackgroundStyle T:UIKit.UISplitViewControllerCanCollapsePredicate @@ -59907,6 +60016,9 @@ T:UIKit.UIUpdateLink T:UIKit.UIUpdateLinkCallback T:UIKit.UIUserInterfaceActiveAppearance T:UIKit.UIUserInterfaceLevel +T:UIKit.UIVerticalBarBehavior +T:UIKit.UIVerticalBarCompressionBehavior +T:UIKit.UIVerticalBarEdge T:UIKit.UIVibrancyEffect T:UIKit.UIVibrancyEffectStyle T:UIKit.UIView @@ -59918,6 +60030,10 @@ T:UIKit.UIViewControllerTransitionZoomBarButtonHandler T:UIKit.UIViewLayoutRegion T:UIKit.UIViewLayoutRegionAdaptivityAxis T:UIKit.UIViewPropertyAnimator +T:UIKit.UIViewReservedRegion +T:UIKit.UIViewReservedRegionIdentifier +T:UIKit.UIViewReservedRegionKind +T:UIKit.UIViewReservedRegionQueryOptions T:UIKit.UIVisualEffect T:UIKit.UIVisualEffectView T:UIKit.UIWebLoaderControl diff --git a/tests/dotnet/MySimpleApp/AppDelegate.cs b/tests/dotnet/MySimpleApp/AppDelegate.cs index cf709bcc61b8..a04f7c165a82 100644 --- a/tests/dotnet/MySimpleApp/AppDelegate.cs +++ b/tests/dotnet/MySimpleApp/AppDelegate.cs @@ -11,6 +11,16 @@ static int Main (string [] args) if (Environment.GetEnvironmentVariable ("CRASH_ON_LAUNCH") == "1") Environment.FailFast ("Crashing on launch as requested by the CRASH_ON_LAUNCH environment variable."); +#if KEEP_LARIGHT + if (OperatingSystem.IsIOSVersionAtLeast (17)) + GC.KeepAlive (typeof (LocalAuthentication.LARight)); +#elif KEEP_LAPERSISTEDRIGHT + if (OperatingSystem.IsIOSVersionAtLeast (17)) + GC.KeepAlive (typeof (LocalAuthentication.LAPersistedRight)); +#elif KEEP_LACONTEXT + using (var context = new LocalAuthentication.LAContext ()) + Console.WriteLine (context.BiometryType); +#endif Console.WriteLine (Environment.GetEnvironmentVariable ("MAGIC_WORD")); diff --git a/tests/dotnet/MySimpleApp/shared.csproj b/tests/dotnet/MySimpleApp/shared.csproj index e0ff23120023..fc32f05e2460 100644 --- a/tests/dotnet/MySimpleApp/shared.csproj +++ b/tests/dotnet/MySimpleApp/shared.csproj @@ -6,6 +6,7 @@ MySimpleApp com.xamarin.mysimpleapp 3.14 + $(DefineConstants);$(AdditionalDefineConstants) diff --git a/tests/dotnet/UnitTests/ApplePlatformExtensions.cs b/tests/dotnet/UnitTests/ApplePlatformExtensions.cs index 31be7824f901..663ec90192f7 100644 --- a/tests/dotnet/UnitTests/ApplePlatformExtensions.cs +++ b/tests/dotnet/UnitTests/ApplePlatformExtensions.cs @@ -61,7 +61,7 @@ public void DefaultLibraryTargetPlatformVersion (ApplePlatform platform) // point we should be supporting "ios19.0" (for .NET 10). Assert.Ignore ("This test only applies to stable releases."); } - Assert.That (platform.GetDefaultTargetPlatformVersionLibrary (), Does.EndWith (".0"), "Default TPV for a library must end with .0"); + Assert.That (platform.GetDefaultTargetPlatformVersionLibrary (), platform == ApplePlatform.iOS ? Is.EqualTo ("27.1") : Does.EndWith (".0"), "Default TPV for a library"); } [TestCase (ApplePlatform.iOS)] diff --git a/tests/dotnet/UnitTests/ProjectTest.cs b/tests/dotnet/UnitTests/ProjectTest.cs index 159b5cd5c05f..d0dce70900f6 100644 --- a/tests/dotnet/UnitTests/ProjectTest.cs +++ b/tests/dotnet/UnitTests/ProjectTest.cs @@ -3688,6 +3688,7 @@ public void AppendRuntimeIdentifierToOutputPath_DisableDirectoryBuildProps (Appl "/System/Library/Frameworks/LinkPresentation.framework/LinkPresentation", "/System/Library/Frameworks/LinkSecurity.framework/LinkSecurity", "/System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication", + "/System/Library/Frameworks/LocalAuthenticationEmbeddedUI.framework/LocalAuthenticationEmbeddedUI", "/System/Library/Frameworks/MapKit.framework/MapKit", "/System/Library/Frameworks/MediaAccessibility.framework/MediaAccessibility", "/System/Library/Frameworks/MediaPlayer.framework/MediaPlayer", @@ -4435,6 +4436,41 @@ void LinkedWithNativeLibraries (ApplePlatform platform, string runtimeIdentifier actualFrameworks.OrderBy (v => v).ToArray (), Is.EquivalentTo (expectedFrameworks.OrderBy (v => v).ToArray ()), "Frameworks"); + if (platform == ApplePlatform.iOS) + AssertLocalAuthenticationUILinked (appExecutable, linkMode == "None"); + } + + [TestCase ("KEEP_LARIGHT", true)] + [TestCase ("KEEP_LAPERSISTEDRIGHT", true)] + [TestCase ("KEEP_LACONTEXT", false)] + public void LocalAuthenticationUILinking (string defineConstant, bool expected) + { + var platform = ApplePlatform.iOS; + var runtimeIdentifier = "ios-arm64"; + Configuration.IgnoreIfIgnoredPlatform (platform); + Configuration.AssertRuntimeIdentifiersAvailable (platform, runtimeIdentifier); + var projectPath = GetProjectPath ("MySimpleApp", runtimeIdentifiers: runtimeIdentifier, platform: platform, out var appPath); + Clean (projectPath); + var properties = GetDefaultProperties (runtimeIdentifier); + properties ["AdditionalDefineConstants"] = defineConstant; + properties ["MtouchLink"] = "Full"; + properties ["LinkMode"] = "Full"; + properties ["UseInterpreter"] = "true"; + DotNet.AssertBuild (projectPath, properties); + var executable = GetNativeExecutable (platform, appPath); + Assert.That (GetLinkedWithFrameworks (executable), Does.Contain ("/System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication"), "LocalAuthentication must be retained"); + AssertLocalAuthenticationUILinked (executable, expected); + } + + static void AssertLocalAuthenticationUILinked (string executable, bool expected) + { + const string library = "/System/Library/Frameworks/LocalAuthenticationEmbeddedUI.framework/LocalAuthenticationEmbeddedUI"; + foreach (var file in MachO.Read (executable)) { + var commands = file.load_commands.OfType ().Where (v => v.name == library).ToArray (); + Assert.That (commands.Length, Is.EqualTo (expected ? 1 : 0), "LocalAuthenticationEmbeddedUI load commands"); + if (expected) + Assert.That (commands [0].cmd, Is.EqualTo ((uint) MachO.LoadCommands.LoadWeakDylib), "LocalAuthenticationEmbeddedUI must be weakly linked"); + } } static HashSet GetLinkedWithFrameworks (string path) diff --git a/tests/introspection/ApiBaseTest.cs b/tests/introspection/ApiBaseTest.cs index 2c59f52b1ae3..b3997e28d813 100644 --- a/tests/introspection/ApiBaseTest.cs +++ b/tests/introspection/ApiBaseTest.cs @@ -203,6 +203,18 @@ protected bool SkipDueToRejectedTypes (Type type) } } + protected static bool SkipMissingSimulatorField (PropertyInfo property) + { + if (!TestRuntime.IsSimulator || PlatformInfo.Host.Version is not { Major: 17, Minor: 0 }) + return false; + + if (property.DeclaringType?.FullName != "CoreMedia.CMFormatDescriptionExtensionKeys") + return false; + + // Declared for 17.0, but these symbols are missing from the iOS/tvOS 17.0 simulators. + return property.Name is "HasAdditionalViews" or "HasLeftStereoEyeView" or "HasRightStereoEyeView"; + } + public bool MemberHasObsolete (MemberInfo member) { return TestRuntime.HasOSPlatformAttributeForCurrentPlatform (member); diff --git a/tests/introspection/ApiFieldTest.cs b/tests/introspection/ApiFieldTest.cs index ebaa10269211..1a0e7a658cd2 100644 --- a/tests/introspection/ApiFieldTest.cs +++ b/tests/introspection/ApiFieldTest.cs @@ -52,6 +52,9 @@ protected virtual bool Skip (Type type) /// Property to be tested protected virtual bool Skip (PropertyInfo property) { + if (SkipMissingSimulatorField (property)) + return true; + switch (property.DeclaringType?.Name) { case "AVPlayerInterstitialEventObserver": switch (property.Name) { // deprecated diff --git a/tests/introspection/ApiSimulatorAvailabilityTest.cs b/tests/introspection/ApiSimulatorAvailabilityTest.cs index 9b85c0ad2b65..f5269daa57e8 100644 --- a/tests/introspection/ApiSimulatorAvailabilityTest.cs +++ b/tests/introspection/ApiSimulatorAvailabilityTest.cs @@ -35,7 +35,7 @@ protected virtual bool SkipPInvoke (MethodInfo mi) protected virtual bool SkipField (PropertyInfo pi) { - return false; + return SkipMissingSimulatorField (pi); } protected virtual bool SkipLibrary (string? libraryName) diff --git a/tests/introspection/iOSApiSelectorTest.cs b/tests/introspection/iOSApiSelectorTest.cs index 38908a5e83da..1415ffa07c58 100644 --- a/tests/introspection/iOSApiSelectorTest.cs +++ b/tests/introspection/iOSApiSelectorTest.cs @@ -9,6 +9,7 @@ using System.Reflection; using UIKit; +using Xamarin.Tests; #if HAS_WATCHCONNECTIVITY using WatchConnectivity; #endif @@ -31,7 +32,17 @@ public iOSApiSelectorTest () protected override bool Skip (Type type, string selectorName) { #if !__MACCATALYST__ + var isSimulator17 = TestRuntime.IsSimulator && PlatformInfo.Host.Version is { Major: 17, Minor: 0 }; switch (type.Name) { + // Declared for 17.0, but these HDR selectors are missing from the iOS/tvOS 17.0 simulators. + case "PHImageRequestOptions": + if (isSimulator17 && (selectorName == "targetHDRHeadroom" || selectorName == "setTargetHDRHeadroom:")) + return true; + break; + case "PHLivePhotoRequestOptions": + if (isSimulator17 && (selectorName == "preferHDR" || selectorName == "setPreferHDR:")) + return true; + break; #if __TVOS__ case "AVAssetWriter": switch (selectorName) { diff --git a/tests/xharness/Jenkins/Jenkins.cs b/tests/xharness/Jenkins/Jenkins.cs index d6def49f8554..55960201244d 100644 --- a/tests/xharness/Jenkins/Jenkins.cs +++ b/tests/xharness/Jenkins/Jenkins.cs @@ -83,7 +83,7 @@ public Jenkins (Harness harness, IMlaunchProcessManager processManager, IResultP this.processManager = processManager ?? throw new ArgumentNullException (nameof (processManager)); this.TunnelBore = tunnelBore ?? throw new ArgumentNullException (nameof (tunnelBore)); Harness = harness ?? throw new ArgumentNullException (nameof (harness)); - Simulators = new SimulatorLoader (processManager, new SimulatorSelector ()); + Simulators = new SimulatorLoader (processManager, new SimulatorSelector (processManager.XcodeRoot)); Devices = new HardwareDeviceLoader (processManager); testSelector = new TestSelector (this, new GitHub (harness, processManager)); testVariationsFactory = new TestVariationsFactory (this, processManager); diff --git a/tests/xharness/SimulatorLoaderFactory.cs b/tests/xharness/SimulatorLoaderFactory.cs index 40c1aa2e9e5c..53d78b6941a2 100644 --- a/tests/xharness/SimulatorLoaderFactory.cs +++ b/tests/xharness/SimulatorLoaderFactory.cs @@ -1,7 +1,10 @@ using System; +using System.IO; +using System.Xml; using Microsoft.DotNet.XHarness.iOS.Shared; using Microsoft.DotNet.XHarness.iOS.Shared.Execution; using Microsoft.DotNet.XHarness.iOS.Shared.Hardware; +using Microsoft.DotNet.XHarness.iOS.Shared.Utilities; #nullable enable @@ -19,10 +22,23 @@ public SimulatorLoaderFactory (IMlaunchProcessManager processManager) this.processManager = processManager ?? throw new ArgumentNullException (nameof (processManager)); } - public ISimulatorLoader CreateLoader () => new SimulatorLoader (processManager, new SimulatorSelector ()); + public ISimulatorLoader CreateLoader () => new SimulatorLoader (processManager, new SimulatorSelector (processManager.XcodeRoot)); } public class SimulatorSelector : DefaultSimulatorSelector { + readonly string xcodeBuildVersion; + + public SimulatorSelector (string xcodeRoot) + { + ArgumentNullException.ThrowIfNull (xcodeRoot); + + var versionPlistPath = Path.Combine (xcodeRoot, "Contents", "version.plist"); + var versionPlist = new XmlDocument (); + versionPlist.LoadWithoutNetworkAccess (versionPlistPath); + xcodeBuildVersion = versionPlist.SelectSingleNode ("/plist/dict/key[. = 'ProductBuildVersion']/following-sibling::string[1]")?.InnerText + ?? throw new InvalidOperationException ($"Could not find ProductBuildVersion in '{versionPlistPath}'."); + } + public override string GetDeviceType (TestTargetOs target, bool minVersion) { return target.Platform switch { @@ -43,6 +59,11 @@ string GetiOSDeviceType (Version iOSVersion) if (iOSVersion.Major < 16) return "com.apple.CoreSimulator.SimDeviceType.iPhone-11"; + // Xcode 27.1 beta 1's iOS 27.1 runtime only supports iPhone Duo. + // The release candidate's 27.1 runtime has the same device restriction. + if (iOSVersion.Major == 27 && iOSVersion.Minor == 1 && (xcodeBuildVersion == "27A9269" || xcodeBuildVersion == "27A9275")) + return "com.apple.CoreSimulator.SimDeviceType.iPhone-Duo"; + return "com.apple.CoreSimulator.SimDeviceType.iPhone-14"; } diff --git a/tools/common/Frameworks.cs b/tools/common/Frameworks.cs index f0b08407cb13..6bef4a422c78 100644 --- a/tools/common/Frameworks.cs +++ b/tools/common/Frameworks.cs @@ -804,6 +804,7 @@ public static bool TryGetFramework (Application app, TypeDefinition? td, [NotNul static void Gather (Application app, IEnumerable assemblies, HashSet frameworks, HashSet weak_frameworks, Func include_framework) { var namespaces = new HashSet (); + var hasLARight = false; // Process our product assembly + any assembly with the [ObjectiveCFramework] attribute, and collect all the namespaces that are used in those assemblies. // For non-product assemblies, we only look at types with the [ObjectiveCFramework] attribute. @@ -827,6 +828,12 @@ static void Gather (Application app, IEnumerable assemblies, if (TryGetFramework (app, td, out string? framework)) { namespaces.Add (framework); + if (td.Namespace == "LocalAuthentication" && td.Name == "LARight") { +#if !LEGACY_TOOLS + if (app.Profile.IsProductAssembly (assembly)) +#endif + hasLARight = true; + } continue; } } @@ -855,6 +862,10 @@ static void Gather (Application app, IEnumerable assemblies, var weak_link = framework.AlwaysWeakLinked || app.DeploymentTarget < framework.Version; var add_to = weak_link ? weak_frameworks : frameworks; add_to.Add (framework.Name); + + // LARight's presentation-context authorization is implemented by this framework's category. + if (app.Platform == ApplePlatform.iOS && hasLARight && nspace == "LocalAuthentication" && app.SdkVersion is { Major: >= 16 }) + weak_frameworks.Add ("LocalAuthenticationEmbeddedUI"); } // Make sure there are no duplicates between frameworks and weak frameworks. diff --git a/tools/common/SdkVersions.cs b/tools/common/SdkVersions.cs index 16b9238201d9..46848aa57418 100644 --- a/tools/common/SdkVersions.cs +++ b/tools/common/SdkVersions.cs @@ -10,9 +10,9 @@ namespace Xamarin { static class SdkVersions { - public const string Xcode = "27.0"; + public const string Xcode = "27.1"; public const string OSX = "27.0"; - public const string iOS = "27.0"; + public const string iOS = "27.1"; public const string TVOS = "27.0"; public const string MacCatalyst = "27.0"; @@ -25,21 +25,21 @@ static class SdkVersions { public const string DotNetMinTVOS = "15.0"; public const string DotNetMinMacCatalyst = "17.0"; - public const string MiniOSSimulator = "16.0"; - public const string MinTVOSSimulator = "16.0"; + public const string MiniOSSimulator = "17.0"; + public const string MinTVOSSimulator = "17.0"; - public const string MaxiOSSimulator = "27.0"; + public const string MaxiOSSimulator = "27.1"; public const string MaxTVOSSimulator = "27.0"; - public const string MaxiOSDeploymentTarget = "27.0"; + public const string MaxiOSDeploymentTarget = "27.1"; public const string MaxTVOSDeploymentTarget = "27.0"; - public const string TargetPlatformVersionExecutableiOS = "27.0"; + public const string TargetPlatformVersionExecutableiOS = "27.1"; public const string TargetPlatformVersionExecutabletvOS = "27.0"; public const string TargetPlatformVersionExecutablemacOS = "27.0"; public const string TargetPlatformVersionExecutableMacCatalyst = "27.0"; - public const string TargetPlatformVersionLibraryiOS = "27.0"; + public const string TargetPlatformVersionLibraryiOS = "27.1"; public const string TargetPlatformVersionLibrarytvOS = "27.0"; public const string TargetPlatformVersionLibrarymacOS = "27.0"; public const string TargetPlatformVersionLibraryMacCatalyst = "27.0"; diff --git a/tools/devops/automation/templates/variables/common.yml b/tools/devops/automation/templates/variables/common.yml index 1565eea3e3fe..35e804d3087a 100644 --- a/tools/devops/automation/templates/variables/common.yml +++ b/tools/devops/automation/templates/variables/common.yml @@ -115,4 +115,4 @@ variables: value: 15.6 - name: xcodeChannel - value: Stable + value: Beta