Skip to content

Instantly share code, notes, and snippets.

@vs-mobiletools-engineering-service2
Created August 22, 2023 02:39
Show Gist options
  • Save vs-mobiletools-engineering-service2/7324275f1dec875564ae5b79bf64f69c to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/7324275f1dec875564ae5b79bf64f69c to your computer and use it in GitHub Desktop.
stable-api-comparison/mac-api-diff.md
title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.Mac SDK API diff: 9.3.0 vs 9.99.0
List of API changes between Xamarin.Mac versions 9.3.0 and 9.99.0.
spouliot
sepoulio
8/21/2023
article
2f27a19c-50e8-4f7d-bce7-2c0c579124cb
xamarin

Xamarin.Mac SDK API diff: 9.3.0 vs 9.99.0

Namespace AVFoundation

Type Changed: AVFoundation.AVAssetImageGenerator

Added method:

public virtual void GenerateCGImageAsynchronously (CoreMedia.CMTime requestedTime, AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler handler);

Type Changed: AVFoundation.AVAudioSinkNode

Obsoleted constructors:

 [Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")]
 public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler receiverHandler);

Added constructors:

public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler2 receiverHandler);
public AVAudioSinkNode (AVAudioSinkNodeReceiverHandlerRaw receiverHandler);

New Type: AVFoundation.AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler

public sealed delegate AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler : System.MulticastDelegate {
	// constructors
	public AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CoreGraphics.CGImage imageRef, CoreMedia.CMTime actualTime, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CoreGraphics.CGImage imageRef, CoreMedia.CMTime actualTime, Foundation.NSError error);
}

New Type: AVFoundation.AVAudioSinkNodeReceiverHandler2

public sealed delegate AVAudioSinkNodeReceiverHandler2 : System.MulticastDelegate {
	// constructors
	public AVAudioSinkNodeReceiverHandler2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData, System.AsyncCallback callback, object object);
	public virtual int EndInvoke (System.IAsyncResult result);
	public virtual int Invoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData);
}

New Type: AVFoundation.AVAudioSinkNodeReceiverHandlerRaw

public sealed delegate AVAudioSinkNodeReceiverHandlerRaw : System.MulticastDelegate {
	// constructors
	public AVAudioSinkNodeReceiverHandlerRaw (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (IntPtr timestamp, uint frameCount, IntPtr inputData, System.AsyncCallback callback, object object);
	public virtual int EndInvoke (System.IAsyncResult result);
	public virtual int Invoke (IntPtr timestamp, uint frameCount, IntPtr inputData);
}

Namespace Accessibility

New Type: Accessibility.AXAnimatedImagesUtilities

public static class AXAnimatedImagesUtilities {
	// properties
	public static Foundation.NSString AnimatedImagesEnabledDidChangeNotification { get; }
	public static bool Enabled { get; }

	// inner types
	public static class Notifications {
		// methods
		public static Foundation.NSObject ObserveAnimatedImagesEnabledDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveAnimatedImagesEnabledDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);
	}
}

New Type: Accessibility.AXCustomContentProvider_Extensions

public static class AXCustomContentProvider_Extensions {
	// methods
	public static System.Func<AXCustomContent[]> GetAccessibilityCustomContentHandler (this IAXCustomContentProvider This);
	public static void SetAccessibilityCustomContentHandler (this IAXCustomContentProvider This, System.Func<AXCustomContent[]> value);
}

Namespace AudioToolbox

Type Changed: AudioToolbox.AudioChannelLayoutTag

Added values:

Ogg_3_0 = 9830403,
Ogg_4_0 = 12124164,
Ogg_5_0 = 13893637,
Ogg_5_1 = 13959174,
Ogg_6_1 = 14024711,
Ogg_7_1 = 14090248,

Namespace AudioUnit

Type Changed: AudioUnit.AudioObjectPropertySelector

Added value:

InputMute = 1852403056,

New Type: AudioUnit.AudioAggregateDriftCompensation

[Serializable]
public enum AudioAggregateDriftCompensation {
	HighQuality = 96,
	LowQuality = 32,
	MaxQuality = 127,
	MediumQuality = 64,
	MinQuality = 0,
}

Namespace CloudKit

Type Changed: CloudKit.CKShareMetadata

Obsoleted constructors:

 [Obsolete ("Get them from 'CKFetchShareMetadataOperation' or platform-specific scene / app delegate callbacks.")]
 public CKShareMetadata ();

Namespace Contacts

Type Changed: Contacts.CNErrorCode

Added value:

FeatureNotAvailable = 104,

Namespace CoreFoundation

Type Changed: CoreFoundation.CFRunLoop

Added properties:

public string[] AllModes { get; }
public string CurrentMode { get; }

Added method:

public CFRunLoopExitReason RunInMode (string mode, double seconds, bool returnAfterSourceHandled);

Namespace CoreImage

Type Changed: CoreImage.CIPhotoEffect

Added property:

public bool Extrapolate { get; set; }

New Type: CoreImage.CIBlurredRectangleGenerator

public class CIBlurredRectangleGenerator : CoreImage.CIFilter, ICIBlurredRectangleGeneratorProtocol, ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CIBlurredRectangleGenerator ();
	public CIBlurredRectangleGenerator (Foundation.NSCoder coder);
	protected CIBlurredRectangleGenerator (Foundation.NSObjectFlag t);
	public CIBlurredRectangleGenerator (IntPtr handle);
	// properties
	public virtual CIColor Color { get; set; }
	public virtual CoreGraphics.CGRect InputExtent { get; set; }
	public virtual CIImage OutputImage { get; }
	public virtual float Sigma { get; set; }
}

New Type: CoreImage.CICannyEdgeDetector

public class CICannyEdgeDetector : CoreImage.CIFilter, ICICannyEdgeDetectorProtocol, ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CICannyEdgeDetector ();
	public CICannyEdgeDetector (Foundation.NSCoder coder);
	protected CICannyEdgeDetector (Foundation.NSObjectFlag t);
	public CICannyEdgeDetector (IntPtr handle);
	// properties
	public virtual float GaussianSigma { get; set; }
	public virtual nint HysteresisPasses { get; set; }
	public virtual CIImage InputImage { get; set; }
	public virtual CIImage OutputImage { get; }
	public virtual bool Perceptual { get; set; }
	public virtual float ThresholdHigh { get; set; }
	public virtual float ThresholdLow { get; set; }
}

New Type: CoreImage.CIPhotoEffectProtocol_Extensions

public static class CIPhotoEffectProtocol_Extensions {
	// methods
	public static bool GetExtrapolate (this ICIPhotoEffectProtocol This);
	public static void SetExtrapolate (this ICIPhotoEffectProtocol This, bool value);
}

New Type: CoreImage.CIRoundedRectangleStrokeGenerator

public class CIRoundedRectangleStrokeGenerator : CoreImage.CIFilter, ICIFilterProtocol, ICIRoundedRectangleStrokeGeneratorProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CIRoundedRectangleStrokeGenerator ();
	public CIRoundedRectangleStrokeGenerator (Foundation.NSCoder coder);
	protected CIRoundedRectangleStrokeGenerator (Foundation.NSObjectFlag t);
	public CIRoundedRectangleStrokeGenerator (IntPtr handle);
	// properties
	public virtual CIColor Color { get; set; }
	public virtual CoreGraphics.CGRect InputExtent { get; set; }
	public virtual CIImage OutputImage { get; }
	public virtual float Radius { get; set; }
	public virtual float Width { get; set; }
}

New Type: CoreImage.CISobelGradients

public class CISobelGradients : CoreImage.CIFilter, ICIFilterProtocol, ICISobelGradientsProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CISobelGradients ();
	public CISobelGradients (Foundation.NSCoder coder);
	protected CISobelGradients (Foundation.NSObjectFlag t);
	public CISobelGradients (IntPtr handle);
	// properties
	public virtual CIImage InputImage { get; set; }
	public virtual CIImage OutputImage { get; }
}

New Type: CoreImage.ICIBlurredRectangleGeneratorProtocol

public interface ICIBlurredRectangleGeneratorProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual CIColor Color { get; set; }
	public virtual CoreGraphics.CGRect InputExtent { get; set; }
	public virtual float Sigma { get; set; }
}

New Type: CoreImage.ICICannyEdgeDetectorProtocol

public interface ICICannyEdgeDetectorProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual float GaussianSigma { get; set; }
	public virtual nint HysteresisPasses { get; set; }
	public virtual CIImage InputImage { get; set; }
	public virtual bool Perceptual { get; set; }
	public virtual float ThresholdHigh { get; set; }
	public virtual float ThresholdLow { get; set; }
}

New Type: CoreImage.ICIRoundedRectangleStrokeGeneratorProtocol

public interface ICIRoundedRectangleStrokeGeneratorProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual CIColor Color { get; set; }
	public virtual CoreGraphics.CGRect InputExtent { get; set; }
	public virtual float Radius { get; set; }
	public virtual float Width { get; set; }
}

New Type: CoreImage.ICISobelGradientsProtocol

public interface ICISobelGradientsProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual CIImage InputImage { get; set; }
}

Namespace Foundation

Type Changed: Foundation.NSFileManager

Added methods:

public static bool GetSkipBackupAttribute (string filename);
public static bool GetSkipBackupAttribute (string filename, out NSError error);
public static NSError SetSkipBackupAttribute (string filename, bool skipBackup);

Type Changed: Foundation.NSFileProviderService

Added methods:

public virtual void GetFileProviderConnection (System.Action<NSXpcConnection,Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task<NSXpcConnection> GetFileProviderConnectionAsync ();

Type Changed: Foundation.NSUrl

Added methods:

public static NSUrl CreateFileUrl (string path);
public static NSUrl CreateFileUrl (string path, bool isDir);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "13.3";
+public const string SdkVersion = "14.0";
-public const string Version = "9.3.0";
+public const string Version = "9.99.0";

Added fields:

public static const string ServiceManagementLibrary = "/System/Library/Frameworks/ServiceManagement.framework/ServiceManagement";
public static const string SymbolsLibrary = "/System/Library/Frameworks/Symbols.framework/Symbols";

Namespace Photos

Type Changed: Photos.PHVideoRequestOptions

Added interfaces:

Foundation.INSCopying
ObjCRuntime.INativeObject
System.IDisposable

Added method:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Namespace SafariServices

Type Changed: SafariServices.SFContentBlockerManager

Obsoleted constructors:

 [Obsolete ("Constructor marked as unavailable.")]
 public SFContentBlockerManager ();

Namespace SceneKit

Type Changed: SceneKit.SCNLayer

Added property:

public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; }

Type Changed: SceneKit.SCNRenderer

Added property:

public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; }

Type Changed: SceneKit.SCNSceneRenderer

Added property:

public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; }

Type Changed: SceneKit.SCNSceneRenderer_Extensions

Added method:

public static CoreGraphics.CGColorSpace GetWorkingColorSpace (this ISCNSceneRenderer This);

Type Changed: SceneKit.SCNView

Added property:

public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; }

New Namespace ServiceManagement

New Type: ServiceManagement.SMAppService

public class SMAppService : Foundation.NSObject {
	// constructors
	protected SMAppService (Foundation.NSObjectFlag t);
	protected SMAppService (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static SMAppService MainApp { get; }
	public virtual SMAppServiceStatus Status { get; }
	// methods
	public static SMAppService CreateAgentService (string plistName);
	public static SMAppService CreateDaemonService (string plistName);
	public static SMAppService CreateLoginItemService (string identifier);
	public static SMAppServiceStatus GetStatus (Foundation.NSUrl legacyUrl);
	public static void OpenSystemSettingsLoginItems ();
	public bool Register ();
	public virtual bool Register (out Foundation.NSError error);
	public bool Unregister ();
	public virtual void Unregister (System.Action<Foundation.NSError> handler);
	public virtual bool Unregister (out Foundation.NSError error);
	public virtual System.Threading.Tasks.Task UnregisterAsync ();
}

New Type: ServiceManagement.SMAppServiceStatus

[Serializable]
public enum SMAppServiceStatus {
	Enabled = 1,
	NotFound = 3,
	NotRegistered = 0,
	RequiresApproval = 2,
}

New Namespace Symbols

New Type: Symbols.NSSymbolAppearEffect

public class NSSymbolAppearEffect : Symbols.NSSymbolEffect {
	// constructors
	public NSSymbolAppearEffect (Foundation.NSCoder coder);
	protected NSSymbolAppearEffect (Foundation.NSObjectFlag t);
	protected NSSymbolAppearEffect (IntPtr handle);
	// properties
	public virtual NSSymbolAppearEffect ByLayer { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSSymbolAppearEffect WholeSymbol { get; }
	// methods
	public static NSSymbolAppearEffect Create ();
	public static NSSymbolAppearEffect CreateAppearDownEffect ();
	public static NSSymbolAppearEffect CreateAppearUpEffect ();
}

New Type: Symbols.NSSymbolAutomaticContentTransition

public class NSSymbolAutomaticContentTransition : Symbols.NSSymbolContentTransition {
	// constructors
	public NSSymbolAutomaticContentTransition (Foundation.NSCoder coder);
	protected NSSymbolAutomaticContentTransition (Foundation.NSObjectFlag t);
	protected NSSymbolAutomaticContentTransition (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static NSSymbolAutomaticContentTransition Create ();
}

New Type: Symbols.NSSymbolBounceEffect

public class NSSymbolBounceEffect : Symbols.NSSymbolEffect {
	// constructors
	public NSSymbolBounceEffect (Foundation.NSCoder coder);
	protected NSSymbolBounceEffect (Foundation.NSObjectFlag t);
	protected NSSymbolBounceEffect (IntPtr handle);
	// properties
	public virtual NSSymbolBounceEffect ByLayer { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSSymbolBounceEffect WholeSymbol { get; }
	// methods
	public static NSSymbolBounceEffect Create ();
	public static NSSymbolBounceEffect CreateBounceDownEffect ();
	public static NSSymbolBounceEffect CreateBounceUpEffect ();
}

New Type: Symbols.NSSymbolContentTransition

public class NSSymbolContentTransition : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NSSymbolContentTransition (Foundation.NSCoder coder);
	protected NSSymbolContentTransition (Foundation.NSObjectFlag t);
	protected NSSymbolContentTransition (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Symbols.NSSymbolDisappearEffect

public class NSSymbolDisappearEffect : Symbols.NSSymbolEffect {
	// constructors
	public NSSymbolDisappearEffect (Foundation.NSCoder coder);
	protected NSSymbolDisappearEffect (Foundation.NSObjectFlag t);
	protected NSSymbolDisappearEffect (IntPtr handle);
	// properties
	public virtual NSSymbolDisappearEffect ByLayer { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSSymbolDisappearEffect WholeSymbol { get; }
	// methods
	public static NSSymbolDisappearEffect Create ();
	public static NSSymbolDisappearEffect CreateDisappearDownEffect ();
	public static NSSymbolDisappearEffect CreateDisappearUpEffect ();
}

New Type: Symbols.NSSymbolEffect

public class NSSymbolEffect : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NSSymbolEffect (Foundation.NSCoder coder);
	protected NSSymbolEffect (Foundation.NSObjectFlag t);
	protected NSSymbolEffect (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Symbols.NSSymbolEffectOptions

public class NSSymbolEffectOptions : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NSSymbolEffectOptions (Foundation.NSCoder coder);
	protected NSSymbolEffectOptions (Foundation.NSObjectFlag t);
	protected NSSymbolEffectOptions (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static NSSymbolEffectOptions Create ();
	public static NSSymbolEffectOptions Create (double speed);
	public static NSSymbolEffectOptions Create (nint repeatCount);
	public static NSSymbolEffectOptions CreateNonRepeating ();
	public static NSSymbolEffectOptions CreateRepeating ();
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual NSSymbolEffectOptions Get (double speed);
	public virtual NSSymbolEffectOptions Get (nint repeatCount);
	public virtual NSSymbolEffectOptions GetNonRepeating ();
	public virtual NSSymbolEffectOptions GetRepeating ();
}

New Type: Symbols.NSSymbolPulseEffect

public class NSSymbolPulseEffect : Symbols.NSSymbolEffect {
	// constructors
	public NSSymbolPulseEffect (Foundation.NSCoder coder);
	protected NSSymbolPulseEffect (Foundation.NSObjectFlag t);
	protected NSSymbolPulseEffect (IntPtr handle);
	// properties
	public virtual NSSymbolPulseEffect ByLayer { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSSymbolPulseEffect WholeSymbol { get; }
	// methods
	public static NSSymbolPulseEffect Create ();
}

New Type: Symbols.NSSymbolReplaceContentTransition

public class NSSymbolReplaceContentTransition : Symbols.NSSymbolContentTransition {
	// constructors
	public NSSymbolReplaceContentTransition (Foundation.NSCoder coder);
	protected NSSymbolReplaceContentTransition (Foundation.NSObjectFlag t);
	protected NSSymbolReplaceContentTransition (IntPtr handle);
	// properties
	public virtual NSSymbolReplaceContentTransition ByLayer { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSSymbolReplaceContentTransition WholeSymbol { get; }
	// methods
	public static NSSymbolReplaceContentTransition Create ();
	public static NSSymbolReplaceContentTransition CreateReplaceDownUpTransition ();
	public static NSSymbolReplaceContentTransition CreateReplaceOffUpTransition ();
	public static NSSymbolReplaceContentTransition CreateReplaceUpUpTransition ();
}

New Type: Symbols.NSSymbolScaleEffect

public class NSSymbolScaleEffect : Symbols.NSSymbolEffect {
	// constructors
	public NSSymbolScaleEffect (Foundation.NSCoder coder);
	protected NSSymbolScaleEffect (Foundation.NSObjectFlag t);
	protected NSSymbolScaleEffect (IntPtr handle);
	// properties
	public virtual NSSymbolScaleEffect ByLayer { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSSymbolScaleEffect WholeSymbol { get; }
	// methods
	public static NSSymbolScaleEffect Create ();
	public static NSSymbolScaleEffect CreateScaleDownEffect ();
	public static NSSymbolScaleEffect CreateScaleUpEffect ();
}

New Type: Symbols.NSSymbolVariableColorEffect

public class NSSymbolVariableColorEffect : Symbols.NSSymbolEffect {
	// constructors
	public NSSymbolVariableColorEffect (Foundation.NSCoder coder);
	protected NSSymbolVariableColorEffect (Foundation.NSObjectFlag t);
	protected NSSymbolVariableColorEffect (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSSymbolVariableColorEffect Cumulative { get; }
	public virtual NSSymbolVariableColorEffect DimInactiveLayers { get; }
	public virtual NSSymbolVariableColorEffect HideInactiveLayers { get; }
	public virtual NSSymbolVariableColorEffect Iterative { get; }
	public virtual NSSymbolVariableColorEffect NonReversing { get; }
	public virtual NSSymbolVariableColorEffect Reversing { get; }
	// methods
	public static NSSymbolVariableColorEffect Create ();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment