diff --git a/src/QuartzComposer/QCComposition.cs b/src/QuartzComposer/QCComposition.cs
new file mode 100644
index 00000000000..f3bbc93c425
--- /dev/null
+++ b/src/QuartzComposer/QCComposition.cs
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
+
+using System;
+using System.ComponentModel;
+
+using Foundation;
+using ObjCRuntime;
+
+#nullable enable
+
+namespace QuartzComposer;
+
+partial class QCComposition {
+#if !XAMCORE_5_0
+ [BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
+ [ObsoletedOSPlatform ("macos10.14", "Use 'Metal' instead.")]
+ [SupportedOSPlatform ("macos")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
+ [Obsolete ("This field is always null.")]
+ public static NSString? InputRSSArticleDurationKey {
+ [ObsoletedOSPlatform ("macos10.14", "Use 'Metal' instead.")]
+ [SupportedOSPlatform ("macos")]
+ get => null;
+ }
+
+ [BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
+ [ObsoletedOSPlatform ("macos10.14", "Use 'Metal' instead.")]
+ [SupportedOSPlatform ("macos")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
+ [Obsolete ("This field is always null.")]
+ public static NSString? InputRSSFeedURLKey {
+ [ObsoletedOSPlatform ("macos10.14", "Use 'Metal' instead.")]
+ [SupportedOSPlatform ("macos")]
+ get => null;
+ }
+
+ [BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
+ [ObsoletedOSPlatform ("macos10.14", "Use 'Metal' instead.")]
+ [SupportedOSPlatform ("macos")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
+ [Obsolete ("This field is always null.")]
+ public static NSString? ProtocolRSSVisualizer {
+ [ObsoletedOSPlatform ("macos10.14", "Use 'Metal' instead.")]
+ [SupportedOSPlatform ("macos")]
+ get => null;
+ }
+#endif // !XAMCORE_5_0
+}
diff --git a/src/frameworks.sources b/src/frameworks.sources
index 6573e8e10f1..58f1561da60 100644
--- a/src/frameworks.sources
+++ b/src/frameworks.sources
@@ -1478,6 +1478,11 @@ PRINTCORE_SOURCES = \
PUSHTOTALK_SOURCES = \
PushToTalk/Compat.cs \
+# QuartzComposer
+
+QUARTZCOMPOSER_SOURCES = \
+ QuartzComposer/QCComposition.cs \
+
# QuickLook
QUICKLOOK_SOURCES = \
diff --git a/src/quartzcomposer.cs b/src/quartzcomposer.cs
index ffc4192e1e0..f514f6e6bcc 100644
--- a/src/quartzcomposer.cs
+++ b/src/quartzcomposer.cs
@@ -158,19 +158,10 @@ interface QCComposition : NSCopying {
[Field ("QCCompositionInputDestinationImageKey")]
NSString InputDestinationImageKey { get; }
- /// To be added.
- /// To be added.
- /// To be added.
- [Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'Metal' instead.")]
- [Field ("QCCompositionInputRSSFeedURLKey")]
- NSString InputRSSFeedURLKey { get; }
-
- /// To be added.
- /// To be added.
- /// To be added.
- [Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'Metal' instead.")]
- [Field ("QCCompositionInputRSSArticleDurationKey")]
- NSString InputRSSArticleDurationKey { get; }
+#if !XAMCORE_5_0
+ // The 'InputRSSFeedURLKey' property has manual bindings.
+ // The 'InputRSSArticleDurationKey' property has manual bindings.
+#endif
/// To be added.
/// To be added.
@@ -280,12 +271,9 @@ interface QCComposition : NSCopying {
[Field ("QCCompositionProtocolScreenSaver")]
NSString ProtocolScreenSaver { get; }
- /// To be added.
- /// To be added.
- /// To be added.
- [Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'Metal' instead.")]
- [Field ("QCCompositionProtocolRSSVisualizer")]
- NSString ProtocolRSSVisualizer { get; }
+#if !XAMCORE_5_0
+ // The 'ProtocolRSSVisualizer' property has manual bindings.
+#endif
/// To be added.
/// To be added.
diff --git a/tests/introspection/MacApiFieldTest.cs b/tests/introspection/MacApiFieldTest.cs
index a43e7949c80..b9457f61779 100644
--- a/tests/introspection/MacApiFieldTest.cs
+++ b/tests/introspection/MacApiFieldTest.cs
@@ -159,12 +159,6 @@ protected override bool Skip (string constantName, string? libraryName)
// kCLErrorUserInfoAlternateRegionKey also returns null on iOS
case "kCLErrorUserInfoAlternateRegionKey":
return true;
- case "QCCompositionInputRSSArticleDurationKey":
- case "QCCompositionInputRSSFeedURLKey":
- case "QCCompositionProtocolRSSVisualizer":
- if (Mac.CheckSystemVersion (10, 14))
- return true;
- goto default;
default:
return base.Skip (constantName, libraryName);
}