diff --git a/src/coreml.cs b/src/coreml.cs
index eb49e104e3..0664ba427e 100644
--- a/src/coreml.cs
+++ b/src/coreml.cs
@@ -46,6 +46,8 @@ namespace CoreML {
[Watch (5, 0), TV (12, 0), iOS (12, 0)]
[MacCatalyst (13, 1)]
Sequence = 7,
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ State = 8,
}
/// Enumerates errors that may occur in the use of Core ML.
@@ -74,10 +76,8 @@ namespace CoreML {
// added in xcode12 but it's the same a `Double` and can be used in earlier versions
Float64 = 0x10000 | 64,
Float32 = 0x10000 | 32,
-#if MONOMAC // macOS 12 Only
- [Mac (12,0)][NoiOS][NoMacCatalyst][NoWatch][NoTV]
+ [Mac (12, 0), iOS (16, 0), MacCatalyst (16, 0), Watch (9, 0), TV (16, 0)]
Float16 = 0x10000 | 16,
-#endif
// added in xcode12 but it's the same a `Float32` and can be used in earlier versions
Float = 0x10000 | 32,
Int32 = 0x20000 | 32,
@@ -185,6 +185,10 @@ namespace CoreML {
[MacCatalyst (13, 1)]
[NullAllowed, Export ("sequenceConstraint")]
MLSequenceConstraint SequenceConstraint { get; }
+
+ [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), Watch (11, 0)]
+ [NullAllowed, Export ("stateConstraint")]
+ MLStateConstraint StateConstraint { get; }
}
interface IMLFeatureProvider { }
@@ -563,6 +567,10 @@ namespace CoreML {
[MacCatalyst (13, 1)]
[Export ("parameterDescriptionsByKey")]
NSDictionary ParameterDescriptionsByKey { get; }
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("stateDescriptionsByName")]
+ NSDictionary StateDescriptionsByName { get; }
}
[MacCatalyst (13, 1)]
@@ -635,6 +643,10 @@ namespace CoreML {
[Export ("initWithShape:dataType:error:")]
NativeHandle Constructor (NSNumber [] shape, MLMultiArrayDataType dataType, out NSError error);
+ [iOS (18, 0), TV (18, 0), MacCatalyst (18, 0), Mac (15, 0), Watch (11, 0)]
+ [Export ("initWithShape:dataType:strides:")]
+ NativeHandle Constructor (NSNumber [] shape, MLMultiArrayDataType dataType, NSNumber [] strides);
+
[Export ("initWithDataPointer:shape:dataType:strides:deallocator:error:")]
NativeHandle Constructor (IntPtr dataPointer, NSNumber [] shape, MLMultiArrayDataType dataType, NSNumber [] strides, [NullAllowed] Action deallocator, out NSError error);
@@ -685,6 +697,11 @@ namespace CoreML {
[Watch (8, 5), TV (15, 4), Mac (12, 3), iOS (15, 4), MacCatalyst (15, 4)]
[Export ("getMutableBytesWithHandler:")]
void GetMutableBytes (Action> handler);
+
+ // From MLMultiArray (Transferring) category
+ [iOS (18, 0), TV (18, 0), MacCatalyst (18, 0), Mac (15, 0), Watch (11, 0)]
+ [Export ("transferToMultiArray:")]
+ void TransferToMultiArray (MLMultiArray destinationMultiArray);
}
/// Contains a value that constrains the type of dictionary keys.
@@ -971,6 +988,11 @@ namespace CoreML {
[MacCatalyst (13, 1)]
[NullAllowed, Export ("parameters", ArgumentSemantic.Assign)]
NSDictionary Parameters { get; set; }
+
+ // From MLModelConfiguration (MultiFunctions)
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("functionName", ArgumentSemantic.Copy), NullAllowed]
+ string FunctionName { get; set; }
}
[Watch (6, 0), TV (13, 0), iOS (13, 0)]
@@ -1210,6 +1232,7 @@ namespace CoreML {
bool Write (NSUrl url, [NullAllowed] out NSError error);
}
+#if !XAMCORE_5_0
[Deprecated (PlatformName.MacOSX, 13, 3, message: "Use Background Assets or 'NSUrlSession' instead.")]
[Deprecated (PlatformName.MacCatalyst, 16, 4, message: "Use Background Assets or 'NSUrlSession' instead.")]
[Deprecated (PlatformName.iOS, 16, 4, message: "Use Background Assets or 'NSUrlSession' instead.")]
@@ -1244,7 +1267,9 @@ namespace CoreML {
[Field ("MLModelCollectionDidChangeNotification")]
NSString DidChangeNotification { get; }
}
+#endif // !XAMCORE_5_0
+#if !XAMCORE_5_0
[Deprecated (PlatformName.MacOSX, 13, 3, message: "Use Background Assets or 'NSUrlSession' instead.")]
[Deprecated (PlatformName.MacCatalyst, 16, 4, message: "Use Background Assets or 'NSUrlSession' instead.")]
[Deprecated (PlatformName.iOS, 16, 4, message: "Use Background Assets or 'NSUrlSession' instead.")]
@@ -1265,6 +1290,10 @@ namespace CoreML {
[Export ("isEqualToModelCollectionEntry:")]
bool IsEqual (MLModelCollectionEntry entry);
}
+#endif // !XAMCORE_5_0
+
+ delegate void MLModelAssetGetModelDescriptionCompletionHandler ([NullAllowed] MLModelDescription modelDescription, [NullAllowed] NSError error);
+ delegate void MLModelAssetGetFunctionNamesCompletionHandler ([NullAllowed] string [] functionNames, [NullAllowed] NSError error);
[Watch (9, 0), TV (16, 0), Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0)]
[BaseType (typeof (NSObject))]
@@ -1276,6 +1305,31 @@ namespace CoreML {
[Export ("modelAssetWithSpecificationData:error:")]
[return: NullAllowed]
MLModelAsset Create (NSData specificationData, [NullAllowed] out NSError error);
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Static]
+ [Export ("modelAssetWithURL:error:")]
+ [return: NullAllowed]
+ MLModelAsset Create (NSUrl compiledModelUrl, [NullAllowed] out NSError error);
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("modelDescriptionWithCompletionHandler:")]
+ void GetModelDescription (MLModelAssetGetModelDescriptionCompletionHandler handler);
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("modelDescriptionOfFunctionNamed:completionHandler:")]
+ void GetModelDescription (string functionName, MLModelAssetGetModelDescriptionCompletionHandler handler);
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("functionNamesWithCompletionHandler:")]
+ void GetFunctionNames (MLModelAssetGetFunctionNamesCompletionHandler handler);
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Static]
+ [Export ("modelAssetWithSpecificationData:blobMapping:error:")]
+ [return: NullAllowed]
+ MLModelAsset Create (NSData specificationData, NSDictionary blobMapping, [NullAllowed] out NSError error);
+
}
interface IMLComputeDeviceProtocol { }
@@ -1336,6 +1390,58 @@ namespace CoreML {
MLModelStructure ModelStructure { get; }
}
+ delegate void MLStateGetMultiArrayForStateHandler (MLMultiArray buffer);
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (NSObject))]
+ [DisableDefaultCtor]
+ interface MLState {
+ [Export ("getMultiArrayForStateNamed:handler:")]
+ void GetMultiArrayForState (string stateName, MLStateGetMultiArrayForStateHandler handler);
+ }
+
+ delegate void MLStateGetPredictionCompletionHandler ([NullAllowed] IMLFeatureProvider output, NSError error);
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Category]
+ [BaseType (typeof (MLModel))]
+ interface MLModel_MLState {
+ [Export ("newState")]
+ [return: Release]
+ MLState CreateNewState ();
+
+ [Export ("predictionFromFeatures:usingState:error:")]
+ [return: NullAllowed]
+ IMLFeatureProvider GetPrediction (IMLFeatureProvider inputFeatures, MLState state, out NSError error);
+
+ [Export ("predictionFromFeatures:usingState:options:error:")]
+ [return: NullAllowed]
+ IMLFeatureProvider GetPrediction (IMLFeatureProvider inputFeatures, MLState state, MLPredictionOptions options, out NSError error);
+
+ [Export ("predictionFromFeatures:usingState:options:completionHandler:")]
+ [return: NullAllowed]
+ IMLFeatureProvider GetPrediction (IMLFeatureProvider inputFeatures, MLState state, MLPredictionOptions options, MLStateGetPredictionCompletionHandler completionHandler);
+ }
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (NSObject))]
+ [DisableDefaultCtor]
+ interface MLStateConstraint : NSSecureCoding {
+ // BindAs: No documentation about which types of NSNumbers we get back
+ [Export ("bufferShape")]
+ NSNumber [] BufferShape { get; }
+
+ [Export ("dataType")]
+ MLMultiArrayDataType DataType { get; }
+ }
+
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Native]
+ public enum MLSpecializationStrategy : long {
+ Default = 0,
+ FastPrediction = 1,
+ }
+
[Watch (10, 4), TV (17, 4), Mac (14, 4), iOS (17, 4), MacCatalyst (17, 4)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
@@ -1525,6 +1631,9 @@ namespace CoreML {
[Export ("reshapeFrequency", ArgumentSemantic.Assign)]
MLReshapeFrequencyHint ReshapeFrequency { get; set; }
- }
+ [Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("specializationStrategy", ArgumentSemantic.Assign)]
+ MLSpecializationStrategy SpecializationStrategy { get; set; }
+ }
}
diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt
index 04fc647641..2c11bf3a12 100644
--- a/tests/cecil-tests/Documentation.KnownFailures.txt
+++ b/tests/cecil-tests/Documentation.KnownFailures.txt
@@ -7768,6 +7768,7 @@ F:CoreML.MLFeatureType.Int64
F:CoreML.MLFeatureType.Invalid
F:CoreML.MLFeatureType.MultiArray
F:CoreML.MLFeatureType.Sequence
+F:CoreML.MLFeatureType.State
F:CoreML.MLFeatureType.String
F:CoreML.MLImageSizeConstraintType.Enumerated
F:CoreML.MLImageSizeConstraintType.Range
@@ -7794,6 +7795,8 @@ F:CoreML.MLMultiArrayShapeConstraintType.Range
F:CoreML.MLMultiArrayShapeConstraintType.Unspecified
F:CoreML.MLReshapeFrequencyHint.Frequent
F:CoreML.MLReshapeFrequencyHint.Infrequent
+F:CoreML.MLSpecializationStrategy.Default
+F:CoreML.MLSpecializationStrategy.FastPrediction
F:CoreML.MLTaskState.Cancelling
F:CoreML.MLTaskState.Completed
F:CoreML.MLTaskState.Failed
@@ -33533,6 +33536,10 @@ M:CoreML.MLImageSize.EncodeTo(Foundation.NSCoder)
M:CoreML.MLImageSizeConstraint.EncodeTo(Foundation.NSCoder)
M:CoreML.MLKey.Copy(Foundation.NSZone)
M:CoreML.MLKey.EncodeTo(Foundation.NSCoder)
+M:CoreML.MLModel_MLState.CreateNewState(CoreML.MLModel)
+M:CoreML.MLModel_MLState.GetPrediction(CoreML.MLModel,CoreML.IMLFeatureProvider,CoreML.MLState,CoreML.MLPredictionOptions,CoreML.MLStateGetPredictionCompletionHandler)
+M:CoreML.MLModel_MLState.GetPrediction(CoreML.MLModel,CoreML.IMLFeatureProvider,CoreML.MLState,CoreML.MLPredictionOptions,Foundation.NSError@)
+M:CoreML.MLModel_MLState.GetPrediction(CoreML.MLModel,CoreML.IMLFeatureProvider,CoreML.MLState,Foundation.NSError@)
M:CoreML.MLModel.CompileModel(Foundation.NSUrl,Foundation.NSError@)
M:CoreML.MLModel.CompileModel(Foundation.NSUrl,System.Action{Foundation.NSUrl,Foundation.NSError})
M:CoreML.MLModel.CompileModelAsync(Foundation.NSUrl)
@@ -33551,7 +33558,12 @@ M:CoreML.MLModel.Load(CoreML.MLModelAsset,CoreML.MLModelConfiguration,System.Act
M:CoreML.MLModel.LoadAsync(CoreML.MLModelAsset,CoreML.MLModelConfiguration)
M:CoreML.MLModel.LoadContents(Foundation.NSUrl,CoreML.MLModelConfiguration,System.Action{CoreML.MLModel,Foundation.NSError})
M:CoreML.MLModel.LoadContentsAsync(Foundation.NSUrl,CoreML.MLModelConfiguration)
+M:CoreML.MLModelAsset.Create(Foundation.NSData,Foundation.NSDictionary{Foundation.NSUrl,Foundation.NSData},Foundation.NSError@)
M:CoreML.MLModelAsset.Create(Foundation.NSData,Foundation.NSError@)
+M:CoreML.MLModelAsset.Create(Foundation.NSUrl,Foundation.NSError@)
+M:CoreML.MLModelAsset.GetFunctionNames(CoreML.MLModelAssetGetFunctionNamesCompletionHandler)
+M:CoreML.MLModelAsset.GetModelDescription(CoreML.MLModelAssetGetModelDescriptionCompletionHandler)
+M:CoreML.MLModelAsset.GetModelDescription(System.String,CoreML.MLModelAssetGetModelDescriptionCompletionHandler)
M:CoreML.MLModelCollection.BeginAccessingModelCollection(System.String,System.Action{CoreML.MLModelCollection,Foundation.NSError})
M:CoreML.MLModelCollection.BeginAccessingModelCollectionAsync(System.String,Foundation.NSProgress@)
M:CoreML.MLModelCollection.BeginAccessingModelCollectionAsync(System.String)
@@ -33570,6 +33582,7 @@ M:CoreML.MLModelStructure.Load(CoreML.MLModelAsset,System.Action{CoreML.MLModelS
M:CoreML.MLModelStructure.Load(Foundation.NSUrl,System.Action{CoreML.MLModelStructure,Foundation.NSError})
M:CoreML.MLMultiArray.#ctor(CoreVideo.CVPixelBuffer,Foundation.NSNumber[])
M:CoreML.MLMultiArray.#ctor(Foundation.NSNumber[],CoreML.MLMultiArrayDataType,Foundation.NSError@)
+M:CoreML.MLMultiArray.#ctor(Foundation.NSNumber[],CoreML.MLMultiArrayDataType,Foundation.NSNumber[])
M:CoreML.MLMultiArray.#ctor(System.IntPtr,Foundation.NSNumber[],CoreML.MLMultiArrayDataType,Foundation.NSNumber[],System.Action{System.IntPtr},Foundation.NSError@)
M:CoreML.MLMultiArray.#ctor(System.IntPtr,System.IntPtr[],CoreML.MLMultiArrayDataType,System.IntPtr[],System.Action{System.IntPtr},Foundation.NSError@)
M:CoreML.MLMultiArray.#ctor(System.IntPtr[],CoreML.MLMultiArrayDataType,Foundation.NSError@)
@@ -33585,6 +33598,7 @@ M:CoreML.MLMultiArray.GetObject(System.IntPtr[])
M:CoreML.MLMultiArray.SetObject(Foundation.NSNumber,Foundation.NSNumber[])
M:CoreML.MLMultiArray.SetObject(Foundation.NSNumber,System.IntPtr)
M:CoreML.MLMultiArray.SetObject(Foundation.NSNumber,System.IntPtr[])
+M:CoreML.MLMultiArray.TransferToMultiArray(CoreML.MLMultiArray)
M:CoreML.MLMultiArrayConstraint.EncodeTo(Foundation.NSCoder)
M:CoreML.MLMultiArrayDataPointer.#ctor(System.IntPtr,System.IntPtr)
M:CoreML.MLMultiArrayMutableDataPointer.#ctor(System.IntPtr,System.IntPtr,Foundation.NSArray{Foundation.NSNumber})
@@ -33600,6 +33614,8 @@ M:CoreML.MLSequence.CreateEmpty(CoreML.MLFeatureType)
M:CoreML.MLSequence.EncodeTo(Foundation.NSCoder)
M:CoreML.MLSequenceConstraint.Copy(Foundation.NSZone)
M:CoreML.MLSequenceConstraint.EncodeTo(Foundation.NSCoder)
+M:CoreML.MLState.GetMultiArrayForState(System.String,CoreML.MLStateGetMultiArrayForStateHandler)
+M:CoreML.MLStateConstraint.EncodeTo(Foundation.NSCoder)
M:CoreML.MLTask.Cancel
M:CoreML.MLTask.Resume
M:CoreML.MLUpdateProgressHandlers.#ctor(CoreML.MLUpdateProgressEvent,System.Action{CoreML.MLUpdateContext},System.Action{CoreML.MLUpdateContext})
@@ -64980,6 +64996,7 @@ P:CoreML.MLFeatureDescription.MultiArrayConstraint
P:CoreML.MLFeatureDescription.Name
P:CoreML.MLFeatureDescription.Optional
P:CoreML.MLFeatureDescription.SequenceConstraint
+P:CoreML.MLFeatureDescription.StateConstraint
P:CoreML.MLFeatureDescription.Type
P:CoreML.MLFeatureValue.DictionaryValue
P:CoreML.MLFeatureValue.DoubleValue
@@ -65022,6 +65039,7 @@ P:CoreML.MLModelCompilationLoadResult.Arg1
P:CoreML.MLModelCompilationResult.Arg1
P:CoreML.MLModelConfiguration.AllowLowPrecisionAccumulationOnGpu
P:CoreML.MLModelConfiguration.ComputeUnits
+P:CoreML.MLModelConfiguration.FunctionName
P:CoreML.MLModelConfiguration.ModelDisplayName
P:CoreML.MLModelConfiguration.OptimizationHints
P:CoreML.MLModelConfiguration.Parameters
@@ -65034,6 +65052,7 @@ P:CoreML.MLModelDescription.OutputDescriptionsByName
P:CoreML.MLModelDescription.ParameterDescriptionsByKey
P:CoreML.MLModelDescription.PredictedFeatureName
P:CoreML.MLModelDescription.PredictedProbabilitiesName
+P:CoreML.MLModelDescription.StateDescriptionsByName
P:CoreML.MLModelDescription.TrainingInputDescriptionsByName
P:CoreML.MLModelMetadata.Author
P:CoreML.MLModelMetadata.CreatorDefined
@@ -65090,6 +65109,7 @@ P:CoreML.MLNumericConstraint.EnumeratedNumbers
P:CoreML.MLNumericConstraint.MaxNumber
P:CoreML.MLNumericConstraint.MinNumber
P:CoreML.MLOptimizationHints.ReshapeFrequency
+P:CoreML.MLOptimizationHints.SpecializationStrategy
P:CoreML.MLParameterDescription.DefaultValue
P:CoreML.MLParameterDescription.Key
P:CoreML.MLParameterDescription.NumericConstraint
@@ -65114,6 +65134,8 @@ P:CoreML.MLSequence.StringValues
P:CoreML.MLSequence.Type
P:CoreML.MLSequenceConstraint.CountRange
P:CoreML.MLSequenceConstraint.ValueDescription
+P:CoreML.MLStateConstraint.BufferShape
+P:CoreML.MLStateConstraint.DataType
P:CoreML.MLTask.Error
P:CoreML.MLTask.State
P:CoreML.MLTask.TaskIdentifier
@@ -82259,7 +82281,10 @@ T:CoreML.MLFeatureValueImageOption
T:CoreML.MLGpuComputeDevice
T:CoreML.MLKey
T:CoreML.MLMetricKey
+T:CoreML.MLModel_MLState
T:CoreML.MLModelAsset
+T:CoreML.MLModelAssetGetFunctionNamesCompletionHandler
+T:CoreML.MLModelAssetGetModelDescriptionCompletionHandler
T:CoreML.MLModelCollection
T:CoreML.MLModelCollectionEntry
T:CoreML.MLModelCompilationLoadResult
@@ -82287,6 +82312,11 @@ T:CoreML.MLOptimizationHints
T:CoreML.MLParameterDescription
T:CoreML.MLParameterKey
T:CoreML.MLReshapeFrequencyHint
+T:CoreML.MLSpecializationStrategy
+T:CoreML.MLState
+T:CoreML.MLStateConstraint
+T:CoreML.MLStateGetMultiArrayForStateHandler
+T:CoreML.MLStateGetPredictionCompletionHandler
T:CoreML.MLTask
T:CoreML.MLTaskState
T:CoreML.MLUpdateContext
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreML.ignore b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreML.ignore
new file mode 100644
index 0000000000..4f14e50480
--- /dev/null
+++ b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreML.ignore
@@ -0,0 +1,5 @@
+# These types are marked as unavailable in the headers if the min OS version is >= Xcode 16's OS versions, so xtro doesn't detect them as available.
+# We're removing them in XAMCORE_5_0.
+!unknown-field! MLModelCollectionDidChangeNotification bound
+!unknown-type! MLModelCollection bound
+!unknown-type! MLModelCollectionEntry bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreML.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreML.todo
deleted file mode 100644
index a305ecd144..0000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreML.todo
+++ /dev/null
@@ -1,28 +0,0 @@
-!missing-enum-value! MLMultiArrayDataType native value MLMultiArrayDataTypeFloat16 = 65552 not bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithSpecificationData:blobMapping:error: not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!unknown-field! MLModelCollectionDidChangeNotification bound
-!unknown-type! MLModelCollection bound
-!unknown-type! MLModelCollectionEntry bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreML.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreML.ignore
index 79bc878642..4f14e50480 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreML.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreML.ignore
@@ -1,2 +1,5 @@
-# Not available on iOS
-!missing-enum-value! MLMultiArrayDataType native value MLMultiArrayDataTypeFloat16 = 65552 not bound
+# These types are marked as unavailable in the headers if the min OS version is >= Xcode 16's OS versions, so xtro doesn't detect them as available.
+# We're removing them in XAMCORE_5_0.
+!unknown-field! MLModelCollectionDidChangeNotification bound
+!unknown-type! MLModelCollection bound
+!unknown-type! MLModelCollectionEntry bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreML.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreML.todo
deleted file mode 100644
index 38d32840cc..0000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreML.todo
+++ /dev/null
@@ -1,27 +0,0 @@
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!unknown-field! MLModelCollectionDidChangeNotification bound
-!unknown-type! MLModelCollection bound
-!unknown-type! MLModelCollectionEntry bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-selector! +MLModelAsset::modelAssetWithSpecificationData:blobMapping:error: not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreML.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreML.ignore
new file mode 100644
index 0000000000..4f14e50480
--- /dev/null
+++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreML.ignore
@@ -0,0 +1,5 @@
+# These types are marked as unavailable in the headers if the min OS version is >= Xcode 16's OS versions, so xtro doesn't detect them as available.
+# We're removing them in XAMCORE_5_0.
+!unknown-field! MLModelCollectionDidChangeNotification bound
+!unknown-type! MLModelCollection bound
+!unknown-type! MLModelCollectionEntry bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreML.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreML.todo
deleted file mode 100644
index 38d32840cc..0000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreML.todo
+++ /dev/null
@@ -1,27 +0,0 @@
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!unknown-field! MLModelCollectionDidChangeNotification bound
-!unknown-type! MLModelCollection bound
-!unknown-type! MLModelCollectionEntry bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-selector! +MLModelAsset::modelAssetWithSpecificationData:blobMapping:error: not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreML.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreML.ignore
deleted file mode 100644
index 79bc878642..0000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreML.ignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# Not available on iOS
-!missing-enum-value! MLMultiArrayDataType native value MLMultiArrayDataTypeFloat16 = 65552 not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreML.todo b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreML.todo
deleted file mode 100644
index a96c2a458f..0000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreML.todo
+++ /dev/null
@@ -1,24 +0,0 @@
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-selector! +MLModelAsset::modelAssetWithSpecificationData:blobMapping:error: not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound
diff --git a/tests/xtro-sharpie/iOS-CoreML.ignore b/tests/xtro-sharpie/iOS-CoreML.ignore
index 79bc878642..4f14e50480 100644
--- a/tests/xtro-sharpie/iOS-CoreML.ignore
+++ b/tests/xtro-sharpie/iOS-CoreML.ignore
@@ -1,2 +1,5 @@
-# Not available on iOS
-!missing-enum-value! MLMultiArrayDataType native value MLMultiArrayDataTypeFloat16 = 65552 not bound
+# These types are marked as unavailable in the headers if the min OS version is >= Xcode 16's OS versions, so xtro doesn't detect them as available.
+# We're removing them in XAMCORE_5_0.
+!unknown-field! MLModelCollectionDidChangeNotification bound
+!unknown-type! MLModelCollection bound
+!unknown-type! MLModelCollectionEntry bound
diff --git a/tests/xtro-sharpie/iOS-CoreML.todo b/tests/xtro-sharpie/iOS-CoreML.todo
deleted file mode 100644
index 38d32840cc..0000000000
--- a/tests/xtro-sharpie/iOS-CoreML.todo
+++ /dev/null
@@ -1,27 +0,0 @@
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!unknown-field! MLModelCollectionDidChangeNotification bound
-!unknown-type! MLModelCollection bound
-!unknown-type! MLModelCollectionEntry bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-selector! +MLModelAsset::modelAssetWithSpecificationData:blobMapping:error: not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound
diff --git a/tests/xtro-sharpie/macOS-CoreML.ignore b/tests/xtro-sharpie/macOS-CoreML.ignore
new file mode 100644
index 0000000000..4f14e50480
--- /dev/null
+++ b/tests/xtro-sharpie/macOS-CoreML.ignore
@@ -0,0 +1,5 @@
+# These types are marked as unavailable in the headers if the min OS version is >= Xcode 16's OS versions, so xtro doesn't detect them as available.
+# We're removing them in XAMCORE_5_0.
+!unknown-field! MLModelCollectionDidChangeNotification bound
+!unknown-type! MLModelCollection bound
+!unknown-type! MLModelCollectionEntry bound
diff --git a/tests/xtro-sharpie/macOS-CoreML.todo b/tests/xtro-sharpie/macOS-CoreML.todo
deleted file mode 100644
index 38d32840cc..0000000000
--- a/tests/xtro-sharpie/macOS-CoreML.todo
+++ /dev/null
@@ -1,27 +0,0 @@
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!unknown-field! MLModelCollectionDidChangeNotification bound
-!unknown-type! MLModelCollection bound
-!unknown-type! MLModelCollectionEntry bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-selector! +MLModelAsset::modelAssetWithSpecificationData:blobMapping:error: not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound
diff --git a/tests/xtro-sharpie/tvOS-CoreML.ignore b/tests/xtro-sharpie/tvOS-CoreML.ignore
deleted file mode 100644
index 79bc878642..0000000000
--- a/tests/xtro-sharpie/tvOS-CoreML.ignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# Not available on iOS
-!missing-enum-value! MLMultiArrayDataType native value MLMultiArrayDataTypeFloat16 = 65552 not bound
diff --git a/tests/xtro-sharpie/tvOS-CoreML.todo b/tests/xtro-sharpie/tvOS-CoreML.todo
deleted file mode 100644
index a96c2a458f..0000000000
--- a/tests/xtro-sharpie/tvOS-CoreML.todo
+++ /dev/null
@@ -1,24 +0,0 @@
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-selector! +MLModelAsset::modelAssetWithSpecificationData:blobMapping:error: not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound
diff --git a/tests/xtro-sharpie/watchOS-CoreML.ignore b/tests/xtro-sharpie/watchOS-CoreML.ignore
index dab7588f06..e39605624e 100644
--- a/tests/xtro-sharpie/watchOS-CoreML.ignore
+++ b/tests/xtro-sharpie/watchOS-CoreML.ignore
@@ -4,4 +4,3 @@
!missing-selector! MLModelConfiguration::preferredMetalDevice not bound
!missing-selector! MLModelConfiguration::setAllowLowPrecisionAccumulationOnGPU: not bound
!missing-selector! MLModelConfiguration::setPreferredMetalDevice: not bound
-!missing-enum-value! MLMultiArrayDataType native value MLMultiArrayDataTypeFloat16 = 65552 not bound
diff --git a/tests/xtro-sharpie/watchOS-CoreML.todo b/tests/xtro-sharpie/watchOS-CoreML.todo
deleted file mode 100644
index f3209a141a..0000000000
--- a/tests/xtro-sharpie/watchOS-CoreML.todo
+++ /dev/null
@@ -1,23 +0,0 @@
-!missing-enum-value! MLFeatureType native value MLFeatureTypeState = 8 not bound
-!missing-selector! +MLModelAsset::modelAssetWithURL:error: not bound
-!missing-selector! MLFeatureDescription::stateConstraint not bound
-!missing-selector! MLModel::newState not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:error: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:completionHandler: not bound
-!missing-selector! MLModel::predictionFromFeatures:usingState:options:error: not bound
-!missing-selector! MLModelAsset::modelDescriptionOfFunctionNamed:completionHandler: not bound
-!missing-selector! MLModelAsset::modelDescriptionWithCompletionHandler: not bound
-!missing-selector! MLModelConfiguration::functionName not bound
-!missing-selector! MLModelConfiguration::setFunctionName: not bound
-!missing-selector! MLModelDescription::stateDescriptionsByName not bound
-!missing-selector! MLState::getMultiArrayForStateNamed:handler: not bound
-!missing-selector! MLStateConstraint::bufferShape not bound
-!missing-selector! MLStateConstraint::dataType not bound
-!missing-type! MLState not bound
-!missing-type! MLStateConstraint not bound
-!missing-enum! MLSpecializationStrategy not bound
-!missing-selector! MLMultiArray::initWithShape:dataType:strides: not bound
-!missing-selector! MLMultiArray::transferToMultiArray: not bound
-!missing-selector! MLOptimizationHints::setSpecializationStrategy: not bound
-!missing-selector! MLOptimizationHints::specializationStrategy not bound
-!missing-selector! MLModelAsset::functionNamesWithCompletionHandler: not bound