Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save vs-mobiletools-engineering-service2/284adeb6cfc308458789229ca6781be8 to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/284adeb6cfc308458789229ca6781be8 to your computer and use it in GitHub Desktop.
dotnet-legacy-iOS API diff from stable
title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.iOS.Stable.Legacy SDK API diff: 15.1.0 vs 15.3.0
List of API changes between Xamarin.iOS.Stable.Legacy versions 15.1.0 and 15.3.0.
spouliot
sepoulio
10/26/2021
article
fd49f634-1548-0ac9-a2f5-c7780088907e
xamarin

Xamarin.iOS.Stable.Legacy SDK API diff: 15.1.0 vs 15.3.0

Namespace AVFoundation

Type Changed: AVFoundation.AVAssetExportSession

Added property:

public static Foundation.NSString PresetAppleProRes4444Lpcm { get; }

Type Changed: AVFoundation.AVCaptureDevice

Added properties:

public virtual AVCaptureDevice ActivePrimaryConstituentDevice { get; }
public virtual AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions ActivePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions { get; }
public virtual AVCapturePrimaryConstituentDeviceSwitchingBehavior ActivePrimaryConstituentDeviceSwitchingBehavior { get; }
public virtual AVCaptureDevice[] FallbackPrimaryConstituentDevices { get; set; }
public virtual AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions PrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions { get; }
public virtual AVCapturePrimaryConstituentDeviceSwitchingBehavior PrimaryConstituentDeviceSwitchingBehavior { get; }
public virtual AVCaptureDevice[] SupportedFallbackPrimaryConstituentDevices { get; }

Added methods:

protected override void Dispose (bool disposing);
public virtual void SetPrimaryConstituentDeviceSwitchingBehavior (AVCapturePrimaryConstituentDeviceSwitchingBehavior switchingBehavior, AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions restrictedSwitchingBehaviorConditions);

Type Changed: AVFoundation.AVCaptureMovieFileOutput

Added properties:

public virtual AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions PrimaryConstituentDeviceRestrictedSwitchingBehaviorConditionsForRecording { get; }
public virtual AVCapturePrimaryConstituentDeviceSwitchingBehavior PrimaryConstituentDeviceSwitchingBehaviorForRecording { get; }
public virtual bool PrimaryConstituentDeviceSwitchingBehaviorForRecordingEnabled { get; set; }

Added method:

public virtual void SetPrimaryConstituentDeviceSwitchingBehaviorForRecording (AVCapturePrimaryConstituentDeviceSwitchingBehavior switchingBehavior, AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions restrictedSwitchingBehaviorConditions);

New Type: AVFoundation.AVAssetExportPresetApple

public static class AVAssetExportPresetApple {
	// properties
	public static Foundation.NSString ProRes422Lpcm { get; }
}

New Type: AVFoundation.AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions

[Serializable]
[Flags]
public enum AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions {
	ExposureModeChanged = 4,
	FocusModeChanged = 2,
	None = 0,
	VideoZoomChanged = 1,
}

New Type: AVFoundation.AVCapturePrimaryConstituentDeviceSwitchingBehavior

[Serializable]
public enum AVCapturePrimaryConstituentDeviceSwitchingBehavior {
	Auto = 1,
	Locked = 3,
	Restricted = 2,
	Unsupported = 0,
}

Namespace AddressBook

Type Changed: AddressBook.ABAddressBook

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected override void ~ABAddressBook ();

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Type Changed: AddressBook.ABMultiValue`1

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~ABMultiValue ();

Type Changed: AddressBook.ABRecord

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected override void ~ABRecord ();

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Namespace CoreFoundation

Type Changed: CoreFoundation.CFAllocator

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Obsoleted constructors:

 [Obsolete ("Use the overload that takes a 'bool owns' parameter instead.")]
 public CFAllocator (IntPtr handle);

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CFAllocator ();

Type Changed: CoreFoundation.CFArray

Added methods:

public static T[] ArrayFromHandle<T> (IntPtr handle, bool releaseHandle);
public static T[] ArrayFromHandleFunc<T> (IntPtr handle, System.Func<System.IntPtr,T> createObject);
public static T[] ArrayFromHandleFunc<T> (IntPtr handle, System.Func<System.IntPtr,T> createObject, bool releaseHandle);
public static IntPtr Create (string[] values);
public static CFArray FromStrings (string[] items);
public static string[] StringArrayFromHandle (IntPtr handle, bool releaseHandle);

Type Changed: CoreFoundation.CFBundle

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CFBundle ();

Type Changed: CoreFoundation.CFMachPort

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Modified constructors:

-public CFMachPort (IntPtr handle, bool ownsHandle)
+public CFMachPort (IntPtr handle, bool owns)

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
public virtual void Dispose (bool disposing);
protected override void ~CFMachPort ();

Type Changed: CoreFoundation.CFMessagePort

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

protected void Check ();
public virtual void Dispose ();
protected override void ~CFMessagePort ();

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Type Changed: CoreFoundation.CFNotificationCenter

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CFNotificationCenter ();

Type Changed: CoreFoundation.CFPropertyList

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
public virtual void Dispose (bool disposing);
protected override void ~CFPropertyList ();

Type Changed: CoreFoundation.CFReadStream

Added interface:

ICFType

Type Changed: CoreFoundation.CFSocket

Added interface:

ICFType

Type Changed: CoreFoundation.CFStream

Added interface:

ICFType

Type Changed: CoreFoundation.CFType

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Added interfaces:

ICFType
ObjCRuntime.INativeObject
System.IDisposable

Type Changed: CoreFoundation.CFWriteStream

Added interface:

ICFType

Type Changed: CoreFoundation.NativeObject

Added constructor:

protected NativeObject (IntPtr handle, bool owns, bool verify);

Namespace CoreGraphics

Type Changed: CoreGraphics.CGColor

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGColor ();

Added methods:

protected override void Release ();
protected override void Retain ();

Type Changed: CoreGraphics.CGColorConverter

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGColorConverter ();

Type Changed: CoreGraphics.CGColorSpace

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGColorSpace ();

Added methods:

protected override void Release ();
protected override void Retain ();

Type Changed: CoreGraphics.CGContext

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGContext ();

Added methods:

protected override void Release ();
protected override void Retain ();

Type Changed: CoreGraphics.CGDataConsumer

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGDataConsumer ();

Added methods:

protected override void Release ();
protected override void Retain ();

Type Changed: CoreGraphics.CGDataProvider

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGDataProvider ();

Added methods:

protected override void Release ();
protected override void Retain ();

Type Changed: CoreGraphics.CGFunction

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGFunction ();

Added methods:

protected override void Release ();
protected override void Retain ();

Type Changed: CoreGraphics.CGShading

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGShading ();

Added methods:

protected override void Release ();
protected override void Retain ();

Namespace CoreMedia

Type Changed: CoreMedia.CMBlockBuffer

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CMBlockBuffer ();

Type Changed: CoreMedia.CMBufferQueue

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected override void ~CMBufferQueue ();

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Type Changed: CoreMedia.CMFormatDescription

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CMFormatDescription ();

Type Changed: CoreMedia.CMSampleBuffer

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected override void ~CMSampleBuffer ();

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Type Changed: CoreMedia.CMVideoCodecType

Added values:

DepthHevc = 1684369512,
DisparityHevc = 1684632424,

Namespace CoreServices

Type Changed: CoreServices.CFHTTPAuthentication

Added interface:

CoreFoundation.ICFType

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

protected void CheckHandle ();
public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CFHTTPAuthentication ();

Type Changed: CoreServices.CFHTTPMessage

Added interface:

CoreFoundation.ICFType

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

protected void CheckHandle ();
public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CFHTTPMessage ();

Type Changed: CoreServices.CFHTTPStream

Added interface:

CoreFoundation.ICFType

Namespace GameController

New Type: GameController.GCProductCategory

public static class GCProductCategory {
	// properties
	public static Foundation.NSString CoalescedRemote { get; }
	public static Foundation.NSString ControlCenterRemote { get; }
	public static Foundation.NSString DualSense { get; }
	public static Foundation.NSString DualShock4 { get; }
	public static Foundation.NSString Keyboard { get; }
	public static Foundation.NSString MFi { get; }
	public static Foundation.NSString Mouse { get; }
	public static Foundation.NSString SiriRemote1stGen { get; }
	public static Foundation.NSString SiriRemote2ndGen { get; }
	public static Foundation.NSString UniversalElectronicsRemote { get; }
	public static Foundation.NSString XboxOne { get; }
}

Namespace Metal

Type Changed: Metal.MTLTextureDescriptor

Added property:

public virtual MTLTextureCompressionType CompressionType { get; set; }

Type Changed: Metal.MTLTexture_Extensions

Added method:

public static MTLTextureCompressionType GetCompressionType (this IMTLTexture This);

New Type: Metal.MTLTextureCompressionType

[Serializable]
public enum MTLTextureCompressionType {
	Lossless = 0,
	Lossy = 1,
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.BaseWrapper

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

protected override IntPtr Handle { get; set; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~BaseWrapper ();

Added methods:

protected override void Release ();
protected override void Retain ();

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "15.1.0";
+public const string Version = "15.3.0";

Type Changed: ObjCRuntime.Dlfcn

Added methods:

public static System.UIntPtr GetUIntPtr (IntPtr handle, string symbol);
public static void SetUIntPtr (IntPtr handle, string symbol, System.UIntPtr value);

Namespace Security

Type Changed: Security.SecPolicy

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~SecPolicy ();

Type Changed: Security.SecTrust

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~SecTrust ();

Type Changed: Security.SslContext

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected override void ~SslContext ();

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Namespace System

Type Changed: System.nuint

Added methods:

public static nuint op_Explicit (UIntPtr v);
public static UIntPtr op_Explicit (nuint v);

Namespace SystemConfiguration

Type Changed: SystemConfiguration.NetworkReachability

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~NetworkReachability ();

Namespace VideoToolbox

Type Changed: VideoToolbox.VTDecompressionSession

Removed methods:

public void Dispose ();
protected override void ~VTDecompressionSession ();

Type Changed: VideoToolbox.VTFrameSilo

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~VTFrameSilo ();

Type Changed: VideoToolbox.VTMultiPassStorage

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected override void ~VTMultiPassStorage ();

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Type Changed: VideoToolbox.VTSession

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~VTSession ();

Namespace WebKit

Type Changed: WebKit.WKPreferences

Modified properties:

-public virtual bool TextInteractionEnabled { get; set; }
+public bool TextInteractionEnabled { get; set; }

Type Changed: WebKit.WKUIDelegate

Added methods:

public virtual void RequestDeviceOrientationAndMotionPermission (WKWebView webView, WKSecurityOrigin origin, WKFrameInfo frame, System.Action<WKPermissionDecision> decisionHandler);
public virtual void RequestMediaCapturePermission (WKWebView webView, WKSecurityOrigin origin, WKFrameInfo frame, WKMediaCaptureType type, System.Action<WKPermissionDecision> decisionHandler);

Type Changed: WebKit.WKUIDelegate_Extensions

Added methods:

public static void RequestDeviceOrientationAndMotionPermission (this IWKUIDelegate This, WKWebView webView, WKSecurityOrigin origin, WKFrameInfo frame, System.Action<WKPermissionDecision> decisionHandler);
public static System.Threading.Tasks.Task<WKPermissionDecision> RequestDeviceOrientationAndMotionPermissionAsync (this IWKUIDelegate This, WKWebView webView, WKSecurityOrigin origin, WKFrameInfo frame);
public static void RequestMediaCapturePermission (this IWKUIDelegate This, WKWebView webView, WKSecurityOrigin origin, WKFrameInfo frame, WKMediaCaptureType type, System.Action<WKPermissionDecision> decisionHandler);
public static System.Threading.Tasks.Task<WKPermissionDecision> RequestMediaCapturePermissionAsync (this IWKUIDelegate This, WKWebView webView, WKSecurityOrigin origin, WKFrameInfo frame, WKMediaCaptureType type);

Type Changed: WebKit.WKWebView

Added properties:

public virtual WKMediaCaptureState CameraCaptureState { get; }
public virtual Foundation.NSObject InteractionState { get; set; }
public virtual WKMediaCaptureState MicrophoneCaptureState { get; }
public virtual UIKit.UIColor ThemeColor { get; }
public virtual UIKit.UIColor UnderPageBackgroundColor { get; set; }

Added methods:

public virtual void CloseAllMediaPresentations (System.Action completionHandler);
public virtual System.Threading.Tasks.Task CloseAllMediaPresentationsAsync ();
public virtual WKNavigation LoadFileRequest (Foundation.NSUrlRequest request, Foundation.NSUrl readAccessURL);
public virtual WKNavigation LoadSimulatedRequest (Foundation.NSUrlRequest request, string htmlString);
public virtual WKNavigation LoadSimulatedRequest (Foundation.NSUrlRequest request, Foundation.NSUrlResponse response, Foundation.NSData data);
public virtual void PauseAllMediaPlayback (System.Action completionHandler);
public virtual System.Threading.Tasks.Task PauseAllMediaPlaybackAsync ();
public virtual void RequestMediaPlaybackState (System.Action<WKMediaPlaybackState> completionHandler);
public virtual System.Threading.Tasks.Task<WKMediaPlaybackState> RequestMediaPlaybackStateAsync ();
public virtual void SetAllMediaPlaybackSuspended (bool suspended, System.Action completionHandler);
public virtual System.Threading.Tasks.Task SetAllMediaPlaybackSuspendedAsync (bool suspended);
public virtual void SetCameraCaptureState (WKMediaCaptureState state, System.Action completionHandler);
public virtual System.Threading.Tasks.Task SetCameraCaptureStateAsync (WKMediaCaptureState state);
public virtual void SetMicrophoneCaptureState (WKMediaCaptureState state, System.Action completionHandler);
public virtual System.Threading.Tasks.Task SetMicrophoneCaptureStateAsync (WKMediaCaptureState state);

Type Changed: WebKit.WKWebViewConfiguration

Added property:

public virtual bool UpgradeKnownHostsToHttps { get; set; }

New Type: WebKit.WKMediaCaptureState

[Serializable]
public enum WKMediaCaptureState {
	Active = 1,
	Muted = 2,
	None = 0,
}

New Type: WebKit.WKMediaCaptureType

[Serializable]
public enum WKMediaCaptureType {
	Camera = 0,
	CameraAndMicrophone = 2,
	Microphone = 1,
}

New Type: WebKit.WKPermissionDecision

[Serializable]
public enum WKPermissionDecision {
	Deny = 2,
	Grant = 1,
	Prompt = 0,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment