diff --git a/Make.config b/Make.config index f7deff56fb..e9838de85d 100644 --- a/Make.config +++ b/Make.config @@ -140,8 +140,8 @@ MACCATALYST_NUGET_VERSION_FULL=$(MACCATALYST_NUGET_VERSION_NO_METADATA)+$(NUGET_ # Xcode version should have both a major and a minor version (even if the minor version is 0) XCODE_VERSION=13.0 -XCODE_URL=https://dl.internalx.com/internal-files/xcodes/Xcode_13_beta_4.xip -XCODE_DEVELOPER_ROOT=/Applications/Xcode_13.0.0-beta4.app/Contents/Developer +XCODE_URL=https://dl.internalx.com/internal-files/xcodes/Xcode_13_beta_5.xip +XCODE_DEVELOPER_ROOT=/Applications/Xcode_13.0.0-beta5.app/Contents/Developer XCODE_PRODUCT_BUILD_VERSION:=$(shell /usr/libexec/PlistBuddy -c 'Print :ProductBuildVersion' $(XCODE_DEVELOPER_ROOT)/../version.plist) # Mono version embedded in XI/XM (NEEDED_MONO_VERSION/BRANCH) are specified in mk/mono.mk @@ -167,9 +167,9 @@ MIN_CMAKE_URL=https://cmake.org/files/v3.6/cmake-3.6.2-Darwin-x86_64.dmg MIN_CMAKE_VERSION=2.8.8 # ObjectiveSharpie min/max versions -MIN_SHARPIE_VERSION=3.5.45 +MIN_SHARPIE_VERSION=3.5.46 MAX_SHARPIE_VERSION=3.5.99 -MIN_SHARPIE_URL=https://download.visualstudio.microsoft.com/download/pr/77766fbc-995f-410b-9546-4a1731051956/d3f34a07d9c3a2fcdda16bb3fe5b41e8/objectivesharpie-3.5.45.pkg +MIN_SHARPIE_URL=https://download.visualstudio.microsoft.com/download/pr/0e9ecce4-10b6-46a4-ae06-ad031b25eafc/761cd868c5c27f5b68765e1fa53fd873/objectivesharpie-3.5.46.pkg # Minimum OSX versions for building XI/XM MIN_OSX_BUILD_VERSION=11.0 diff --git a/dotnet/Makefile b/dotnet/Makefile index e57a135da0..a7c8e70337 100644 --- a/dotnet/Makefile +++ b/dotnet/Makefile @@ -143,6 +143,9 @@ $(DOTNET_NUPKG_DIR)/vs-workload.props: Workloads/vs-workload.template.props $(DOTNET_NUPKG_DIR)/SignList.xml: Workloads/SignList.xml $(Q) $(CP) $< $@ +$(DOTNET_NUPKG_DIR)/SignList.targets: Workloads/SignList.targets + $(Q) $(CP) $< $@ + TEMPLATED_FILES = \ $(foreach platform,$(DOTNET_PLATFORMS),Microsoft.$(platform).Sdk/targets/Microsoft.$(platform).Sdk.Versions.props) \ $(foreach platform,$(DOTNET_PLATFORMS),Microsoft.$(platform).Sdk/targets/Microsoft.$(platform).Sdk.SupportedTargetPlatforms.props) \ @@ -213,7 +216,7 @@ pack-$(shell echo $(1) | tr A-Z a-z): $$(RUNTIME_PACKS_$(1)) $$(REF_PACKS_$(1)) endef $(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),$(eval $(call PacksDefinitions,$(platform)))) -TARGETS += $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) $(TEMPLATE_PACKS) $(WORKLOAD_PACKS) $(DOTNET_NUPKG_DIR)/vs-workload.props $(DOTNET_NUPKG_DIR)/SignList.xml +TARGETS += $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) $(TEMPLATE_PACKS) $(WORKLOAD_PACKS) $(DOTNET_NUPKG_DIR)/vs-workload.props $(DOTNET_NUPKG_DIR)/SignList.xml $(DOTNET_NUPKG_DIR)/SignList.targets define InstallWorkload # .NET comes with a workload for us, but we don't want that, we want our own. So delete the workload that comes with .NET. diff --git a/dotnet/Workloads/SignList.targets b/dotnet/Workloads/SignList.targets new file mode 100644 index 0000000000..a63f1eeecc --- /dev/null +++ b/dotnet/Workloads/SignList.targets @@ -0,0 +1,53 @@ + + + + + <_NestedZipExtractionDir>$(_WorkingDir)nested\ + + + + <_NestedBrokerZip Include="$(_WorkingDir)**\Broker.zip" /> + <_NestedBuildZip Include="$(_WorkingDir)**\Build.zip" /> + <_NestediOSAppZip Include="$(_WorkingDir)**\Xamarin.PreBuilt.iOS.app.zip" /> + + + + + + + + + + + + + + + + + + + + + diff --git a/dotnet/Workloads/SignList.xml b/dotnet/Workloads/SignList.xml index cecbdf3811..c2936cd62f 100644 --- a/dotnet/Workloads/SignList.xml +++ b/dotnet/Workloads/SignList.xml @@ -3,11 +3,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + @@ -21,5 +58,21 @@ + + + + + + + + + + + + + + + + diff --git a/dotnet/targets/Xamarin.Shared.Sdk.targets b/dotnet/targets/Xamarin.Shared.Sdk.targets index 8d4aa650e4..db531f8f84 100644 --- a/dotnet/targets/Xamarin.Shared.Sdk.targets +++ b/dotnet/targets/Xamarin.Shared.Sdk.targets @@ -349,10 +349,10 @@ - <_MonoLibrary Remove="@(_MonoRuntimeComponentDontLink -> '$(_MonoRuntimePackPath)/native/%(Identity)')" /> + <_MonoLibrary Remove="@(_MonoRuntimeComponentDontLink -> '$(_MonoRuntimePackPath)native/%(Identity)')" /> - <_MonoLibrary Include="@(_MonoRuntimeComponentLink -> '$(_MonoRuntimePackPath)/native/%(Identity)')" /> + <_MonoLibrary Include="@(_MonoRuntimeComponentLink -> '$(_MonoRuntimePackPath)native/%(Identity)')" /> diff --git a/mk/mono.mk b/mk/mono.mk index d4ca385b47..9442f1803f 100644 --- a/mk/mono.mk +++ b/mk/mono.mk @@ -1,4 +1,4 @@ -NEEDED_MONO_VERSION := c633fe923832f0c3db3c4e6aa98e5592bf5a06e7 +NEEDED_MONO_VERSION := 8b6809243db21a9ab3e2c21570958ab9c537ce29 NEEDED_MONO_BRANCH := 2020-02 MONO_DIRECTORY := mono diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CompileAppManifestTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CompileAppManifestTaskBase.cs index 3e1983e2fe..815639b07c 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CompileAppManifestTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CompileAppManifestTaskBase.cs @@ -129,7 +129,7 @@ namespace Xamarin.MacDev.Tasks if (!Compile (plist)) return false; - // Merge with any partial plists generated by the Asset Catalog compiler... + // Merge with any partial plists... MergePartialPlistTemplates (plist); CompiledAppManifest = new TaskItem (Path.Combine (AppManifestBundleDirectory, "Info.plist")); diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CoreMLCompilerTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CoreMLCompilerTaskBase.cs index 4d30c08395..5c52330b45 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CoreMLCompilerTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CoreMLCompilerTaskBase.cs @@ -201,6 +201,9 @@ namespace Xamarin.MacDev.Tasks } BundleResources = bundleResources.ToArray (); + + if (PartialAppManifests != null) + partialPlists.AddRange (PartialAppManifests); PartialAppManifests = partialPlists.ToArray (); return !Log.HasLoggedErrors; diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ParseBundlerArgumentsTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ParseBundlerArgumentsTaskBase.cs index 910633da0a..69876202bf 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ParseBundlerArgumentsTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ParseBundlerArgumentsTaskBase.cs @@ -131,6 +131,7 @@ namespace Xamarin.MacDev.Tasks { xml.Add (value); break; default: + Log.LogMessage (MessageImportance.Low, "Skipping unknown argument '{0}' with value '{1}'", name, value); break; } } diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ReadItemsFromFileBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ReadItemsFromFileBase.cs index 2df2ee0692..1e6800034a 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ReadItemsFromFileBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ReadItemsFromFileBase.cs @@ -36,11 +36,16 @@ namespace Xamarin.MacDev.Tasks { var document = XDocument.Load (this.File.ItemSpec); - this.Items = document.Root + var items = document.Root .Elements (ItemGroupElementName) .SelectMany (element => element.Elements ()) .Select (element => this.CreateItemFromElement (element)) - .ToArray (); + .ToList (); + + if (Items != null) + items.AddRange (Items); + + Items = items.ToArray (); return true; } diff --git a/msbuild/Xamarin.Shared/Xamarin.Shared.targets b/msbuild/Xamarin.Shared/Xamarin.Shared.targets index 43d74ed694..4987aad290 100644 --- a/msbuild/Xamarin.Shared/Xamarin.Shared.targets +++ b/msbuild/Xamarin.Shared/Xamarin.Shared.targets @@ -286,7 +286,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. - + @@ -476,7 +476,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. SdkVersion="$(_SdkVersion)" TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)" > - + @@ -485,7 +485,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. - + @@ -703,7 +703,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. - + @@ -727,7 +727,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. ResourcePrefix="$(_ResourcePrefix)" SdkDevPath="$(_SdkDevPath)"> - + @@ -735,7 +735,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. - + diff --git a/src/AppKit/NSApplication.cs b/src/AppKit/NSApplication.cs index 22c26985af..f21eb5b069 100644 --- a/src/AppKit/NSApplication.cs +++ b/src/AppKit/NSApplication.cs @@ -25,6 +25,7 @@ #if !__MACCATALYST__ using System; +using System.ComponentModel; using System.Reflection; using System.Runtime.InteropServices; using System.Threading; @@ -36,7 +37,14 @@ namespace AppKit { public partial class NSApplication : NSResponder { public static bool CheckForIllegalCrossThreadCalls = true; public static bool CheckForEventAndDelegateMismatches = true; + +#if !(XAMCORE_4_0 && NET) +#if NET + [EditorBrowsable (EditorBrowsableState.Never)] + [Obsolete ("This field is ignored (treated as if always true).")] +#endif public static bool IgnoreMissingAssembliesDuringRegistration = false; +#endif private static Thread mainThread; diff --git a/src/AudioUnit/AudioComponentDescription.cs b/src/AudioUnit/AudioComponentDescription.cs index 952c0fa214..fe93a64dba 100644 --- a/src/AudioUnit/AudioComponentDescription.cs +++ b/src/AudioUnit/AudioComponentDescription.cs @@ -138,7 +138,6 @@ namespace AudioUnit #endif [Mac (10,15)] [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] Reverb2=0x72766232, // 'rvb2' NBandEq=0x6e626571, // 'nbeq' } diff --git a/src/CoreFoundation/CFArray.cs b/src/CoreFoundation/CFArray.cs index 071eb30182..4a96833459 100644 --- a/src/CoreFoundation/CFArray.cs +++ b/src/CoreFoundation/CFArray.cs @@ -142,5 +142,31 @@ namespace CoreFoundation { ret [i] = CFString.FromHandle (CFArrayGetValueAtIndex (handle, i)); return ret; } + + static T? UnsafeGetItem (IntPtr handle, nint index) where T : class, INativeObject + { + var val = CFArrayGetValueAtIndex (handle, index); + // Native code could return a CFArray with kCFNull inside its elements + // and they should be valid for things like T : NSDate so we handle + // them as just null values inside the array + if (val == CFNullHandle) + return null; + + return Runtime.GetINativeObject (val, false); + } + + // identical signature to NSArray API + static public T?[]? ArrayFromHandle (IntPtr handle) where T : class, INativeObject + { + if (handle == IntPtr.Zero) + return null; + + var c = CFArrayGetCount (handle); + T?[] ret = new T [c]; + + for (nint i = 0; i < c; i++) + ret [i] = UnsafeGetItem (handle, i); + return ret; + } } } diff --git a/src/ObjCRuntime/Runtime.cs b/src/ObjCRuntime/Runtime.cs index 4605696e58..c608c9759c 100644 --- a/src/ObjCRuntime/Runtime.cs +++ b/src/ObjCRuntime/Runtime.cs @@ -611,7 +611,7 @@ namespace ObjCRuntime { // that's more important for XI because device builds don't go thru this step // and we can end up with simulator-only failures - bug #29211 NSLog ("Could not find `{0}` referenced by assembly `{1}`.", fefe.FileName, assembly.FullName); -#if MONOMAC +#if MONOMAC && !NET if (!NSApplication.IgnoreMissingAssembliesDuringRegistration) throw; #endif diff --git a/src/SceneKit/Defs.cs b/src/SceneKit/Defs.cs index 1eb9f8426b..b3e23b5376 100644 --- a/src/SceneKit/Defs.cs +++ b/src/SceneKit/Defs.cs @@ -363,7 +363,7 @@ namespace SceneKit { { Metal, #if !MONOMAC - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [Unavailable (PlatformName.MacCatalyst)] OpenGLES2, #else OpenGLLegacy, diff --git a/src/Security/SecProtocolOptions.cs b/src/Security/SecProtocolOptions.cs index 041ea00488..0c36d8b347 100644 --- a/src/Security/SecProtocolOptions.cs +++ b/src/Security/SecProtocolOptions.cs @@ -47,7 +47,7 @@ namespace Security { [Deprecated (PlatformName.iOS, 13,0, message: "Use 'AddTlsCipherSuite (TlsCipherSuite)' instead.")] [Deprecated (PlatformName.WatchOS, 6,0, message: "Use 'AddTlsCipherSuite (TlsCipherSuite)' instead.")] [Deprecated (PlatformName.TvOS, 13,0, message: "Use 'AddTlsCipherSuite (TlsCipherSuite)' instead.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [Unavailable (PlatformName.MacCatalyst)] public void AddTlsCipherSuite (SslCipherSuite cipherSuite) => sec_protocol_options_add_tls_ciphersuite (GetCheckedHandle (), cipherSuite); [Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)] @@ -88,7 +88,7 @@ namespace Security { [Deprecated (PlatformName.iOS, 13,0, message: "Use 'SetTlsMinVersion (TlsProtocolVersion)' instead.")] [Deprecated (PlatformName.WatchOS, 6,0, message: "Use 'SetTlsMinVersion (TlsProtocolVersion)' instead.")] [Deprecated (PlatformName.TvOS, 13,0, message: "Use 'SetTlsMinVersion (TlsProtocolVersion)' instead.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [Unavailable (PlatformName.MacCatalyst)] public void SetTlsMinVersion (SslProtocol protocol) => sec_protocol_options_set_tls_min_version (GetCheckedHandle (), protocol); [Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)] @@ -109,7 +109,7 @@ namespace Security { [Deprecated (PlatformName.iOS, 13,0, message: "Use 'SetTlsMaxVersion (TlsProtocolVersion)' instead.")] [Deprecated (PlatformName.WatchOS, 6,0, message: "Use 'SetTlsMaxVersion (TlsProtocolVersion)' instead.")] [Deprecated (PlatformName.TvOS, 13,0, message: "Use 'SetTlsMaxVersion (TlsProtocolVersion)' instead.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [Unavailable (PlatformName.MacCatalyst)] public void SetTlsMaxVersion (SslProtocol protocol) => sec_protocol_options_set_tls_max_version (GetCheckedHandle (), protocol); [Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)] diff --git a/src/StoreKit/Enums.cs b/src/StoreKit/Enums.cs index 91d748c3a4..225032dac8 100644 --- a/src/StoreKit/Enums.cs +++ b/src/StoreKit/Enums.cs @@ -114,7 +114,8 @@ namespace StoreKit { } [NoWatch, NoTV, NoMac, iOS (14,0)] - [Native, Advice ("This API is not available when using UIKit on macOS.")] + [MacCatalyst (14,0)] + [Native] public enum SKOverlayPosition : long { SKOverlayPositionBottom = 0, Raised = 1, diff --git a/src/appkit.cs b/src/appkit.cs index ac61bd1e26..d2c1627630 100644 --- a/src/appkit.cs +++ b/src/appkit.cs @@ -17551,11 +17551,12 @@ namespace AppKit { [Export ("tabView", ArgumentSemantic.Strong)] NSTabView TabView { get; set; } -// [FAIL] Selector not found for AppKit.NSTabViewController : segmentedControl -// [FAIL] Selector not found for AppKit.NSTabViewController : setSegmentedControl: - [Availability (Obsoleted = Platform.Mac_10_11)] // Test failures on El Capitan +#if !XAMCORE_4_0 && MONOMAC + // This property does not exist in any stable header - it was probably added in a beta and then removed. + [Obsoleted (PlatformName.MacOSX, 10, 10, message: "Do not use; this API was removed.")] [Export ("segmentedControl", ArgumentSemantic.Strong)] NSSegmentedControl SegmentedControl { get; set; } +#endif [Export ("transitionOptions")] NSViewControllerTransitionOptions TransitionOptions { get; set; } diff --git a/src/avfoundation.cs b/src/avfoundation.cs index d7006e14f5..6064b48733 100644 --- a/src/avfoundation.cs +++ b/src/avfoundation.cs @@ -10993,7 +10993,7 @@ namespace AVFoundation { bool MultiCamSupported { [Bind ("isMultiCamSupported")] get; } [NoWatch, NoTV, NoMac, iOS (13, 0)] - [Advice ("This API is not available when using UIKit on macOS.")] + [MacCatalyst (14,0)] [Export ("globalToneMappingSupported")] bool GlobalToneMappingSupported { [Bind ("isGlobalToneMappingSupported")] get; } @@ -12917,9 +12917,8 @@ namespace AVFoundation { [Export ("paused")] bool Paused { [Bind ("isPaused")] get; } - [Unavailable (PlatformName.MacCatalyst)] [Watch (6,0), TV (13,0), NoMac, iOS (13,0)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("usesApplicationAudioSession")] bool UsesApplicationAudioSession { get; set; } diff --git a/src/callkit.cs b/src/callkit.cs index fa94430bea..d275c2816e 100644 --- a/src/callkit.cs +++ b/src/callkit.cs @@ -296,9 +296,8 @@ namespace CallKit { [Export ("getEnabledStatusForExtensionWithIdentifier:completionHandler:")] void GetEnabledStatusForExtension (string identifier, Action completion); - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoMac, iOS (13,4)] - [Advice ("This API is not available when using UIKit on macOS.")] [Async] [Export ("openSettingsWithCompletionHandler:")] void OpenSettings ([NullAllowed] Action completion); diff --git a/src/carplay.cs b/src/carplay.cs index bc4f87cd0f..941dd5094d 100644 --- a/src/carplay.cs +++ b/src/carplay.cs @@ -598,10 +598,6 @@ namespace CarPlay { [Export ("initWithTitle:sections:")] IntPtr Constructor ([NullAllowed] string title, CPListSection[] sections); - [iOS (15,0)] - [Export ("initWithTitle:sections:assistantCellVisibility:assistantCellPosition:")] - IntPtr Constructor ([NullAllowed] string title, CPListSection[] sections, CPAssistantCellVisibility visibility, CPAssistantCellPosition position); - [Deprecated (PlatformName.iOS, 14, 0, message: "Use 'CPListItem.Handler' instead.")] [Wrap ("WeakDelegate")] [NullAllowed] @@ -650,14 +646,6 @@ namespace CarPlay { [iOS (14, 0)] [Export ("emptyViewSubtitleVariants", ArgumentSemantic.Copy)] string[] EmptyViewSubtitleVariants { get; set; } - - [iOS (15, 0)] - [Export ("assistantCellVisibility", ArgumentSemantic.Assign)] - CPAssistantCellVisibility AssistantCellVisibility { get; set; } - - [iOS (15, 0)] - [Export ("assistantCellPosition", ArgumentSemantic.Assign)] - CPAssistantCellPosition AssistantCellPosition { get; set; } } interface ICPListTemplateDelegate { } diff --git a/src/coreaudiokit.cs b/src/coreaudiokit.cs index 090bcb4213..40d2caa566 100644 --- a/src/coreaudiokit.cs +++ b/src/coreaudiokit.cs @@ -172,7 +172,7 @@ namespace CoreAudioKit { [iOS (8,0)] [Deprecated (PlatformName.iOS, 13,0, message: "Use 'AudioUnit' instead.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (UIView))] interface CAInterAppAudioSwitcherView { [Export ("initWithFrame:")] @@ -190,7 +190,7 @@ namespace CoreAudioKit { [iOS (8,0)] [Deprecated (PlatformName.iOS, 13,0, message: "Use 'AudioUnit' instead.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (UIView))] interface CAInterAppAudioTransportView { [Export ("initWithFrame:")] diff --git a/src/corefoundation.cs b/src/corefoundation.cs index 0de50ee3f4..c454a2ea6a 100644 --- a/src/corefoundation.cs +++ b/src/corefoundation.cs @@ -29,6 +29,13 @@ namespace CoreFoundation { IntPtr null_ptr { get; } } + [Partial] + interface CFArray { + + [Internal][Field ("kCFNull")] + IntPtr /* CFNullRef */ CFNullHandle { get; } + } + [Partial] [Internal] interface CFBoolean { diff --git a/src/corelocation.cs b/src/corelocation.cs index 49f5c92f1b..206625830b 100644 --- a/src/corelocation.cs +++ b/src/corelocation.cs @@ -331,13 +331,13 @@ namespace CoreLocation { [NoWatch][NoTV][NoMac] [Deprecated (PlatformName.iOS, 13,0, message: "Not used anymore. Call will not have any effect.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("allowDeferredLocationUpdatesUntilTraveled:timeout:")] void AllowDeferredLocationUpdatesUntil (double distance, double timeout); [NoWatch][NoTV][NoMac] [Deprecated (PlatformName.iOS, 13,0, message: "Not used anymore. Call will not have any effect.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("disallowDeferredLocationUpdates")] void DisallowDeferredLocationUpdates (); @@ -373,7 +373,7 @@ namespace CoreLocation { void RequestState (CLRegion region); [NoWatch][NoTV][NoMac] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Deprecated (PlatformName.iOS, 13,0, message: "Use 'StartRangingBeacons(CLBeaconIdentityConstraint)' instead.")] [iOS (7,0), Export ("startRangingBeaconsInRegion:")] void StartRangingBeacons (CLBeaconRegion region); @@ -383,7 +383,7 @@ namespace CoreLocation { void StartRangingBeacons (CLBeaconIdentityConstraint constraint); [NoWatch][NoTV][NoMac] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Deprecated (PlatformName.iOS, 13,0, message: "Use 'StopRangingBeacons(CLBeaconIdentityConstraint)' instead.")] [iOS (7,0), Export ("stopRangingBeaconsInRegion:")] void StopRangingBeacons (CLBeaconRegion region); diff --git a/src/coremotion.cs b/src/coremotion.cs index d15552696c..4b5726daea 100644 --- a/src/coremotion.cs +++ b/src/coremotion.cs @@ -691,10 +691,12 @@ namespace CoreMotion { [Export ("authorizationStatus")] CMAuthorizationStatus AuthorizationStatus { get; } + [NoMac] [Wrap ("WeakDelegate")] [NullAllowed] ICMHeadphoneMotionManagerDelegate Delegate { get; set; } + [NoMac] [NullAllowed, Export ("delegate", ArgumentSemantic.Weak)] NSObject WeakDelegate { get; set; } @@ -721,7 +723,7 @@ namespace CoreMotion { [iOS (14,0)][Watch (7,0)] [MacCatalyst (14,0)] - [Mac (12,0)] + [NoMac] [Protocol, Model (AutoGeneratedName = true)] [BaseType (typeof (NSObject))] interface CMHeadphoneMotionManagerDelegate { diff --git a/src/fileprovider.cs b/src/fileprovider.cs index 089199ad1a..6990c0d96c 100644 --- a/src/fileprovider.cs +++ b/src/fileprovider.cs @@ -326,8 +326,7 @@ namespace FileProvider { [Export ("hidden")] bool Hidden { [Bind ("isHidden")] get; set; } - [Advice ("This API is not available when using UIKit on macOS.")] - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] [Export ("testingModes", ArgumentSemantic.Assign)] NSFileProviderDomainTestingModes TestingModes { get; set; } @@ -742,8 +741,7 @@ namespace FileProvider { interface INSFileProviderPendingSetEnumerator { } - [Advice ("This API is not available when using UIKit on macOS.")] - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] [Protocol] interface NSFileProviderPendingSetEnumerator : NSFileProviderEnumerator { @@ -878,9 +876,8 @@ namespace FileProvider { [Export ("requestingExecutable", ArgumentSemantic.Copy)] NSUrl RequestingExecutable { get; } - [Unavailable (PlatformName.MacCatalyst)] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NullAllowed, Export ("domainVersion")] NSFileProviderDomainVersion DomainVersion { get; } } @@ -1001,8 +998,7 @@ namespace FileProvider { [Export ("materializedItemsDidChangeWithCompletionHandler:")] void MaterializedItemsDidChange (Action completionHandler); - [Advice ("This API is not available when using UIKit on macOS.")] - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] [Export ("pendingItemsDidChangeWithCompletionHandler:")] void PendingItemsDidChange (Action completionHandler); @@ -1010,8 +1006,7 @@ namespace FileProvider { interface INSFileProviderDomainState { } - [Advice ("This API is not available when using UIKit on macOS.")] - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] [Protocol] interface NSFileProviderDomainState { @@ -1033,8 +1028,7 @@ namespace FileProvider { Interactive = 1uL << 1, } - [Advice ("This API is not available when using UIKit on macOS.")] - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] [BaseType (typeof (NSObject))] [DisableDefaultCtor] @@ -1047,9 +1041,9 @@ namespace FileProvider { NSComparisonResult Compare (NSFileProviderDomainVersion otherVersion); } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Native, Advice ("This API is not available when using UIKit on macOS.")] + [Native] public enum NSFileProviderTestingOperationType : long { Ingestion = 0, Lookup = 1, @@ -1063,9 +1057,9 @@ namespace FileProvider { interface INSFileProviderTestingOperation : global::ObjCRuntime.INativeObject { } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingOperation { [Abstract] @@ -1113,9 +1107,9 @@ namespace FileProvider { INSFileProviderTestingCollisionResolution GetAsCollisionResolution (); } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Native, Advice ("This API is not available when using UIKit on macOS.")] + [Native] public enum NSFileProviderTestingOperationSide : ulong { Disk = 0, FileProvider = 1, @@ -1123,9 +1117,9 @@ namespace FileProvider { interface INSFileProviderTestingIngestion { } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingIngestion : NSFileProviderTestingOperation { [Abstract] @@ -1143,9 +1137,8 @@ namespace FileProvider { interface INSFileProviderTestingLookup { } - [Unavailable (PlatformName.MacCatalyst)] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingLookup : NSFileProviderTestingOperation { [Abstract] @@ -1159,9 +1152,8 @@ namespace FileProvider { interface INSFileProviderTestingCreation { } - [Unavailable (PlatformName.MacCatalyst)] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingCreation : NSFileProviderTestingOperation { [Abstract] @@ -1179,9 +1171,9 @@ namespace FileProvider { interface INSFileProviderTestingModification { } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingModification : NSFileProviderTestingOperation { [Abstract] @@ -1211,9 +1203,9 @@ namespace FileProvider { interface INSFileProviderTestingDeletion { } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingDeletion : NSFileProviderTestingOperation { [Abstract] @@ -1239,9 +1231,9 @@ namespace FileProvider { interface INSFileProviderTestingContentFetch { } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingContentFetch : NSFileProviderTestingOperation { [Abstract] @@ -1255,9 +1247,9 @@ namespace FileProvider { interface INSFileProviderTestingChildrenEnumeration { } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingChildrenEnumeration : NSFileProviderTestingOperation { [Abstract] @@ -1271,9 +1263,9 @@ namespace FileProvider { interface INSFileProviderTestingCollisionResolution { } - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [NoWatch, NoTV, NoiOS, Mac (11,3)] - [Protocol, Advice ("This API is not available when using UIKit on macOS.")] + [Protocol] interface NSFileProviderTestingCollisionResolution : NSFileProviderTestingOperation { [Abstract] diff --git a/src/generator.cs b/src/generator.cs index 2da9333b7d..b27b2a0500 100644 --- a/src/generator.cs +++ b/src/generator.cs @@ -1760,7 +1760,7 @@ public partial class Generator : IMemberGatherer { Type et = pi.ParameterType.GetElementType (); if (IsWrappedType (et)){ pars.AppendFormat ("IntPtr {0}", safe_name); - invoke.AppendFormat ("NSArray.ArrayFromHandle<{0}> ({1})", FormatType (null, et), safe_name); + invoke.AppendFormat ("CFArray.ArrayFromHandle<{0}> ({1})!", FormatType (null, et), safe_name); continue; } } @@ -2708,7 +2708,7 @@ public partial class Generator : IMemberGatherer { if (by_ref_processing.Length > 0) print (sw, by_ref_processing.ToString ()); if (use_temp_return) - print ("return ret;"); + print ("return ret!;"); indent--; print ("}"); indent--; print ("}} /* class {0} */", ti.NativeInvokerName); @@ -3067,7 +3067,7 @@ public partial class Generator : IMemberGatherer { var fullname = propertyType.FullName; if (is_property_array_wrapped_type) { - print ("return NSArray.ArrayFromHandle<{0}> (value);", RenderType (et)); + print ("return CFArray.ArrayFromHandle<{0}> (value)!;", RenderType (et)); } else if (is_property_wrapped_type) { print ("return Runtime.GetNSObject<{0}> (value);", RenderType (propertyType)); } else if (propertyType == TypeManager.System_Double) @@ -3852,16 +3852,16 @@ public partial class Generator : IMemberGatherer { cast_a = "CFArray.StringArrayFromHandle ("; cast_b = ")!"; } else if (minfo != null && minfo.protocolize) { - cast_a = "NSArray.ArrayFromHandle("; - cast_b = ")"; + cast_a = "CFArray.ArrayFromHandle("; + cast_b = ")!"; } else if (etype == TypeManager.Selector) { exceptions.Add (ErrorHelper.CreateError (1066, mai.Type.FullName, mi.DeclaringType.FullName, mi.Name)); } else { if (NamespaceManager.NamespacesThatConflictWithTypes.Contains (etype.Namespace)) - cast_a = "NSArray.ArrayFromHandle("; + cast_a = "CFArray.ArrayFromHandle("; else - cast_a = "NSArray.ArrayFromHandle<" + FormatType (mi.DeclaringType, etype) + ">("; - cast_b = ")"; + cast_a = "CFArray.ArrayFromHandle<" + FormatType (mi.DeclaringType, etype) + ">("; + cast_b = ")!"; } } } @@ -4322,7 +4322,7 @@ public partial class Generator : IMemberGatherer { by_ref_processing.AppendFormat ("if ({0}Value != ({0}ArrayValue is null ? IntPtr.Zero : {0}ArrayValue.Handle))\n\t", pi.Name.GetSafeParamName ()); if (isArrayOfNSObject || isArrayOfINativeObjectSubclass) { - by_ref_processing.AppendFormat ("{0} = NSArray.ArrayFromHandle<{1}> ({0}Value);\n", pi.Name.GetSafeParamName (), RenderType (elementType.GetElementType ())); + by_ref_processing.AppendFormat ("{0} = CFArray.ArrayFromHandle<{1}> ({0}Value)!;\n", pi.Name.GetSafeParamName (), RenderType (elementType.GetElementType ())); } else if (isArrayOfString) { by_ref_processing.AppendFormat ("{0} = CFArray.StringArrayFromHandle ({0}Value)!;\n", pi.Name.GetSafeParamName ()); } else { diff --git a/src/intentsui.cs b/src/intentsui.cs index f33e4fe897..c5f4141e3b 100644 --- a/src/intentsui.cs +++ b/src/intentsui.cs @@ -105,8 +105,7 @@ namespace IntentsUI { [NullAllowed, Export ("delegate", ArgumentSemantic.Weak)] NSObject WeakDelegate { get; set; } - [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("initWithShortcut:")] IntPtr Constructor (INShortcut shortcut); } @@ -139,8 +138,7 @@ namespace IntentsUI { [NullAllowed, Export ("delegate", ArgumentSemantic.Weak)] NSObject WeakDelegate { get; set; } - [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("initWithVoiceShortcut:")] IntPtr Constructor (INVoiceShortcut voiceShortcut); } diff --git a/src/metal.cs b/src/metal.cs index 8921d07ecf..e9d0d0b064 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -877,18 +877,16 @@ namespace Metal { #if XAMCORE_4_0 [Abstract] #endif - [Unavailable (PlatformName.MacCatalyst)] [Mac (11,0), NoTV, iOS (13,0)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("getTextureAccessCounters:region:mipLevel:slice:resetCounters:countersBuffer:countersBufferOffset:")] void GetTextureAccessCounters (IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice, bool resetCounters, IMTLBuffer countersBuffer, nuint countersBufferOffset); #if XAMCORE_4_0 [Abstract] #endif - [Unavailable (PlatformName.MacCatalyst)] [Mac (11,0), NoTV, iOS (13,0)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("resetTextureAccessCounters:region:mipLevel:slice:")] void ResetTextureAccessCounters (IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice); @@ -1385,7 +1383,6 @@ namespace Metal { #endif [Introduced (PlatformName.MacCatalyst, 14, 0)] [Mac (11,0), NoTV, iOS (13,0)] - [Advice ("This API is not available when using UIKit on macOS.")] [Export ("sparseTileSizeWithTextureType:pixelFormat:sampleCount:")] MTLSize GetSparseTileSize (MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount); @@ -1834,27 +1831,24 @@ namespace Metal { #if XAMCORE_4_0 [Abstract] #endif - [Unavailable (PlatformName.MacCatalyst)] + [NoMacCatalyst] [Mac (11,0), NoTV, iOS (13, 0)] - [Advice ("This API is not available when using UIKit on macOS.")] [Export ("firstMipmapInTail")] nuint FirstMipmapInTail { get; } #if XAMCORE_4_0 [Abstract] #endif - [Unavailable (PlatformName.MacCatalyst)] [Mac (11,0), NoTV, iOS (13, 0)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("tailSizeInBytes")] nuint TailSizeInBytes { get; } #if XAMCORE_4_0 [Abstract] #endif - [Unavailable (PlatformName.MacCatalyst)] [Mac (11,0), NoTV, iOS (13, 0)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("isSparse")] bool IsSparse { get; } @@ -3454,9 +3448,8 @@ namespace Metal { nuint RenderTargetHeight { get; set; } /* Selectors reported missing by instrospection: https://github.com/xamarin/maccore/issues/1978 - [Unavailable (PlatformName.MacCatalyst)] [NoMac, NoTV, iOS (13, 0)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("maxVertexAmplificationCount")] nuint MaxVertexAmplificationCount { get; set; } */ diff --git a/src/passkit.cs b/src/passkit.cs index 2b1582f7f4..76cd166e05 100644 --- a/src/passkit.cs +++ b/src/passkit.cs @@ -243,14 +243,14 @@ namespace PassKit { PKPaymentToken Token { get; } [NoMac] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NoWatch] [Export ("billingAddress", ArgumentSemantic.Assign)] [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'BillingContact' instead.")] ABRecord BillingAddress { get; } [NoMac] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NoWatch] [Export ("shippingAddress", ArgumentSemantic.Assign)] [Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'ShippingContact' instead.")] @@ -307,7 +307,7 @@ namespace PassKit { [EventArgs ("PKPaymentRequestShippingMethodUpdate")] void DidSelectShippingMethod2 (PKPaymentAuthorizationViewController controller, PKShippingMethod shippingMethod, Action completion); - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Deprecated (PlatformName.iOS, 9, 0)] [NoMac] [Export ("paymentAuthorizationViewController:didSelectShippingAddress:completion:")] @@ -481,7 +481,7 @@ namespace PassKit { PKAddressField RequiredBillingAddressFields { get; set; } [NoMac] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NoWatch] [NullAllowed] // by default this property is null [Export ("billingAddress", ArgumentSemantic.Assign)] @@ -495,7 +495,7 @@ namespace PassKit { PKAddressField RequiredShippingAddressFields { get; set; } [NoMac] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NoWatch] [NullAllowed] // by default this property is null [Export ("shippingAddress", ArgumentSemantic.Assign)] diff --git a/src/photos.cs b/src/photos.cs index bfa713d9c8..c989f03aac 100644 --- a/src/photos.cs +++ b/src/photos.cs @@ -131,10 +131,9 @@ namespace Photos [Deprecated (PlatformName.TvOS, 11,0)] [Deprecated (PlatformName.iOS, 11,0)] - [Unavailable (PlatformName.MacCatalyst)] [NoMac] [Static] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("fetchAssetsWithALAssetURLs:options:")] PHFetchResult FetchAssets (NSUrl[] assetUrls, [NullAllowed] PHFetchOptions options); @@ -1385,8 +1384,7 @@ namespace Photos [Mac (10,13)] [NoiOS][NoTV] - [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (PHAssetCollection))] interface PHProject { @@ -1401,7 +1399,7 @@ namespace Photos [Mac (10,13)] [Unavailable (PlatformName.MacCatalyst)] [NoiOS][NoTV] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (PHChangeRequest))] interface PHProjectChangeRequest { diff --git a/src/photosui.cs b/src/photosui.cs index 4893956d96..7c798dfe02 100644 --- a/src/photosui.cs +++ b/src/photosui.cs @@ -477,8 +477,7 @@ namespace PhotosUI { [iOS (8,0)] [NoMac][NoTV] [DisableDefaultCtor] - [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Deprecated (PlatformName.iOS, 13, 0)] [BaseType (typeof (NSExtensionContext))] interface PHEditingExtensionContext diff --git a/src/pushkit.cs b/src/pushkit.cs index e3db3a4a80..d489205f0c 100644 --- a/src/pushkit.cs +++ b/src/pushkit.cs @@ -96,7 +96,7 @@ namespace PushKit [NoMac] [Abstract] // now optional in iOS 11 [Deprecated (PlatformName.iOS, 11,0, message: "Use the 'DidReceiveIncomingPushWithPayload' overload accepting an 'Action' argument instead.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("pushRegistry:didReceiveIncomingPushWithPayload:forType:"), EventArgs ("PKPushRegistryRecieved"), EventName ("IncomingPushReceived")] void DidReceiveIncomingPush (PKPushRegistry registry, PKPushPayload payload, string type); diff --git a/src/scenekit.cs b/src/scenekit.cs index f0229c3fe6..d3698621c7 100644 --- a/src/scenekit.cs +++ b/src/scenekit.cs @@ -1210,7 +1210,7 @@ namespace SceneKit { #if MONOMAC [iOS (8,0)] [Deprecated (PlatformName.MacOSX, 10, 14, message: "Please use Metal instead of OpenGL API.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (CAOpenGLLayer))] interface SCNLayer : SCNSceneRenderer, SCNTechniqueSupport { // We already pull in the Scene property from the SCNSceneRenderer protocol, no need to redefine it here. @@ -1680,7 +1680,7 @@ namespace SceneKit { [Deprecated (PlatformName.iOS, 10, 0)] [Deprecated (PlatformName.MacOSX, 10, 12)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NoWatch, NoTV] [NullAllowed, Export ("borderColor", ArgumentSemantic.Retain)] NSObject BorderColor { get; set; } @@ -2511,7 +2511,7 @@ namespace SceneKit { [NoTV, NoWatch] #endif [Availability (Deprecated = Platform.Mac_10_10, Message = "Use the SCNProgram's Opaque property instead.")] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Export ("programIsOpaque:")] bool IsProgramOpaque (SCNProgram program); #endif @@ -2568,7 +2568,7 @@ namespace SceneKit { [Export ("render")] [Deprecated (PlatformName.MacOSX, 10, 11)] [Deprecated (PlatformName.iOS, 9, 0)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] void Render (); [Mac (10,10)] @@ -3442,7 +3442,7 @@ namespace SceneKit { [Internal] // we'll make it public if there's a need for them (beside the strong dictionary we provide) interface SCNRenderingOptionsKeys { - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Field ("SCNPreferredRenderingAPIKey")] NSString RenderingApiKey { get; } diff --git a/src/uikit.cs b/src/uikit.cs index 038ddfe590..8173806123 100644 --- a/src/uikit.cs +++ b/src/uikit.cs @@ -2535,7 +2535,7 @@ namespace UIKit { UIApplicationShortcutIcon FromSystemImageName (string systemImageName); #if IOS // This is inside ContactsUI.framework - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Static, Export ("iconWithContact:")] UIApplicationShortcutIcon FromContact (CNContact contact); #endif // IOS @@ -15329,8 +15329,7 @@ namespace UIKit { IUIViewControllerTransitionCoordinator GetTransitionCoordinator (); } - [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NoTV] [Deprecated (PlatformName.iOS, 12, 0, message: "No longer supported; please adopt 'WKWebView'.")] [BaseType (typeof (UIView), Delegates=new string [] { "WeakDelegate" }, Events=new Type [] {typeof(UIWebViewDelegate)})] @@ -15434,8 +15433,7 @@ namespace UIKit { bool AllowsLinkPreview { get; set; } } - [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [NoTV] [Deprecated (PlatformName.iOS, 12, 0, message: "No longer supported; please adopt 'WKWebView' APIs.")] [BaseType (typeof (NSObject))] diff --git a/src/videosubscriberaccount.cs b/src/videosubscriberaccount.cs index 0e0d90efd5..adbe569df0 100644 --- a/src/videosubscriberaccount.cs +++ b/src/videosubscriberaccount.cs @@ -24,7 +24,7 @@ namespace VideoSubscriberAccount { [TV (10, 0)] [Mac (10,14)] [Unavailable (PlatformName.WatchOS)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [ErrorDomain ("VSErrorDomain")] public enum VSErrorCode : long { AccessNotGranted = 0, @@ -42,7 +42,7 @@ namespace VideoSubscriberAccount { [TV (10, 0)] [Mac (10,14)] [Unavailable (PlatformName.WatchOS)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] public enum VSAccountAccessStatus : long { NotDetermined = 0, Restricted = 1, @@ -54,7 +54,7 @@ namespace VideoSubscriberAccount { [TV (10, 0)] [Mac (10,14)] [Unavailable (PlatformName.WatchOS)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Static] [Internal] interface VSErrorInfoKeys { @@ -98,7 +98,7 @@ namespace VideoSubscriberAccount { [TV (10, 0)] [Mac (10,14)] [Unavailable (PlatformName.WatchOS)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (NSObject))] interface VSAccountManagerDelegate { @@ -158,7 +158,7 @@ namespace VideoSubscriberAccount { [Unavailable (PlatformName.WatchOS)] [Static] [Internal] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] interface VSCheckAccessOptionKeys { [Field ("VSCheckAccessOptionPrompt")] @@ -181,7 +181,7 @@ namespace VideoSubscriberAccount { [TV (10, 0)] [Mac (10,14)] [Unavailable (PlatformName.WatchOS)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (NSObject))] [DisableDefaultCtor] interface VSAccountManagerResult { @@ -194,7 +194,7 @@ namespace VideoSubscriberAccount { [TV (10, 0)] [Mac (10,14)] [Unavailable (PlatformName.WatchOS)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (NSObject))] interface VSAccountMetadata { @@ -219,7 +219,7 @@ namespace VideoSubscriberAccount { [Mac (10,14)] [TV (10, 0)] [Unavailable (PlatformName.WatchOS)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (NSObject))] interface VSAccountMetadataRequest { @@ -271,7 +271,7 @@ namespace VideoSubscriberAccount { [iOS (10,2)] [TV (10,1)] [Mac (10,14)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (NSObject))] interface VSAccountProviderResponse { @@ -292,7 +292,7 @@ namespace VideoSubscriberAccount { [iOS (10,2)] [TV (10,1)] [Mac (10,14)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] enum VSAccountProviderAuthenticationScheme { [Field ("VSAccountProviderAuthenticationSchemeSAML")] Saml, @@ -335,7 +335,7 @@ namespace VideoSubscriberAccount { [TV (11,0)][iOS (11,0)] [Mac (10,14)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (NSObject))] [DisableDefaultCtor] interface VSSubscriptionRegistrationCenter { @@ -348,7 +348,7 @@ namespace VideoSubscriberAccount { } [TV (14,2), iOS (14,2), Mac (11,0)] - [Unavailable (PlatformName.MacCatalyst)][Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [BaseType (typeof (NSObject))] [DisableDefaultCtor] interface VSAccountApplicationProvider { diff --git a/src/xkit.cs b/src/xkit.cs index 896deb8148..cd801b7eb0 100644 --- a/src/xkit.cs +++ b/src/xkit.cs @@ -1168,7 +1168,6 @@ namespace UIKit { [Deprecated (PlatformName.iOS, 13, 0, message: "Please use 'UsesDefaultHyphenation' or 'NSParagraphStyle.HyphenationFactor' instead.")] [Deprecated (PlatformName.WatchOS, 6, 0, message: "Please use 'UsesDefaultHyphenation' or 'NSParagraphStyle.HyphenationFactor' instead.")] [Deprecated (PlatformName.TvOS, 13, 0, message: "Please use 'UsesDefaultHyphenation' or 'NSParagraphStyle.HyphenationFactor' instead.")] - [Advice ("This API is not available when using UIKit on macOS.")] [NoMacCatalyst] [Export ("hyphenationFactor")] #if MONOMAC @@ -1296,8 +1295,7 @@ namespace UIKit { [Deprecated (PlatformName.iOS, 13, 0, message: "Use the overload that takes 'nint glyphCount' instead.")] [Deprecated (PlatformName.WatchOS, 6, 0, message: "Use the overload that takes 'nint glyphCount' instead.")] [Deprecated (PlatformName.TvOS, 13, 0, message: "Use the overload that takes 'nint glyphCount' instead.")] - [Unavailable (PlatformName.MacCatalyst)] - [Advice ("This API is not available when using UIKit on macOS.")] + [NoMacCatalyst] [Protected] // Can be overridden [Export ("showCGGlyphs:positions:count:font:matrix:attributes:inContext:")] void ShowGlyphs (IntPtr glyphs, IntPtr positions, nuint glyphCount, NSFont font, CGAffineTransform textMatrix, NSDictionary attributes, CGContext graphicsContext); diff --git a/tests/bindings-xcframework-test/dotnet/MacCatalyst/Makefile b/tests/bindings-xcframework-test/dotnet/MacCatalyst/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/MacCatalyst/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/bindings-xcframework-test/dotnet/MacCatalyst/bindings-xcframework-test.csproj b/tests/bindings-xcframework-test/dotnet/MacCatalyst/bindings-xcframework-test.csproj new file mode 100644 index 0000000000..f356662163 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/MacCatalyst/bindings-xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-maccatalyst + + + + + + + + + diff --git a/tests/bindings-xcframework-test/dotnet/iOS/Makefile b/tests/bindings-xcframework-test/dotnet/iOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/iOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/bindings-xcframework-test/dotnet/iOS/bindings-xcframework-test.csproj b/tests/bindings-xcframework-test/dotnet/iOS/bindings-xcframework-test.csproj new file mode 100644 index 0000000000..07d0bfb4fb --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/iOS/bindings-xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-ios + + + + + + + + + diff --git a/tests/bindings-xcframework-test/dotnet/macOS/Makefile b/tests/bindings-xcframework-test/dotnet/macOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/macOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/bindings-xcframework-test/dotnet/macOS/bindings-xcframework-test.csproj b/tests/bindings-xcframework-test/dotnet/macOS/bindings-xcframework-test.csproj new file mode 100644 index 0000000000..f1a8342a15 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/macOS/bindings-xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-macos + + + + + + + + + diff --git a/tests/bindings-xcframework-test/dotnet/shared.csproj b/tests/bindings-xcframework-test/dotnet/shared.csproj new file mode 100644 index 0000000000..582765de57 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/shared.csproj @@ -0,0 +1,51 @@ + + + + Library + true + true + $(DefineConstants);NET + $(DefineConstants);NET;XCFRAMEWORK;FRAMEWORK_TEST + latest + bindingstest + True + ..\..\..\..\product.snk + True + bindings-framework-test + + $([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..\..\..')) + $(RootTestsDirectory)\test-libraries + $(RootTestsDirectory)\bindings-framework-test + + + true + + $(DefineConstants);DEBUG + + + + + + + + + + libframework.m + + + libframework.h + + + + + + Framework + False + CoreLocation ModelIO + + + + + + + diff --git a/tests/bindings-xcframework-test/dotnet/shared.mk b/tests/bindings-xcframework-test/dotnet/shared.mk new file mode 100644 index 0000000000..97d95a62af --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/shared.mk @@ -0,0 +1,22 @@ +TOP=../../../.. +include $(TOP)/Make.config +include $(TOP)/mk/colors.mk + +prepare: + $(Q) $(MAKE) -C $(TOP)/tests/dotnet copy-dotnet-config + +reload: + $(Q) rm -Rf $(TOP)/tests/dotnet/packages + $(Q) $(MAKE) -C $(TOP) -j8 all + $(Q) $(MAKE) -C $(TOP) -j8 install + $(Q) git clean -xfdq + +reload-and-build: + $(Q) $(MAKE) reload + $(Q) $(MAKE) build + +build: prepare + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) + +diag: prepare + $(Q) $(DOTNET6) build /v:diag msbuild.binlog diff --git a/tests/bindings-xcframework-test/dotnet/tvOS/Makefile b/tests/bindings-xcframework-test/dotnet/tvOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/tvOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/bindings-xcframework-test/dotnet/tvOS/bindings-xcframework-test.csproj b/tests/bindings-xcframework-test/dotnet/tvOS/bindings-xcframework-test.csproj new file mode 100644 index 0000000000..c34d0b9628 --- /dev/null +++ b/tests/bindings-xcframework-test/dotnet/tvOS/bindings-xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-tvos + + + + + + + + + diff --git a/tests/common/PlatformInfo.cs b/tests/common/PlatformInfo.cs index c3a20c62b9..5794d9ed68 100644 --- a/tests/common/PlatformInfo.cs +++ b/tests/common/PlatformInfo.cs @@ -152,11 +152,16 @@ namespace Xamarin.Tests #if NET var list = new List (); foreach (var ca in attributeProvider.GetCustomAttributes (true)) { - if (ca is OSPlatformAttribute aa) - list.Add (aa.Convert ()); + if (ca is OSPlatformAttribute aa) { + var converted = aa.Convert (); + if (converted is not null) + list.Add (converted); + } // FIXME - temporary, while older attributes co-exists (in manual bindings) if (ca is AvailabilityBaseAttribute old) list.Add (old); + if (ca is ObsoleteAttribute) + return false; } return list.IsAvailable (targetPlatform); #else diff --git a/tests/dotnet/MyPartialAppManifestApp/AppDelegate.cs b/tests/dotnet/MyPartialAppManifestApp/AppDelegate.cs new file mode 100644 index 0000000000..24a52b91ba --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/AppDelegate.cs @@ -0,0 +1,19 @@ +using System; +using System.Runtime.InteropServices; + +using Foundation; + +namespace MySimpleApp +{ + public class Program + { + static int Main (string[] args) + { + GC.KeepAlive (typeof (NSObject)); // prevent linking away the platform assembly + + Console.WriteLine (Environment.GetEnvironmentVariable ("MAGIC_WORD")); + + return args.Length; + } + } +} diff --git a/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/Info.plist b/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/Info.plist new file mode 100644 index 0000000000..6631ffa6f2 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/Info.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/Makefile b/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/MyPartialAppManifestApp.csproj b/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/MyPartialAppManifestApp.csproj new file mode 100644 index 0000000000..ccebf1f778 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/MacCatalyst/MyPartialAppManifestApp.csproj @@ -0,0 +1,7 @@ + + + + net6.0-maccatalyst + + + diff --git a/tests/dotnet/MyPartialAppManifestApp/Makefile b/tests/dotnet/MyPartialAppManifestApp/Makefile new file mode 100644 index 0000000000..efb2400edc --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/Makefile @@ -0,0 +1,20 @@ +TOP=../../.. + +include $(TOP)/Make.config + +prepare: + cd .. && $(MAKE) global.json NuGet.config + rm -Rf */bin */obj + +all-ios: prepare + $(DOTNET6) build iOS/*.csproj /bl + +all-mac: prepare + $(DOTNET6) build macOS/*.csproj /bl + +run-mac: + ./macOS/bin/Debug/net6.0-macos/osx-x64/$(notdir $(CURDIR)).app/Contents/MacOS/$(notdir $(CURDIR)) + +diag: + cd .. && $(MAKE) global.json NuGet.config + $(DOTNET6) build /v:diag *binlog diff --git a/tests/dotnet/MyPartialAppManifestApp/Partial.plist b/tests/dotnet/MyPartialAppManifestApp/Partial.plist new file mode 100644 index 0000000000..e5046ab018 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/Partial.plist @@ -0,0 +1,8 @@ + + + + + Something + SomeValue + + diff --git a/tests/dotnet/MyPartialAppManifestApp/iOS/Info.plist b/tests/dotnet/MyPartialAppManifestApp/iOS/Info.plist new file mode 100644 index 0000000000..4cbda42237 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/iOS/Info.plist @@ -0,0 +1,8 @@ + + + + + + MinimumOSVersion + 10.0 + diff --git a/tests/dotnet/MyPartialAppManifestApp/iOS/Makefile b/tests/dotnet/MyPartialAppManifestApp/iOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/iOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/MyPartialAppManifestApp/iOS/MyPartialAppManifestApp.csproj b/tests/dotnet/MyPartialAppManifestApp/iOS/MyPartialAppManifestApp.csproj new file mode 100644 index 0000000000..bbb942faa1 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/iOS/MyPartialAppManifestApp.csproj @@ -0,0 +1,7 @@ + + + + net6.0-ios + + + diff --git a/tests/dotnet/MyPartialAppManifestApp/macOS/Info.plist b/tests/dotnet/MyPartialAppManifestApp/macOS/Info.plist new file mode 100644 index 0000000000..246b63052c --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/macOS/Info.plist @@ -0,0 +1,9 @@ + + + + + + LSMinimumSystemVersion + 11.0 + + diff --git a/tests/dotnet/MyPartialAppManifestApp/macOS/Makefile b/tests/dotnet/MyPartialAppManifestApp/macOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/macOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/MyPartialAppManifestApp/macOS/MyPartialAppManifestApp.csproj b/tests/dotnet/MyPartialAppManifestApp/macOS/MyPartialAppManifestApp.csproj new file mode 100644 index 0000000000..56f7fe0d8c --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/macOS/MyPartialAppManifestApp.csproj @@ -0,0 +1,7 @@ + + + + net6.0-macos + + + diff --git a/tests/dotnet/MyPartialAppManifestApp/shared.csproj b/tests/dotnet/MyPartialAppManifestApp/shared.csproj new file mode 100644 index 0000000000..fdd645a09b --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/shared.csproj @@ -0,0 +1,16 @@ + + + + Exe + + MyPartialAppManifestApp + com.xamarin.mypartialappmanifestapp + 3.14 + + + + + + + + diff --git a/tests/dotnet/MyPartialAppManifestApp/shared.mk b/tests/dotnet/MyPartialAppManifestApp/shared.mk new file mode 100644 index 0000000000..b31ea91a76 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/shared.mk @@ -0,0 +1,28 @@ +TOP=../../../.. +include $(TOP)/Make.config + +prepare: + $(Q) $(MAKE) -C $(TOP)/tests/dotnet copy-dotnet-config + +reload: + $(Q) rm -Rf $(TOP)/tests/dotnet/packages + $(Q) $(MAKE) -C $(TOP) -j8 all + $(Q) $(MAKE) -C $(TOP) -j8 install + $(Q) git clean -xfdq + +reload-and-build: + $(Q) $(MAKE) reload + $(Q) $(MAKE) build + +reload-and-run: + $(Q) $(MAKE) reload + $(Q) $(MAKE) run + +build: prepare + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) + +run: prepare + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) -t:Run + +diag: prepare + $(Q) $(DOTNET6) build /v:diag msbuild.binlog diff --git a/tests/dotnet/MyPartialAppManifestApp/tvOS/Info.plist b/tests/dotnet/MyPartialAppManifestApp/tvOS/Info.plist new file mode 100644 index 0000000000..6631ffa6f2 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/tvOS/Info.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/dotnet/MyPartialAppManifestApp/tvOS/Makefile b/tests/dotnet/MyPartialAppManifestApp/tvOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/tvOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/MyPartialAppManifestApp/tvOS/MyPartialAppManifestApp.csproj b/tests/dotnet/MyPartialAppManifestApp/tvOS/MyPartialAppManifestApp.csproj new file mode 100644 index 0000000000..07832eb3e0 --- /dev/null +++ b/tests/dotnet/MyPartialAppManifestApp/tvOS/MyPartialAppManifestApp.csproj @@ -0,0 +1,7 @@ + + + + net6.0-tvos + + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/AppDelegate.cs b/tests/dotnet/SimpleAppWithOldReferences/AppDelegate.cs new file mode 100644 index 0000000000..605c8b2538 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/AppDelegate.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.InteropServices; + +using Foundation; + +namespace MySimpleApp +{ + public class Program + { + static int Main (string[] args) + { + GC.KeepAlive (typeof (NSObject)); // prevent linking away the platform assembly + + Console.WriteLine (Environment.GetEnvironmentVariable ("MAGIC_WORD")); + Console.WriteLine (typeof (MyClass)); + + return args.Length; + } + } +} diff --git a/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/Info.plist b/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/Info.plist new file mode 100644 index 0000000000..246b63052c --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/Info.plist @@ -0,0 +1,9 @@ + + + + + + LSMinimumSystemVersion + 11.0 + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/Makefile b/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/SimpleAppWithOldReferences.csproj b/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/SimpleAppWithOldReferences.csproj new file mode 100644 index 0000000000..ccebf1f778 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/MacCatalyst/SimpleAppWithOldReferences.csproj @@ -0,0 +1,7 @@ + + + + net6.0-maccatalyst + + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/dotnet45assembly/Library.cs b/tests/dotnet/SimpleAppWithOldReferences/dotnet45assembly/Library.cs new file mode 100644 index 0000000000..681db6e6b9 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/dotnet45assembly/Library.cs @@ -0,0 +1,2 @@ +public class MyClass { +} diff --git a/tests/dotnet/SimpleAppWithOldReferences/dotnet45assembly/Makefile b/tests/dotnet/SimpleAppWithOldReferences/dotnet45assembly/Makefile new file mode 100644 index 0000000000..9188c3e964 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/dotnet45assembly/Makefile @@ -0,0 +1,8 @@ +TOP=../../../.. + +include $(TOP)/Make.config + +dotnet45assembly.dll: Library.cs + $(SYSTEM_CSC) -target:library -out:$@ $< + +all-local:: dotnet45assembly.dll diff --git a/tests/dotnet/SimpleAppWithOldReferences/iOS/Info.plist b/tests/dotnet/SimpleAppWithOldReferences/iOS/Info.plist new file mode 100644 index 0000000000..87024a4f4b --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/iOS/Info.plist @@ -0,0 +1,7 @@ + + + + + MinimumOSVersion + 10.0 + diff --git a/tests/dotnet/SimpleAppWithOldReferences/iOS/Makefile b/tests/dotnet/SimpleAppWithOldReferences/iOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/iOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/SimpleAppWithOldReferences/iOS/SimpleAppWithOldReferences.csproj b/tests/dotnet/SimpleAppWithOldReferences/iOS/SimpleAppWithOldReferences.csproj new file mode 100644 index 0000000000..bbb942faa1 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/iOS/SimpleAppWithOldReferences.csproj @@ -0,0 +1,7 @@ + + + + net6.0-ios + + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/macOS/Info.plist b/tests/dotnet/SimpleAppWithOldReferences/macOS/Info.plist new file mode 100644 index 0000000000..246b63052c --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/macOS/Info.plist @@ -0,0 +1,9 @@ + + + + + + LSMinimumSystemVersion + 11.0 + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/macOS/Makefile b/tests/dotnet/SimpleAppWithOldReferences/macOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/macOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/SimpleAppWithOldReferences/macOS/SimpleAppWithOldReferences.csproj b/tests/dotnet/SimpleAppWithOldReferences/macOS/SimpleAppWithOldReferences.csproj new file mode 100644 index 0000000000..0af05cf82e --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/macOS/SimpleAppWithOldReferences.csproj @@ -0,0 +1,7 @@ + + + + net6.0-macos + + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/shared.csproj b/tests/dotnet/SimpleAppWithOldReferences/shared.csproj new file mode 100644 index 0000000000..75a85d0b6f --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/shared.csproj @@ -0,0 +1,20 @@ + + + + Exe + + SimpleAppWithOldReferences + com.xamarin.mysimpleappwitholdreferences + 1.0 + + + + + + + + + + + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/shared.mk b/tests/dotnet/SimpleAppWithOldReferences/shared.mk new file mode 100644 index 0000000000..2680d399f5 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/shared.mk @@ -0,0 +1,34 @@ +TOP=../../../.. + +include $(TOP)/Make.config + +TESTNAME=$(shell basename "$(shell dirname "$(CURDIR)")") + +prepare: + $(Q) $(MAKE) -C $(TOP)/tests/dotnet copy-dotnet-config + +reload: + $(Q) rm -Rf $(TOP)/tests/dotnet/packages + $(Q) $(MAKE) -C $(TOP) -j8 all + $(Q) $(MAKE) -C $(TOP) -j8 install + $(Q) git clean -xfdq + +reload-and-build: + $(Q) $(MAKE) reload + $(Q) $(MAKE) build + +reload-and-run: + $(Q) $(MAKE) reload + $(Q) $(MAKE) run + +build: prepare + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) + +run: prepare + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) -t:Run + +run-bare: + $(Q) ./bin/Debug/net6.0-*/*/"$(TESTNAME)".app/Contents/MacOS/"$(TESTNAME)" + +diag: prepare + $(Q) $(DOTNET6) build /v:diag msbuild.binlog diff --git a/tests/dotnet/SimpleAppWithOldReferences/tvOS/Info.plist b/tests/dotnet/SimpleAppWithOldReferences/tvOS/Info.plist new file mode 100644 index 0000000000..6631ffa6f2 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/tvOS/Info.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/dotnet/SimpleAppWithOldReferences/tvOS/Makefile b/tests/dotnet/SimpleAppWithOldReferences/tvOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/tvOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/dotnet/SimpleAppWithOldReferences/tvOS/SimpleAppWithOldReferences.csproj b/tests/dotnet/SimpleAppWithOldReferences/tvOS/SimpleAppWithOldReferences.csproj new file mode 100644 index 0000000000..940a8d55a0 --- /dev/null +++ b/tests/dotnet/SimpleAppWithOldReferences/tvOS/SimpleAppWithOldReferences.csproj @@ -0,0 +1,7 @@ + + + + net6.0-tvos + + + diff --git a/tests/dotnet/UnitTests/PartialAppManifestTest.cs b/tests/dotnet/UnitTests/PartialAppManifestTest.cs new file mode 100644 index 0000000000..4db85b7283 --- /dev/null +++ b/tests/dotnet/UnitTests/PartialAppManifestTest.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; + +using NUnit.Framework; + +using Xamarin.Utils; +using Xamarin.MacDev; + +namespace Xamarin.Tests { + public class PartialAppManifestTest : TestBaseClass { + + [Test] + [TestCase (ApplePlatform.MacCatalyst, "maccatalyst-x64")] + public void Build (ApplePlatform platform, string runtimeIdentifiers) + { + var project = "MyPartialAppManifestApp"; + Configuration.IgnoreIfIgnoredPlatform (platform); + + var project_path = GetProjectPath (project, runtimeIdentifiers: runtimeIdentifiers, platform: platform, out var appPath); + Clean (project_path); + var properties = new Dictionary (verbosity); + SetRuntimeIdentifiers (properties, runtimeIdentifiers); + + DotNet.AssertBuild (project_path, properties); + + var infoPlistPath = GetInfoPListPath (platform, appPath); + var infoPlist = PDictionary.FromFile (infoPlistPath); + Assert.AreEqual ("com.xamarin.mypartialappmanifestapp", infoPlist.GetString ("CFBundleIdentifier").Value, "CFBundleIdentifier"); + Assert.AreEqual ("MyPartialAppManifestApp", infoPlist.GetString ("CFBundleDisplayName").Value, "CFBundleDisplayName"); + Assert.AreEqual ("3.14", infoPlist.GetString ("CFBundleVersion").Value, "CFBundleVersion"); + Assert.AreEqual ("3.14", infoPlist.GetString ("CFBundleShortVersionString").Value, "CFBundleShortVersionString"); + Assert.AreEqual ("SomeValue", infoPlist.GetString ("Something").Value, "Something"); + } + } +} diff --git a/tests/dotnet/UnitTests/ProjectTest.cs b/tests/dotnet/UnitTests/ProjectTest.cs index 4dbe890123..910df67edd 100644 --- a/tests/dotnet/UnitTests/ProjectTest.cs +++ b/tests/dotnet/UnitTests/ProjectTest.cs @@ -616,10 +616,39 @@ namespace Xamarin.Tests { ExecuteWithMagicWordAndAssert (appExecutable); } + [Test] + [TestCase (ApplePlatform.MacCatalyst, "maccatalyst-x64")] + [TestCase (ApplePlatform.MacOSX, "osx-x64")] + public void SimpleAppWithOldReferences (ApplePlatform platform, string runtimeIdentifiers) + { + var project = "SimpleAppWithOldReferences"; + Configuration.IgnoreIfIgnoredPlatform (platform); + + var project_path = GetProjectPath (project, runtimeIdentifiers: runtimeIdentifiers, platform: platform, out var appPath); + Clean (project_path); + + DotNet.AssertBuild (project_path, GetDefaultProperties (runtimeIdentifiers)); + + var appExecutable = Path.Combine (appPath, "Contents", "MacOS", Path.GetFileNameWithoutExtension (project_path)); + Assert.That (appExecutable, Does.Exist, "There is an executable"); + ExecuteWithMagicWordAndAssert (platform, runtimeIdentifiers, appExecutable); + } + + void ExecuteWithMagicWordAndAssert (ApplePlatform platform, string runtimeIdentifiers, string executable) + { + if (!CanExecute (platform, runtimeIdentifiers)) + return; + + ExecuteWithMagicWordAndAssert (executable); + } + void ExecuteWithMagicWordAndAssert (string executable) { var magicWord = Guid.NewGuid ().ToString (); - var env = new Dictionary { { "MAGIC_WORD", magicWord } }; + var env = new Dictionary { + { "MAGIC_WORD", magicWord }, + { "DYLD_FALLBACK_LIBRARY_PATH", null }, // VSMac might set this, which may cause tests to crash. + }; var output = new StringBuilder (); var rv = Execution.RunWithStringBuildersAsync (executable, Array.Empty (), environment: env, standardOutput: output, standardError: output, timeout: TimeSpan.FromSeconds (15)).Result; @@ -641,21 +670,6 @@ namespace Xamarin.Tests { Assert.That (output, Does.Not.Contain ("LinkerConfiguration:"), "Custom steps did not run as expected."); } - string GetInfoPListPath (ApplePlatform platform, string app_directory) - { - switch (platform) { - case ApplePlatform.iOS: - case ApplePlatform.TVOS: - case ApplePlatform.WatchOS: - return Path.Combine (app_directory, "Info.plist"); - case ApplePlatform.MacOSX: - case ApplePlatform.MacCatalyst: - return Path.Combine (app_directory, "Contents", "Info.plist"); - default: - throw new NotImplementedException ($"Unknown platform: {platform}"); - } - } - void AssertAppContents (ApplePlatform platform, string app_directory) { var info_plist_path = GetInfoPListPath (platform, app_directory); diff --git a/tests/dotnet/UnitTests/TestBaseClass.cs b/tests/dotnet/UnitTests/TestBaseClass.cs index 4b184886db..31dc450c4e 100644 --- a/tests/dotnet/UnitTests/TestBaseClass.cs +++ b/tests/dotnet/UnitTests/TestBaseClass.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using System.Text; using Mono.Cecil; @@ -77,5 +78,45 @@ namespace Xamarin.Tests { Directory.Delete (dir, true); } } + + protected bool CanExecute (ApplePlatform platform, string runtimeIdentifiers) + { + switch (platform) { + case ApplePlatform.iOS: + case ApplePlatform.TVOS: + case ApplePlatform.WatchOS: + return false; + case ApplePlatform.MacOSX: + case ApplePlatform.MacCatalyst: + // If we're targetting x64, then we can execute everywhere + if (runtimeIdentifiers.Contains ("-x64", StringComparison.Ordinal)) + return true; + + // If we're not targeting x64, and we're executing on x64, then we're out of luck + if (RuntimeInformation.ProcessArchitecture == Architecture.X64) + return false; + + // Otherwise we can still execute. + return true; + default: + throw new ArgumentOutOfRangeException ($"Unknown platform: {platform}"); + } + } + + protected string GetInfoPListPath (ApplePlatform platform, string app_directory) + { + switch (platform) { + case ApplePlatform.iOS: + case ApplePlatform.TVOS: + case ApplePlatform.WatchOS: + return Path.Combine (app_directory, "Info.plist"); + case ApplePlatform.MacOSX: + case ApplePlatform.MacCatalyst: + return Path.Combine (app_directory, "Contents", "Info.plist"); + default: + throw new NotImplementedException ($"Unknown platform: {platform}"); + } + } + } } diff --git a/tests/introspection/ApiAvailabilityTest.cs b/tests/introspection/ApiAvailabilityTest.cs index 413bbade75..d0a4592c34 100644 --- a/tests/introspection/ApiAvailabilityTest.cs +++ b/tests/introspection/ApiAvailabilityTest.cs @@ -393,9 +393,7 @@ namespace Introspection { } [Test] -#if IOS || TVOS || __MACCATALYST__ [Ignore ("work in progress")] -#endif public void LegacyAttributes () { //LogProgress = true; diff --git a/tests/introspection/ApiCMAttachmentTest.cs b/tests/introspection/ApiCMAttachmentTest.cs index 63191aede1..228151091d 100644 --- a/tests/introspection/ApiCMAttachmentTest.cs +++ b/tests/introspection/ApiCMAttachmentTest.cs @@ -229,6 +229,7 @@ namespace Introspection { return true; case "SecIdentity": // hangs with xcode12.5 beta 2 while loading p12 file case "SecIdentity2": // same (dupe logic) + case "Authorization": return true; default: return false; @@ -464,6 +465,10 @@ namespace Introspection { } case "SecAccessControl": return new SecAccessControl (SecAccessible.WhenPasscodeSetThisDeviceOnly); +#if __MACCATALYST__ + case "Authorization": + return Security.Authorization.Create (AuthorizationFlags.Defaults); +#endif default: throw new InvalidOperationException (string.Format ("Could not create the new instance for type {0}.", t.Name)); } diff --git a/tests/introspection/Mac/MacApiProtocolTest.cs b/tests/introspection/Mac/MacApiProtocolTest.cs index dda291df14..de0fc3c832 100644 --- a/tests/introspection/Mac/MacApiProtocolTest.cs +++ b/tests/introspection/Mac/MacApiProtocolTest.cs @@ -160,6 +160,7 @@ namespace Introspection { case "NSEntityMapping": case "NSMappingModel": case "NSPropertyMapping": + case "HMAccessoryOwnershipToken": return true; } break; diff --git a/tests/introspection/dotnet/MacCatalyst/introspection.csproj b/tests/introspection/dotnet/MacCatalyst/introspection.csproj index 44cef04563..f356662163 100644 --- a/tests/introspection/dotnet/MacCatalyst/introspection.csproj +++ b/tests/introspection/dotnet/MacCatalyst/introspection.csproj @@ -2,136 +2,12 @@ net6.0-maccatalyst - maccatalyst-x64 - Exe - NET - latest - Introspection - introspection - None - xamarinios10;$(AssetTargetFallback) - - $(DefaultItemExcludes);packages/**; - false - - - - - - - + + - - - - - - - - - - - - - ApiBaseTest.cs - - - ApiClassPtrTest.cs - - - ApiCMAttachmentTest.cs - - - ApiCoreImageFiltersTest.cs - - - ApiCtorInitTest.cs - - - ApiFieldTest.cs - - - ApiPInvokeTest.cs - - - ApiProtocolTest.cs - - - ApiSelectorTest.cs - - - ApiSignatureTest.cs - - - ApiStructTest.cs - - - ApiTypoTest.cs - - - ApiWeakPropertyTest.cs - - - CoreSelectorTest.cs - - - EnvironmentVariable.cs - - - MonoNativeConfig.cs - - - PlatformInfo.cs - - - TestRuntime.cs - - - ApiAvailabilityTest.cs - - - Frameworks.cs - - - ApplePlatform.cs - - - SdkVersions.cs - - - ApiFrameworkTest.cs - - - ApiTypeTest.cs - - - - - - - - - - - - - - - - - - - - - - - xamarin1.png - - - simlauncher64-sgen.frameworks - + diff --git a/tests/introspection/dotnet/Makefile b/tests/introspection/dotnet/Makefile new file mode 100644 index 0000000000..c07acf79f1 --- /dev/null +++ b/tests/introspection/dotnet/Makefile @@ -0,0 +1,8 @@ +TOP=../../.. +include $(TOP)/Make.config + +build-all: + for platform in $(DOTNET_PLATFORMS); do \ + echo "Building in $$platform"; \ + $(MAKE) -C "$$platform" build; \ + done diff --git a/tests/introspection/dotnet/iOS/Makefile b/tests/introspection/dotnet/iOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/introspection/dotnet/iOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/introspection/dotnet/iOS/introspection.csproj b/tests/introspection/dotnet/iOS/introspection.csproj index 8ea98ed3c6..07d0bfb4fb 100644 --- a/tests/introspection/dotnet/iOS/introspection.csproj +++ b/tests/introspection/dotnet/iOS/introspection.csproj @@ -2,136 +2,12 @@ net6.0-ios - iossimulator-x64 - Exe - NET - latest - Introspection - introspection - None - xamarinios10;$(AssetTargetFallback) - - $(DefaultItemExcludes);packages/**; - false - - - - - - - + + - - - - - - - - - - - - - ApiBaseTest.cs - - - ApiClassPtrTest.cs - - - ApiCMAttachmentTest.cs - - - ApiCoreImageFiltersTest.cs - - - ApiCtorInitTest.cs - - - ApiFieldTest.cs - - - ApiPInvokeTest.cs - - - ApiProtocolTest.cs - - - ApiSelectorTest.cs - - - ApiSignatureTest.cs - - - ApiStructTest.cs - - - ApiTypoTest.cs - - - ApiWeakPropertyTest.cs - - - CoreSelectorTest.cs - - - EnvironmentVariable.cs - - - MonoNativeConfig.cs - - - PlatformInfo.cs - - - TestRuntime.cs - - - ApiAvailabilityTest.cs - - - Frameworks.cs - - - ApplePlatform.cs - - - SdkVersions.cs - - - ApiFrameworkTest.cs - - - ApiTypeTest.cs - - - - - - - - - - - - - - - - - - - - - - - xamarin1.png - - - simlauncher64-sgen.frameworks - + diff --git a/tests/introspection/dotnet/macOS/Info.plist b/tests/introspection/dotnet/macOS/Info.plist new file mode 100644 index 0000000000..9c5a6b69d9 --- /dev/null +++ b/tests/introspection/dotnet/macOS/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDisplayName + introspection + CFBundleIdentifier + com.xamarin.introspection + CFBundleVersion + 1 + LSMinimumSystemVersion + 10.14 + NSPrincipalClass + NSApplication + LSApplicationCategoryType + public.app-category.developer-tools + CFBundleName + introspection + LSUIElement + 1 + NSAppleMusicUsageDescription + Testing tastes + NSCameraUsageDescription + Smile! + NSContactsUsageDescription + Testing friends + NSHomeKitUsageDescription + Testing roofs + NSMicrophoneUsageDescription + Testing mike + NSPhotoLibraryUsageDescription + Testing lens + + diff --git a/tests/introspection/dotnet/macOS/Makefile b/tests/introspection/dotnet/macOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/introspection/dotnet/macOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/introspection/dotnet/macOS/introspection.csproj b/tests/introspection/dotnet/macOS/introspection.csproj new file mode 100644 index 0000000000..f1a8342a15 --- /dev/null +++ b/tests/introspection/dotnet/macOS/introspection.csproj @@ -0,0 +1,13 @@ + + + + net6.0-macos + + + + + + + + + diff --git a/tests/introspection/dotnet/shared.csproj b/tests/introspection/dotnet/shared.csproj new file mode 100644 index 0000000000..17e52f7dfd --- /dev/null +++ b/tests/introspection/dotnet/shared.csproj @@ -0,0 +1,166 @@ + + + + Exe + $(DefineConstants);NET + latest + Introspection + introspection + None + + $([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..\..\..')) + $(RootTestsDirectory)\test-libraries + $(RootTestsDirectory)\introspection + + + true + + $(DefineConstants);DEBUG + + + + + + + + + + + + + + + + + + + + + + + MacMain.cs + + + Mac.cs + + + TestRuntime.macos.cs + + + + + + + + + + + + + + + + + + ApiCMAttachmentTest.cs + + + + + + + + + + + + + + + + + + + ApiBaseTest.cs + + + ApiClassPtrTest.cs + + + ApiCoreImageFiltersTest.cs + + + ApiCtorInitTest.cs + + + ApiFieldTest.cs + + + ApiPInvokeTest.cs + + + ApiProtocolTest.cs + + + ApiSelectorTest.cs + + + ApiSignatureTest.cs + + + ApiStructTest.cs + + + ApiTypoTest.cs + + + ApiWeakPropertyTest.cs + + + CoreSelectorTest.cs + + + EnvironmentVariable.cs + + + MonoNativeConfig.cs + + + PlatformInfo.cs + + + TestRuntime.cs + + + ApiAvailabilityTest.cs + + + Frameworks.cs + + + ApplePlatform.cs + + + SdkVersions.cs + + + ApiFrameworkTest.cs + + + ApiTypeTest.cs + + + + + + + + + + xamarin1.png + + + simlauncher64-sgen.frameworks + + + diff --git a/tests/introspection/dotnet/shared.mk b/tests/introspection/dotnet/shared.mk index 29a8be2e16..bc7ccd2596 100644 --- a/tests/introspection/dotnet/shared.mk +++ b/tests/introspection/dotnet/shared.mk @@ -1,12 +1,29 @@ TOP=../../../.. - include $(TOP)/Make.config +include $(TOP)/mk/colors.mk prepare: - $(MAKE) -C $(TOP)/tests/dotnet copy-dotnet-config + $(Q) $(MAKE) -C $(TOP)/tests/dotnet copy-dotnet-config + +reload: + $(Q) rm -Rf $(TOP)/tests/dotnet/packages + $(Q) $(MAKE) -C $(TOP) -j8 all + $(Q) $(MAKE) -C $(TOP) -j8 install + $(Q) git clean -xfdq + +reload-and-build: + $(Q) $(MAKE) reload + $(Q) $(MAKE) build + +reload-and-run: + $(Q) $(MAKE) reload + $(Q) $(MAKE) run build: prepare - $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) run: prepare - $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) /t:Run + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) -t:Run + +diag: prepare + $(Q) $(DOTNET6) build /v:diag msbuild.binlog diff --git a/tests/introspection/dotnet/tvOS/Makefile b/tests/introspection/dotnet/tvOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/introspection/dotnet/tvOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/introspection/dotnet/tvOS/introspection.csproj b/tests/introspection/dotnet/tvOS/introspection.csproj index 4a11ce8cd0..eab18ac804 100644 --- a/tests/introspection/dotnet/tvOS/introspection.csproj +++ b/tests/introspection/dotnet/tvOS/introspection.csproj @@ -2,130 +2,12 @@ net6.0-tvos - tvossimulator-x64 - Exe - NET - latest - Introspection - introspection - None - xamarintvos10;$(AssetTargetFallback) - - - - - - - + + - - - - - - - - - - - - - ApiBaseTest.cs - - - ApiClassPtrTest.cs - - - ApiCMAttachmentTest.cs - - - ApiCoreImageFiltersTest.cs - - - ApiCtorInitTest.cs - - - ApiFieldTest.cs - - - ApiPInvokeTest.cs - - - ApiProtocolTest.cs - - - ApiSelectorTest.cs - - - ApiSignatureTest.cs - - - ApiStructTest.cs - - - ApiTypoTest.cs - - - ApiWeakPropertyTest.cs - - - CoreSelectorTest.cs - - - EnvironmentVariable.cs - - - MonoNativeConfig.cs - - - PlatformInfo.cs - - - TestRuntime.cs - - - ApiAvailabilityTest.cs - - - Frameworks.cs - - - ApplePlatform.cs - - - SdkVersions.cs - - - ApiFrameworkTest.cs - - - ApiTypeTest.cs - - - - - - - - - - - - - - - - - - - - xamarin1.png - - - simlauncher64-sgen.frameworks - + diff --git a/tests/introspection/iOS/iOSApiProtocolTest.cs b/tests/introspection/iOS/iOSApiProtocolTest.cs index 17bc99cecf..7c769d5ac6 100644 --- a/tests/introspection/iOS/iOSApiProtocolTest.cs +++ b/tests/introspection/iOS/iOSApiProtocolTest.cs @@ -761,6 +761,7 @@ namespace Introspection { case "HKDiscreteQuantitySample": // Conformance not in headers case "HKAudiogramSample": // Conformance not in headers case "UIImage": // only complains on tvOS beta 6 + case "HMAccessoryOwnershipToken": return true; // Xcode 12 beta 2 case "HKElectrocardiogram": // Conformance not in headers diff --git a/tests/linker/ios/link sdk/ReflectionTest.cs b/tests/linker/ios/link sdk/ReflectionTest.cs index 999f3c2f27..7d834d164b 100644 --- a/tests/linker/ios/link sdk/ReflectionTest.cs +++ b/tests/linker/ios/link sdk/ReflectionTest.cs @@ -16,9 +16,6 @@ namespace Linker.Shared.Reflection { { } -#if NET - [Ignore ("Metadata reduction not implemented yet: https://github.com/xamarin/xamarin-macios/issues/9612")] -#endif [Test] public void ParameterInfoName () { @@ -28,7 +25,8 @@ namespace Linker.Shared.Reflection { var mi = this.GetType ().GetMethod ("MethodWithParameters"); var p = mi.GetParameters (); -#if DEBUG +#if DEBUG && !NET + // dotnet has adopted (and adapted) the metadata reducer and runs it on it's own conditions var optimized = false; #else var optimized = TestRuntime.IsLinkAll; diff --git a/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs b/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs index 38426f1204..8cffcf8fd8 100644 --- a/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs +++ b/tests/monotouch-test/ObjCRuntime/RegistrarTest.cs @@ -1374,9 +1374,7 @@ namespace MonoTouchFixtures.ObjCRuntime { Assert.AreNotEqual (IntPtr.Zero, Runtime.GetProtocol (iProtocol), "IProtocol"); Assert.IsTrue (Messaging.bool_objc_msgSend_IntPtr (Class.GetHandle (typeof (MyProtocolImplementation)), Selector.GetHandle ("conformsToProtocol:"), Runtime.GetProtocol (iProtocol)), "Interface/IProtocol"); #if !__TVOS__ && !__WATCHOS__ && !MONOMAC - #if !NET // https://github.com/xamarin/xamarin-macios/issues/11540 Assert.IsTrue (Messaging.bool_objc_msgSend_IntPtr (Class.GetHandle (typeof (Test24970)), Selector.GetHandle ("conformsToProtocol:"), Protocol.GetHandle ("UIApplicationDelegate")), "UIApplicationDelegate/17669"); - #endif #endif // We don't support [Adopts] (yet at least). // Assert.IsTrue (Messaging.bool_objc_msgSend_IntPtr (Class.GetHandle (typeof (ConformsToProtocolTestClass)), Selector.GetHandle ("conformsToProtocol:"), Runtime.GetProtocol ("NSCoding")), "Adopts/ConformsToProtocolTestClass"); diff --git a/tests/monotouch-test/UIKit/TextFieldTest.cs b/tests/monotouch-test/UIKit/TextFieldTest.cs index 16a44cd1a4..62e80cb408 100644 --- a/tests/monotouch-test/UIKit/TextFieldTest.cs +++ b/tests/monotouch-test/UIKit/TextFieldTest.cs @@ -45,9 +45,15 @@ namespace MonoTouchFixtures.UIKit { } else { Assert.IsNull (tf.SelectedTextRange, "SelectedTextRange"); } - if (TestRuntime.CheckXcodeVersion (11, 0)) { + if (TestRuntime.CheckXcodeVersion (13, 0)) { +#if !__TVOS__ + Assert.That (tf.TypingAttributes, Is.Empty, "default 13.0"); +#else + Assert.That (tf.TypingAttributes, Is.Not.Empty, "default 13.0"); +#endif + } else if (TestRuntime.CheckXcodeVersion (11, 0)) { if (TestRuntime.CheckXcodeVersion (11, 4)) - Assert.That (tf.TypingAttributes, Is.Not.Empty, "default"); // iOS 13.4 returns contents + Assert.That (tf.TypingAttributes, Is.Not.Empty, "default 11.4"); // iOS 13.4 returns contents else Assert.That (tf.TypingAttributes, Is.Empty, "default"); } else { @@ -55,13 +61,20 @@ namespace MonoTouchFixtures.UIKit { } // ^ calling TypingAttributes does not crash like UITextView does, it simply returns null tf.TypingAttributes = new NSDictionary (); - if (TestRuntime.CheckXcodeVersion (11, 0)) { + if (TestRuntime.CheckXcodeVersion (13, 0)) { +#if !__TVOS__ + Assert.That (tf.TypingAttributes, Is.Empty, "empty 13.0"); +#else + Assert.That (tf.TypingAttributes, Is.Not.Empty, "empty 13.0"); +#endif + + } else if (TestRuntime.CheckXcodeVersion (11, 0)) { if (TestRuntime.CheckXcodeVersion (11, 4)) - Assert.That (tf.TypingAttributes, Is.Not.Empty, "not empty"); // iOS 13.4 returns contents + Assert.That (tf.TypingAttributes, Is.Not.Empty, "not empty 11.4"); // iOS 13.4 returns contents else Assert.That (tf.TypingAttributes, Is.Empty, "empty"); } else { - Assert.IsNull (tf.TypingAttributes, "empty"); + Assert.IsNull (tf.TypingAttributes, "empty not xcode 11"); } // and it stays null, even if assigned, since there's not selection } diff --git a/tests/perftest/TollFreeBridge.cs b/tests/perftest/TollFreeBridge.cs index 9623a96838..a21079e1f4 100644 --- a/tests/perftest/TollFreeBridge.cs +++ b/tests/perftest/TollFreeBridge.cs @@ -120,5 +120,25 @@ namespace PerfTest { { NSArray.StringArrayFromHandle (value.Handle); } - } + + /* + * Measure time required to create a managed `NSObject[]` array from a native one using `CFArray.ArrayFromHandle` + */ + [Benchmark] + [ArgumentsSource (nameof (ArraysOfStrings))] + public void CFArray_ArrayFromHandle (string name, NSArray value) + { + CFArray.ArrayFromHandle (value.Handle); + } + + /* + * Measure time required to create a managed `NSObject[]` array from a native one using `CFArray.ArrayFromHandle` + */ + [Benchmark] + [ArgumentsSource (nameof (ArraysOfStrings))] + public void NSArray_ArrayFromHandle (string name, NSArray value) + { + NSArray.ArrayFromHandle (value.Handle); + } + } } diff --git a/tests/xcframework-test/dotnet/MacCatalyst/Info.plist b/tests/xcframework-test/dotnet/MacCatalyst/Info.plist new file mode 100644 index 0000000000..6af0db6e21 --- /dev/null +++ b/tests/xcframework-test/dotnet/MacCatalyst/Info.plist @@ -0,0 +1,14 @@ + + + + + CFBundleDisplayName + xcframework-test + CFBundleIdentifier + com.xamarin.xcframework-test + CFBundleName + xcframework-test + LSMinimumSystemVersion + 10.15 + + diff --git a/tests/xcframework-test/dotnet/MacCatalyst/Makefile b/tests/xcframework-test/dotnet/MacCatalyst/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/xcframework-test/dotnet/MacCatalyst/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/xcframework-test/dotnet/MacCatalyst/xcframework-test.csproj b/tests/xcframework-test/dotnet/MacCatalyst/xcframework-test.csproj new file mode 100644 index 0000000000..f356662163 --- /dev/null +++ b/tests/xcframework-test/dotnet/MacCatalyst/xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-maccatalyst + + + + + + + + + diff --git a/tests/xcframework-test/dotnet/Makefile b/tests/xcframework-test/dotnet/Makefile new file mode 100644 index 0000000000..c07acf79f1 --- /dev/null +++ b/tests/xcframework-test/dotnet/Makefile @@ -0,0 +1,8 @@ +TOP=../../.. +include $(TOP)/Make.config + +build-all: + for platform in $(DOTNET_PLATFORMS); do \ + echo "Building in $$platform"; \ + $(MAKE) -C "$$platform" build; \ + done diff --git a/tests/xcframework-test/dotnet/iOS/Info.plist b/tests/xcframework-test/dotnet/iOS/Info.plist new file mode 100644 index 0000000000..f2bfebf8a0 --- /dev/null +++ b/tests/xcframework-test/dotnet/iOS/Info.plist @@ -0,0 +1,14 @@ + + + + + CFBundleDisplayName + xcframework-test + CFBundleIdentifier + com.xamarin.xcframework-test + CFBundleName + xcframework-test + MinimumOSVersion + 10.0 + + diff --git a/tests/xcframework-test/dotnet/iOS/Makefile b/tests/xcframework-test/dotnet/iOS/Makefile new file mode 100644 index 0000000000..75e1f69ed6 --- /dev/null +++ b/tests/xcframework-test/dotnet/iOS/Makefile @@ -0,0 +1,2 @@ +include ../shared.mk + diff --git a/tests/xcframework-test/dotnet/iOS/xcframework-test.csproj b/tests/xcframework-test/dotnet/iOS/xcframework-test.csproj new file mode 100644 index 0000000000..07d0bfb4fb --- /dev/null +++ b/tests/xcframework-test/dotnet/iOS/xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-ios + + + + + + + + + diff --git a/tests/xcframework-test/dotnet/macOS/Info.plist b/tests/xcframework-test/dotnet/macOS/Info.plist new file mode 100644 index 0000000000..322f397759 --- /dev/null +++ b/tests/xcframework-test/dotnet/macOS/Info.plist @@ -0,0 +1,14 @@ + + + + + CFBundleDisplayName + xcframework-test + CFBundleIdentifier + com.xamarin.xcframework-test + CFBundleName + xcframework-test + LSMinimumSystemVersion + 10.14 + + diff --git a/tests/xcframework-test/dotnet/macOS/Makefile b/tests/xcframework-test/dotnet/macOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/xcframework-test/dotnet/macOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/xcframework-test/dotnet/macOS/xcframework-test.csproj b/tests/xcframework-test/dotnet/macOS/xcframework-test.csproj new file mode 100644 index 0000000000..f1a8342a15 --- /dev/null +++ b/tests/xcframework-test/dotnet/macOS/xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-macos + + + + + + + + + diff --git a/tests/xcframework-test/dotnet/shared.csproj b/tests/xcframework-test/dotnet/shared.csproj new file mode 100644 index 0000000000..56e301713b --- /dev/null +++ b/tests/xcframework-test/dotnet/shared.csproj @@ -0,0 +1,43 @@ + + + + Exe + $(DefineConstants);NET + latest + xcframeworktest + + $([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..\..\..')) + $(RootTestsDirectory)\test-libraries + $(RootTestsDirectory)\xcframework-test + + + true + + $(DefineConstants);DEBUG + + + + + + + + + + + + + + + + Resources\Default-568h%402x.png + + + + + + + + + + + diff --git a/tests/xcframework-test/dotnet/shared.mk b/tests/xcframework-test/dotnet/shared.mk new file mode 100644 index 0000000000..bc7ccd2596 --- /dev/null +++ b/tests/xcframework-test/dotnet/shared.mk @@ -0,0 +1,29 @@ +TOP=../../../.. +include $(TOP)/Make.config +include $(TOP)/mk/colors.mk + +prepare: + $(Q) $(MAKE) -C $(TOP)/tests/dotnet copy-dotnet-config + +reload: + $(Q) rm -Rf $(TOP)/tests/dotnet/packages + $(Q) $(MAKE) -C $(TOP) -j8 all + $(Q) $(MAKE) -C $(TOP) -j8 install + $(Q) git clean -xfdq + +reload-and-build: + $(Q) $(MAKE) reload + $(Q) $(MAKE) build + +reload-and-run: + $(Q) $(MAKE) reload + $(Q) $(MAKE) run + +build: prepare + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) + +run: prepare + $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) -t:Run + +diag: prepare + $(Q) $(DOTNET6) build /v:diag msbuild.binlog diff --git a/tests/xcframework-test/dotnet/tvOS/Info.plist b/tests/xcframework-test/dotnet/tvOS/Info.plist new file mode 100644 index 0000000000..86dfecf2a2 --- /dev/null +++ b/tests/xcframework-test/dotnet/tvOS/Info.plist @@ -0,0 +1,14 @@ + + + + + CFBundleDisplayName + xcframework-test + CFBundleIdentifier + com.xamarin.xcframework-test + CFBundleName + xcframework-test + MinimumOSVersion + 10.0 + + diff --git a/tests/xcframework-test/dotnet/tvOS/Makefile b/tests/xcframework-test/dotnet/tvOS/Makefile new file mode 100644 index 0000000000..110d078f45 --- /dev/null +++ b/tests/xcframework-test/dotnet/tvOS/Makefile @@ -0,0 +1 @@ +include ../shared.mk diff --git a/tests/xcframework-test/dotnet/tvOS/xcframework-test.csproj b/tests/xcframework-test/dotnet/tvOS/xcframework-test.csproj new file mode 100644 index 0000000000..c34d0b9628 --- /dev/null +++ b/tests/xcframework-test/dotnet/tvOS/xcframework-test.csproj @@ -0,0 +1,13 @@ + + + + net6.0-tvos + + + + + + + + + diff --git a/tests/xharness/Harness.cs b/tests/xharness/Harness.cs index f927694942..04cad09cbd 100644 --- a/tests/xharness/Harness.cs +++ b/tests/xharness/Harness.cs @@ -292,12 +292,22 @@ namespace Xharness { }); } + MacTestProjects.Add (new MacTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "introspection", "dotnet", "macOS", "introspection.csproj"))) { + Name = "introspection", + IsDotNetProject = true, + TargetFrameworkFlavors = MacFlavors.DotNet, + Platform = "AnyCPU", + Ignore = !ENABLE_DOTNET, + TestPlatform = TestPlatform.Mac, + }); + MacTestProjects.Add (new MacTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "introspection", "dotnet", "MacCatalyst", "introspection.csproj"))) { Name = "introspection", IsDotNetProject = true, TargetFrameworkFlavors = MacFlavors.MacCatalyst, Platform = "AnyCPU", Ignore = !ENABLE_DOTNET, + TestPlatform = TestPlatform.MacCatalyst, }); MacTestProjects.Add (new MacTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "monotouch-test", "dotnet", "macOS", "monotouch-test.csproj"))) { @@ -395,6 +405,26 @@ namespace Xharness { TestPlatform = TestPlatform.MacCatalyst, }); + // xcframework-test + + MacTestProjects.Add (new MacTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "xcframework-test", "dotnet", "macOS", "xcframework-test.csproj"))) { + Name = "xcframework-test", + IsDotNetProject = true, + TargetFrameworkFlavors = MacFlavors.DotNet, + Platform = "AnyCPU", + Ignore = !ENABLE_DOTNET, + TestPlatform = TestPlatform.Mac, + }); + + MacTestProjects.Add (new MacTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "xcframework-test", "dotnet", "MacCatalyst", "xcframework-test.csproj"))) { + Name = "xcframework-test", + IsDotNetProject = true, + TargetFrameworkFlavors = MacFlavors.MacCatalyst, + Platform = "AnyCPU", + Ignore = !ENABLE_DOTNET, + TestPlatform = TestPlatform.MacCatalyst, + }); + var monoImportTestFactory = new BCLTestImportTargetFactory (this); MacTestProjects.AddRange (monoImportTestFactory.GetMacBclTargets ()); @@ -497,7 +527,7 @@ namespace Xharness { IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "interdependent-binding-projects", "interdependent-binding-projects.csproj"))) { Name = "interdependent-binding-projects" }); IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "interdependent-binding-projects", "dotnet", "iOS", "interdependent-binding-projects.csproj"))) { Name = "interdependent-binding-projects", IsDotNetProject = true, SkipiOSVariation = false, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, }); IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "introspection", "iOS", "introspection-ios.csproj"))) { Name = "introspection", IgnoreMacCatalystVariation = false }); - IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "introspection", "dotnet", "iOS", "introspection.csproj"))) { Name = "introspection", IsDotNetProject = true, SkipiOSVariation = false, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, SkipMacCatalystVariation = true, }); + IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "introspection", "dotnet", "iOS", "introspection.csproj"))) { Name = "introspection", IsDotNetProject = true, SkipiOSVariation = false, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, SkipMacCatalystVariation = true, TestPlatform = TestPlatform.iOS_Unified, }); IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "introspection", "dotnet", "tvOS", "introspection.csproj"))) { Name = "introspection", IsDotNetProject = true, SkipiOSVariation = true, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, GenerateVariations = false, TestPlatform = TestPlatform.tvOS, }); IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "monotouch-test", "dotnet", "iOS", "monotouch-test.csproj"))) { Name = "monotouch-test", IsDotNetProject = true, SkipiOSVariation = false, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, GenerateVariations = false, TestPlatform = TestPlatform.iOS_Unified, }); IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "monotouch-test", "dotnet", "tvOS", "monotouch-test.csproj"))) { Name = "monotouch-test", IsDotNetProject = true, SkipiOSVariation = true, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, GenerateVariations = false, TestPlatform = TestPlatform.tvOS, }); @@ -528,6 +558,10 @@ namespace Xharness { IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "framework-test", "dotnet", "iOS", "framework-test.csproj"))) { Name = "framework-test", IsDotNetProject = true, SkipiOSVariation = false, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, SkipMacCatalystVariation = true, TestPlatform = TestPlatform.iOS_Unified, }); IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "framework-test", "dotnet", "tvOS", "framework-test.csproj"))) { Name = "framework-test", IsDotNetProject = true, SkipiOSVariation = true, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, GenerateVariations = false, TestPlatform = TestPlatform.tvOS, }); + // xcframework-test + IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "xcframework-test", "dotnet", "iOS", "xcframework-test.csproj"))) { Name = "xcframework-test", IsDotNetProject = true, SkipiOSVariation = false, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, SkipMacCatalystVariation = true, TestPlatform = TestPlatform.iOS_Unified, }); + IOSTestProjects.Add (new iOSTestProject (Path.GetFullPath (Path.Combine (RootDirectory, "xcframework-test", "dotnet", "tvOS", "xcframework-test.csproj"))) { Name = "xcframework-test", IsDotNetProject = true, SkipiOSVariation = true, SkiptvOSVariation = true, SkipwatchOSVariation = true, SkipTodayExtensionVariation = true, SkipDeviceVariations = false, SkipiOS32Variation = true, GenerateVariations = false, TestPlatform = TestPlatform.tvOS, }); + foreach (var flavor in new MonoNativeFlavor [] { MonoNativeFlavor.Compat, MonoNativeFlavor.Unified }) { var monoNativeInfo = new MonoNativeInfo (DevicePlatform.iOS, flavor, RootDirectory, Log); var iosTestProject = new iOSTestProject (monoNativeInfo.ProjectPath) { diff --git a/tests/xharness/TestProject.cs b/tests/xharness/TestProject.cs index e59f581782..25a1179420 100644 --- a/tests/xharness/TestProject.cs +++ b/tests/xharness/TestProject.cs @@ -118,7 +118,7 @@ namespace Xharness { // Check for variables that won't work correctly if the shared code is moved to a different file var xml = File.ReadAllText (sharedProjectPath); if (xml.Contains ("$(MSBuildThis")) - throw new InvalidOperationException ($"Can't use MSBuildThis* variables in shared MSBuild test code."); + throw new InvalidOperationException ($"Can't use MSBuildThis* variables in shared MSBuild test code: {sharedProjectPath}"); var import = new XmlDocument (); import.LoadXmlWithoutNetworkAccess (xml); diff --git a/tests/xtro-sharpie/MacCatalyst-AVFoundation.todo b/tests/xtro-sharpie/MacCatalyst-AVFoundation.todo index e687383d9a..d8a2848df5 100644 --- a/tests/xtro-sharpie/MacCatalyst-AVFoundation.todo +++ b/tests/xtro-sharpie/MacCatalyst-AVFoundation.todo @@ -374,3 +374,4 @@ !missing-type! AVSampleBufferRequest not bound !missing-type! AVSampleCursor not bound ## appended from unclassified file +!missing-field! AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification not bound diff --git a/tests/xtro-sharpie/MacCatalyst-AudioToolbox.todo b/tests/xtro-sharpie/MacCatalyst-AudioToolbox.todo index 940ffea529..4f8d2ef733 100644 --- a/tests/xtro-sharpie/MacCatalyst-AudioToolbox.todo +++ b/tests/xtro-sharpie/MacCatalyst-AudioToolbox.todo @@ -39,7 +39,6 @@ !missing-pinvoke! MusicDeviceMIDIEventList is not bound !missing-selector! AUAudioUnit::AudioUnitMIDIProtocol not bound !missing-selector! AUAudioUnit::hostMIDIProtocol not bound -!missing-selector! AUAudioUnit::MIDIEventListOutputNames not bound !missing-selector! AUAudioUnit::MIDIOutputEventListBlock not bound !missing-selector! AUAudioUnit::scheduleMIDIEventListBlock not bound !missing-selector! AUAudioUnit::setHostMIDIProtocol: not bound diff --git a/tests/xtro-sharpie/MacCatalyst-CoreGraphics.todo b/tests/xtro-sharpie/MacCatalyst-CoreGraphics.todo index eb996b9e65..082c5ed105 100644 --- a/tests/xtro-sharpie/MacCatalyst-CoreGraphics.todo +++ b/tests/xtro-sharpie/MacCatalyst-CoreGraphics.todo @@ -259,3 +259,5 @@ !missing-pinvoke! CGWindowServerCFMachPort is not bound !missing-pinvoke! CGWindowServerCreateServerPort is not bound ## appended from unclassified file +!missing-field! kCGColorSpaceLinearDisplayP3 not bound +!missing-field! kCGColorSpaceLinearITUR_2020 not bound diff --git a/tests/xtro-sharpie/MacCatalyst-DataDetection.todo b/tests/xtro-sharpie/MacCatalyst-DataDetection.todo index 0b4cde239c..fe5af8d5e7 100644 --- a/tests/xtro-sharpie/MacCatalyst-DataDetection.todo +++ b/tests/xtro-sharpie/MacCatalyst-DataDetection.todo @@ -1,32 +1,31 @@ -!missing-selector! DDDetectedValue::matchedRange not bound -!missing-selector! DDDetectedValue::matchedString not bound -!missing-selector! DDDetectedValueCalendarEvent::endDate not bound -!missing-selector! DDDetectedValueCalendarEvent::endTimeZone not bound -!missing-selector! DDDetectedValueCalendarEvent::isAllDay not bound -!missing-selector! DDDetectedValueCalendarEvent::startDate not bound -!missing-selector! DDDetectedValueCalendarEvent::startTimeZone not bound -!missing-selector! DDDetectedValueEmailAddress::emailAddress not bound -!missing-selector! DDDetectedValueEmailAddress::label not bound -!missing-selector! DDDetectedValueFlightNumber::airline not bound -!missing-selector! DDDetectedValueFlightNumber::flightNumber not bound -!missing-selector! DDDetectedValueLink::URL not bound -!missing-selector! DDDetectedValueMoneyAmount::amount not bound -!missing-selector! DDDetectedValueMoneyAmount::currency not bound -!missing-selector! DDDetectedValuePhoneNumber::label not bound -!missing-selector! DDDetectedValuePhoneNumber::phoneNumber not bound -!missing-selector! DDDetectedValuePostalAddress::city not bound -!missing-selector! DDDetectedValuePostalAddress::country not bound -!missing-selector! DDDetectedValuePostalAddress::postalCode not bound -!missing-selector! DDDetectedValuePostalAddress::state not bound -!missing-selector! DDDetectedValuePostalAddress::street not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::carrier not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::trackingNumber not bound -!missing-type! DDDetectedValue not bound -!missing-type! DDDetectedValueCalendarEvent not bound -!missing-type! DDDetectedValueEmailAddress not bound -!missing-type! DDDetectedValueFlightNumber not bound -!missing-type! DDDetectedValueLink not bound -!missing-type! DDDetectedValueMoneyAmount not bound -!missing-type! DDDetectedValuePhoneNumber not bound -!missing-type! DDDetectedValuePostalAddress not bound -!missing-type! DDDetectedValueShipmentTrackingNumber not bound +!missing-selector! DDMatch::matchedString not bound +!missing-selector! DDMatchCalendarEvent::endDate not bound +!missing-selector! DDMatchCalendarEvent::endTimeZone not bound +!missing-selector! DDMatchCalendarEvent::isAllDay not bound +!missing-selector! DDMatchCalendarEvent::startDate not bound +!missing-selector! DDMatchCalendarEvent::startTimeZone not bound +!missing-selector! DDMatchEmailAddress::emailAddress not bound +!missing-selector! DDMatchEmailAddress::label not bound +!missing-selector! DDMatchFlightNumber::airline not bound +!missing-selector! DDMatchFlightNumber::flightNumber not bound +!missing-selector! DDMatchLink::URL not bound +!missing-selector! DDMatchMoneyAmount::amount not bound +!missing-selector! DDMatchMoneyAmount::currency not bound +!missing-selector! DDMatchPhoneNumber::label not bound +!missing-selector! DDMatchPhoneNumber::phoneNumber not bound +!missing-selector! DDMatchPostalAddress::city not bound +!missing-selector! DDMatchPostalAddress::country not bound +!missing-selector! DDMatchPostalAddress::postalCode not bound +!missing-selector! DDMatchPostalAddress::state not bound +!missing-selector! DDMatchPostalAddress::street not bound +!missing-selector! DDMatchShipmentTrackingNumber::carrier not bound +!missing-selector! DDMatchShipmentTrackingNumber::trackingNumber not bound +!missing-type! DDMatch not bound +!missing-type! DDMatchCalendarEvent not bound +!missing-type! DDMatchEmailAddress not bound +!missing-type! DDMatchFlightNumber not bound +!missing-type! DDMatchLink not bound +!missing-type! DDMatchMoneyAmount not bound +!missing-type! DDMatchPhoneNumber not bound +!missing-type! DDMatchPostalAddress not bound +!missing-type! DDMatchShipmentTrackingNumber not bound diff --git a/tests/xtro-sharpie/MacCatalyst-FileProvider.todo b/tests/xtro-sharpie/MacCatalyst-FileProvider.todo index ead3852b14..7e392a1cc7 100644 --- a/tests/xtro-sharpie/MacCatalyst-FileProvider.todo +++ b/tests/xtro-sharpie/MacCatalyst-FileProvider.todo @@ -134,3 +134,4 @@ !missing-protocol-member! NSFileProviderItem::typeAndCreator not found !missing-selector! +NSFileProviderManager::removeDomain:mode:completionHandler: not bound !missing-selector! NSFileProviderDomain::backingStoreIdentity not bound +!missing-selector! +NSFileProviderItemVersion::beforeFirstSyncComponent not bound diff --git a/tests/xtro-sharpie/MacCatalyst-GameController.todo b/tests/xtro-sharpie/MacCatalyst-GameController.todo new file mode 100644 index 0000000000..10e430e907 --- /dev/null +++ b/tests/xtro-sharpie/MacCatalyst-GameController.todo @@ -0,0 +1,6 @@ +!missing-field! GCInputButtonShare not bound +!missing-field! GCInputMicroGamepadButtonMenu not bound +!missing-selector! GCPhysicalInputProfile::hasRemappedElements not bound +!missing-selector! GCPhysicalInputProfile::mappedElementAliasForPhysicalInputName: not bound +!missing-selector! GCPhysicalInputProfile::mappedPhysicalInputNamesForElementAlias: not bound +!missing-selector! GCXboxGamepad::buttonShare not bound diff --git a/tests/xtro-sharpie/MacCatalyst-Intents.todo b/tests/xtro-sharpie/MacCatalyst-Intents.todo index 7db3284ff9..5cd08718e3 100644 --- a/tests/xtro-sharpie/MacCatalyst-Intents.todo +++ b/tests/xtro-sharpie/MacCatalyst-Intents.todo @@ -33,3 +33,5 @@ !missing-selector! INSendMessageIntentDonationMetadata::notifyRecipientAnyway not bound !missing-selector! INSendMessageIntentDonationMetadata::setNotifyRecipientAnyway: not bound !missing-selector! INSendMessageIntentDonationMetadata::setReplyToCurrentUser: not bound +!missing-selector! INPerson::initWithPersonHandle:nameComponents:displayName:image:contactIdentifier:customIdentifier:isContactSuggestion:suggestionType: not bound +!missing-selector! INPerson::isContactSuggestion not bound diff --git a/tests/xtro-sharpie/MacCatalyst-MailKit.todo b/tests/xtro-sharpie/MacCatalyst-MailKit.todo index bbcb97e352..526a711c0b 100644 --- a/tests/xtro-sharpie/MacCatalyst-MailKit.todo +++ b/tests/xtro-sharpie/MacCatalyst-MailKit.todo @@ -20,7 +20,6 @@ !missing-selector! +MEMessageAction::moveToTrashAction not bound !missing-selector! +MEMessageAction::setColorActionWithColor: not bound !missing-selector! +MEMessageAction::unflagAction not bound -!missing-selector! +MEMessageActionDecision::applyAction: not bound !missing-selector! +MEMessageActionDecision::invokeAgainWithBody not bound !missing-selector! MEComposeSession::mailMessage not bound !missing-selector! MEComposeSession::reloadSession not bound @@ -77,3 +76,10 @@ !missing-selector! MEEmailAddress::initWithRawString: not bound !missing-selector! MEEmailAddress::rawString not bound !missing-type! MEEmailAddress not bound +!missing-selector! +MEExtensionManager::reloadContentBlockerWithIdentifier:completionHandler: not bound +!missing-selector! +MEMessageActionDecision::decisionApplyingAction: not bound +!missing-selector! +MEMessageActionDecision::decisionApplyingActions: not bound +!missing-selector! MEMessageSecurityInformation::initWithSigners:isEncrypted:signingError:encryptionError:shouldBlockRemoteContent:localizedRemoteContentBlockingReason: not bound +!missing-selector! MEMessageSecurityInformation::localizedRemoteContentBlockingReason not bound +!missing-selector! MEMessageSecurityInformation::shouldBlockRemoteContent not bound +!missing-type! MEExtensionManager not bound diff --git a/tests/xtro-sharpie/MacCatalyst-MetalPerformanceShadersGraph.todo b/tests/xtro-sharpie/MacCatalyst-MetalPerformanceShadersGraph.todo index aa8651949e..a861c057b4 100644 --- a/tests/xtro-sharpie/MacCatalyst-MetalPerformanceShadersGraph.todo +++ b/tests/xtro-sharpie/MacCatalyst-MetalPerformanceShadersGraph.todo @@ -397,3 +397,24 @@ !missing-type! MPSGraphVariableOp not bound ## appended from unclassified file ## appended from unclassified file +!missing-selector! MPSGraph::broadcastTensor:toShape:name: not bound +!missing-selector! MPSGraph::broadcastTensor:toShapeTensor:name: not bound +!missing-selector! MPSGraph::castTensor:toType:name: not bound +!missing-selector! MPSGraph::convolution2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolution2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWithSourceTensor:weightsTensor:outputShapeTensor:descriptor:name: not bound +!missing-selector! MPSGraph::leakyReLUGradientWithIncomingGradient:sourceTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alpha:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::reshapeTensor:withShapeTensor:name: not bound +!missing-selector! MPSGraph::resizeTensor:sizeTensor:mode:centerResult:alignCorners:layout:name: not bound +!missing-selector! MPSGraph::scatterNDWithDataTensor:updatesTensor:indicesTensor:batchDimensions:mode:name: not bound +!missing-selector! MPSGraph::scatterWithDataTensor:updatesTensor:indicesTensor:axis:mode:name: not bound +!missing-selector! MPSGraph::scatterWithUpdatesTensor:indicesTensor:shape:axis:mode:name: not bound +!missing-selector! MPSGraph::shapeOfTensor:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:k:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:kTensor:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:k:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:kTensor:name: not bound diff --git a/tests/xtro-sharpie/MacCatalyst-Network.todo b/tests/xtro-sharpie/MacCatalyst-Network.todo index 9992ed8d5e..c33e8e1beb 100644 --- a/tests/xtro-sharpie/MacCatalyst-Network.todo +++ b/tests/xtro-sharpie/MacCatalyst-Network.todo @@ -81,3 +81,4 @@ !missing-pinvoke! nw_quic_set_stream_application_error is not bound !missing-pinvoke! nw_quic_set_stream_is_unidirectional is not bound !missing-pinvoke! nw_tcp_options_set_multipath_force_version is not bound +!missing-pinvoke! nw_group_descriptor_create_multiplex is not bound diff --git a/tests/xtro-sharpie/MacCatalyst-UIKit.todo b/tests/xtro-sharpie/MacCatalyst-UIKit.todo index 609b8c04b1..17d19beb07 100644 --- a/tests/xtro-sharpie/MacCatalyst-UIKit.todo +++ b/tests/xtro-sharpie/MacCatalyst-UIKit.todo @@ -68,7 +68,6 @@ !missing-enum! UIButtonConfigurationTitleAlignment not bound !missing-enum! UIDirectionalRectEdge not bound !missing-enum! UIFocusHaloEffectPosition not bound -!missing-enum! UIImageVariant not bound !missing-enum! UITitlebarTitleVisibility not bound !missing-enum! UITitlebarToolbarStyle not bound !missing-enum! UIWindowScenePresentationStyle not bound @@ -90,7 +89,6 @@ !missing-field! UIKeyInputDelete not bound !missing-field! UIKeyInputF1 not bound !missing-field! UIMenuSidebar not bound -!missing-field! UIPasteboardDetectionPatternAddress not bound !missing-field! UIPasteboardDetectionPatternCalendarEvent not bound !missing-field! UIPasteboardDetectionPatternEmailAddress not bound !missing-field! UIPasteboardDetectionPatternFlightNumber not bound @@ -546,10 +544,6 @@ !missing-selector! +UIFocusSystem::registerURL:forSoundIdentifier: not bound !missing-selector! +UIFont::defaultFontSize not bound !missing-selector! +UIFont::systemMinimumFontSize not bound -!missing-selector! +UIImage::imageNamed:variant: not bound -!missing-selector! +UIImage::imageNamed:variant:withConfiguration: not bound -!missing-selector! +UIImage::systemImageNamed:variant: not bound -!missing-selector! +UIImage::systemImageNamed:variant:withConfiguration: not bound !missing-selector! +UIImageSymbolConfiguration::configurationPreferringMulticolor not bound !missing-selector! +UIImageSymbolConfiguration::configurationWithHierarchicalColor: not bound !missing-selector! +UIImageSymbolConfiguration::configurationWithPaletteColors: not bound @@ -889,11 +883,8 @@ !missing-selector! UIFocusHaloEffect::setPosition: not bound !missing-selector! UIFocusHaloEffect::setReferenceView: not bound !missing-selector! UIGestureRecognizer::initWithCoder: not bound -!missing-selector! UIImage::imageByApplyingVariant: not bound -!missing-selector! UIImage::imageByApplyingVariantFromImage: not bound !missing-selector! UIImage::imageByPreparingForDisplay not bound !missing-selector! UIImage::imageByPreparingThumbnailOfSize: not bound -!missing-selector! UIImage::imageByRemovingVariant not bound !missing-selector! UIImage::prepareForDisplayWithCompletionHandler: not bound !missing-selector! UIImage::prepareThumbnailOfSize:completionHandler: not bound !missing-selector! UIImageView::adjustsImageWhenAncestorFocused not bound @@ -924,29 +915,6 @@ !missing-selector! UINavigationBar::setCompactScrollEdgeAppearance: not bound !missing-selector! UINavigationItem::compactScrollEdgeAppearance not bound !missing-selector! UINavigationItem::setCompactScrollEdgeAppearance: not bound -!missing-selector! UIPasteboardDetectionResult::matchedRange not bound -!missing-selector! UIPasteboardDetectionResult::matchedString not bound -!missing-selector! UIPasteboardDetectionResultAddress::city not bound -!missing-selector! UIPasteboardDetectionResultAddress::country not bound -!missing-selector! UIPasteboardDetectionResultAddress::postalCode not bound -!missing-selector! UIPasteboardDetectionResultAddress::state not bound -!missing-selector! UIPasteboardDetectionResultAddress::street not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::allDay not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::endDate not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::endTimeZone not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::startDate not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::startTimeZone not bound -!missing-selector! UIPasteboardDetectionResultEmailAddress::emailAddress not bound -!missing-selector! UIPasteboardDetectionResultEmailAddress::label not bound -!missing-selector! UIPasteboardDetectionResultFlightNumber::airline not bound -!missing-selector! UIPasteboardDetectionResultFlightNumber::flightNumber not bound -!missing-selector! UIPasteboardDetectionResultLink::url not bound -!missing-selector! UIPasteboardDetectionResultMoneyAmount::amount not bound -!missing-selector! UIPasteboardDetectionResultMoneyAmount::currency not bound -!missing-selector! UIPasteboardDetectionResultPhoneNumber::label not bound -!missing-selector! UIPasteboardDetectionResultPhoneNumber::phoneNumber not bound -!missing-selector! UIPasteboardDetectionResultShipmentTrackingNumber::carrier not bound -!missing-selector! UIPasteboardDetectionResultShipmentTrackingNumber::trackingNumber not bound !missing-selector! UIPointerAccessory::orientationMatchesAngle not bound !missing-selector! UIPointerAccessory::position not bound !missing-selector! UIPointerAccessory::setOrientationMatchesAngle: not bound @@ -1166,15 +1134,6 @@ !missing-type! UIFocusEffect not bound !missing-type! UIFocusHaloEffect not bound !missing-type! UIKeyboardLayoutGuide not bound -!missing-type! UIPasteboardDetectionResult not bound -!missing-type! UIPasteboardDetectionResultAddress not bound -!missing-type! UIPasteboardDetectionResultCalendarEvent not bound -!missing-type! UIPasteboardDetectionResultEmailAddress not bound -!missing-type! UIPasteboardDetectionResultFlightNumber not bound -!missing-type! UIPasteboardDetectionResultLink not bound -!missing-type! UIPasteboardDetectionResultMoneyAmount not bound -!missing-type! UIPasteboardDetectionResultPhoneNumber not bound -!missing-type! UIPasteboardDetectionResultShipmentTrackingNumber not bound !missing-type! UIPointerAccessory not bound !missing-type! UISearchSuggestionItem not bound !missing-type! UISheetPresentationController not bound @@ -1189,3 +1148,13 @@ !missing-type! UIWindowSceneActivationInteraction not bound !missing-type! UIWindowSceneActivationRequestOptions not bound ## appended from unclassified file +!missing-field! UIPasteboardDetectionPatternPostalAddress not bound +!missing-selector! +UIButtonConfiguration::borderedButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderedProminentButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderedTintedButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderlessButtonConfiguration not bound +!missing-selector! UIButtonConfiguration::activityIndicatorColorTransformer not bound +!missing-selector! UIButtonConfiguration::automaticallyUpdateForSelection not bound +!missing-selector! UIButtonConfiguration::setActivityIndicatorColorTransformer: not bound +!missing-selector! UIButtonConfiguration::setAutomaticallyUpdateForSelection: not bound +!missing-selector! UIButtonConfiguration::setDefaultContentInsets not bound diff --git a/tests/xtro-sharpie/common-CoreFoundation.ignore b/tests/xtro-sharpie/common-CoreFoundation.ignore index 780044da1a..b8b2ababbb 100644 --- a/tests/xtro-sharpie/common-CoreFoundation.ignore +++ b/tests/xtro-sharpie/common-CoreFoundation.ignore @@ -127,7 +127,6 @@ !missing-field! kCFLocaleScriptCode not bound !missing-field! kCFLocaleUsesMetricSystem not bound !missing-field! kCFLocaleVariantCode not bound -!missing-field! kCFNull not bound !missing-field! kCFNumberFormatterAlwaysShowDecimalSeparator not bound !missing-field! kCFNumberFormatterCurrencyCode not bound !missing-field! kCFNumberFormatterCurrencyDecimalSeparator not bound diff --git a/tests/xtro-sharpie/iOS-AVFoundation.todo b/tests/xtro-sharpie/iOS-AVFoundation.todo index 4fb8cd2f93..2dd784238d 100644 --- a/tests/xtro-sharpie/iOS-AVFoundation.todo +++ b/tests/xtro-sharpie/iOS-AVFoundation.todo @@ -212,3 +212,4 @@ !missing-type! AVPlaybackCoordinator not bound !missing-type! AVPlayerPlaybackCoordinator not bound ## appended from unclassified file +!missing-field! AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification not bound diff --git a/tests/xtro-sharpie/iOS-AudioToolbox.todo b/tests/xtro-sharpie/iOS-AudioToolbox.todo index b32b672c7a..ed1a006bc2 100644 --- a/tests/xtro-sharpie/iOS-AudioToolbox.todo +++ b/tests/xtro-sharpie/iOS-AudioToolbox.todo @@ -5,7 +5,6 @@ !missing-pinvoke! MusicDeviceMIDIEventList is not bound !missing-selector! AUAudioUnit::AudioUnitMIDIProtocol not bound !missing-selector! AUAudioUnit::hostMIDIProtocol not bound -!missing-selector! AUAudioUnit::MIDIEventListOutputNames not bound !missing-selector! AUAudioUnit::MIDIOutputEventListBlock not bound !missing-selector! AUAudioUnit::scheduleMIDIEventListBlock not bound !missing-selector! AUAudioUnit::setHostMIDIProtocol: not bound diff --git a/tests/xtro-sharpie/iOS-CarPlay.todo b/tests/xtro-sharpie/iOS-CarPlay.todo new file mode 100644 index 0000000000..1b5c4de4f0 --- /dev/null +++ b/tests/xtro-sharpie/iOS-CarPlay.todo @@ -0,0 +1,10 @@ +!missing-enum! CPAssistantCellActionType not bound +!missing-selector! CPAssistantCellConfiguration::assistantAction not bound +!missing-selector! CPAssistantCellConfiguration::initWithPosition:visibility:assistantAction: not bound +!missing-selector! CPAssistantCellConfiguration::position not bound +!missing-selector! CPAssistantCellConfiguration::visibility not bound +!missing-selector! CPListSection::setHeaderImage: not bound +!missing-selector! CPListTemplate::assistantCellConfiguration not bound +!missing-selector! CPListTemplate::initWithTitle:sections:assistantCellConfiguration: not bound +!missing-selector! CPListTemplate::setAssistantCellConfiguration: not bound +!missing-type! CPAssistantCellConfiguration not bound diff --git a/tests/xtro-sharpie/iOS-CoreGraphics.todo b/tests/xtro-sharpie/iOS-CoreGraphics.todo index d7d1672b0f..41628a6931 100644 --- a/tests/xtro-sharpie/iOS-CoreGraphics.todo +++ b/tests/xtro-sharpie/iOS-CoreGraphics.todo @@ -4,3 +4,5 @@ !missing-pinvoke! CGColorSpaceIsPQBased is not bound !missing-pinvoke! CGConvertColorDataWithFormat is not bound !missing-pinvoke! CGErrorSetCallback is not bound +!missing-field! kCGColorSpaceLinearDisplayP3 not bound +!missing-field! kCGColorSpaceLinearITUR_2020 not bound diff --git a/tests/xtro-sharpie/iOS-DataDetection.todo b/tests/xtro-sharpie/iOS-DataDetection.todo index 0b4cde239c..fe5af8d5e7 100644 --- a/tests/xtro-sharpie/iOS-DataDetection.todo +++ b/tests/xtro-sharpie/iOS-DataDetection.todo @@ -1,32 +1,31 @@ -!missing-selector! DDDetectedValue::matchedRange not bound -!missing-selector! DDDetectedValue::matchedString not bound -!missing-selector! DDDetectedValueCalendarEvent::endDate not bound -!missing-selector! DDDetectedValueCalendarEvent::endTimeZone not bound -!missing-selector! DDDetectedValueCalendarEvent::isAllDay not bound -!missing-selector! DDDetectedValueCalendarEvent::startDate not bound -!missing-selector! DDDetectedValueCalendarEvent::startTimeZone not bound -!missing-selector! DDDetectedValueEmailAddress::emailAddress not bound -!missing-selector! DDDetectedValueEmailAddress::label not bound -!missing-selector! DDDetectedValueFlightNumber::airline not bound -!missing-selector! DDDetectedValueFlightNumber::flightNumber not bound -!missing-selector! DDDetectedValueLink::URL not bound -!missing-selector! DDDetectedValueMoneyAmount::amount not bound -!missing-selector! DDDetectedValueMoneyAmount::currency not bound -!missing-selector! DDDetectedValuePhoneNumber::label not bound -!missing-selector! DDDetectedValuePhoneNumber::phoneNumber not bound -!missing-selector! DDDetectedValuePostalAddress::city not bound -!missing-selector! DDDetectedValuePostalAddress::country not bound -!missing-selector! DDDetectedValuePostalAddress::postalCode not bound -!missing-selector! DDDetectedValuePostalAddress::state not bound -!missing-selector! DDDetectedValuePostalAddress::street not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::carrier not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::trackingNumber not bound -!missing-type! DDDetectedValue not bound -!missing-type! DDDetectedValueCalendarEvent not bound -!missing-type! DDDetectedValueEmailAddress not bound -!missing-type! DDDetectedValueFlightNumber not bound -!missing-type! DDDetectedValueLink not bound -!missing-type! DDDetectedValueMoneyAmount not bound -!missing-type! DDDetectedValuePhoneNumber not bound -!missing-type! DDDetectedValuePostalAddress not bound -!missing-type! DDDetectedValueShipmentTrackingNumber not bound +!missing-selector! DDMatch::matchedString not bound +!missing-selector! DDMatchCalendarEvent::endDate not bound +!missing-selector! DDMatchCalendarEvent::endTimeZone not bound +!missing-selector! DDMatchCalendarEvent::isAllDay not bound +!missing-selector! DDMatchCalendarEvent::startDate not bound +!missing-selector! DDMatchCalendarEvent::startTimeZone not bound +!missing-selector! DDMatchEmailAddress::emailAddress not bound +!missing-selector! DDMatchEmailAddress::label not bound +!missing-selector! DDMatchFlightNumber::airline not bound +!missing-selector! DDMatchFlightNumber::flightNumber not bound +!missing-selector! DDMatchLink::URL not bound +!missing-selector! DDMatchMoneyAmount::amount not bound +!missing-selector! DDMatchMoneyAmount::currency not bound +!missing-selector! DDMatchPhoneNumber::label not bound +!missing-selector! DDMatchPhoneNumber::phoneNumber not bound +!missing-selector! DDMatchPostalAddress::city not bound +!missing-selector! DDMatchPostalAddress::country not bound +!missing-selector! DDMatchPostalAddress::postalCode not bound +!missing-selector! DDMatchPostalAddress::state not bound +!missing-selector! DDMatchPostalAddress::street not bound +!missing-selector! DDMatchShipmentTrackingNumber::carrier not bound +!missing-selector! DDMatchShipmentTrackingNumber::trackingNumber not bound +!missing-type! DDMatch not bound +!missing-type! DDMatchCalendarEvent not bound +!missing-type! DDMatchEmailAddress not bound +!missing-type! DDMatchFlightNumber not bound +!missing-type! DDMatchLink not bound +!missing-type! DDMatchMoneyAmount not bound +!missing-type! DDMatchPhoneNumber not bound +!missing-type! DDMatchPostalAddress not bound +!missing-type! DDMatchShipmentTrackingNumber not bound diff --git a/tests/xtro-sharpie/iOS-GameController.todo b/tests/xtro-sharpie/iOS-GameController.todo new file mode 100644 index 0000000000..10e430e907 --- /dev/null +++ b/tests/xtro-sharpie/iOS-GameController.todo @@ -0,0 +1,6 @@ +!missing-field! GCInputButtonShare not bound +!missing-field! GCInputMicroGamepadButtonMenu not bound +!missing-selector! GCPhysicalInputProfile::hasRemappedElements not bound +!missing-selector! GCPhysicalInputProfile::mappedElementAliasForPhysicalInputName: not bound +!missing-selector! GCPhysicalInputProfile::mappedPhysicalInputNamesForElementAlias: not bound +!missing-selector! GCXboxGamepad::buttonShare not bound diff --git a/tests/xtro-sharpie/iOS-HealthKit.todo b/tests/xtro-sharpie/iOS-HealthKit.todo new file mode 100644 index 0000000000..bb9c0f5186 --- /dev/null +++ b/tests/xtro-sharpie/iOS-HealthKit.todo @@ -0,0 +1 @@ +!missing-field! HKMetadataKeyAlgorithmVersion not bound diff --git a/tests/xtro-sharpie/iOS-Intents.todo b/tests/xtro-sharpie/iOS-Intents.todo index 866e1c8280..9ad4c7acd9 100644 --- a/tests/xtro-sharpie/iOS-Intents.todo +++ b/tests/xtro-sharpie/iOS-Intents.todo @@ -81,3 +81,8 @@ !missing-type! INShareFocusStatusIntentResponse not bound ## appended from unclassified file ## appended from unclassified file +!deprecated-attribute-missing! INRelativeReferenceResolutionResult missing a [Deprecated] attribute +!deprecated-attribute-missing! INRelativeSettingResolutionResult missing a [Deprecated] attribute +!deprecated-attribute-missing! INTemperatureResolutionResult missing a [Deprecated] attribute +!missing-selector! INPerson::initWithPersonHandle:nameComponents:displayName:image:contactIdentifier:customIdentifier:isContactSuggestion:suggestionType: not bound +!missing-selector! INPerson::isContactSuggestion not bound diff --git a/tests/xtro-sharpie/iOS-MetalPerformanceShadersGraph.todo b/tests/xtro-sharpie/iOS-MetalPerformanceShadersGraph.todo index aa8651949e..a861c057b4 100644 --- a/tests/xtro-sharpie/iOS-MetalPerformanceShadersGraph.todo +++ b/tests/xtro-sharpie/iOS-MetalPerformanceShadersGraph.todo @@ -397,3 +397,24 @@ !missing-type! MPSGraphVariableOp not bound ## appended from unclassified file ## appended from unclassified file +!missing-selector! MPSGraph::broadcastTensor:toShape:name: not bound +!missing-selector! MPSGraph::broadcastTensor:toShapeTensor:name: not bound +!missing-selector! MPSGraph::castTensor:toType:name: not bound +!missing-selector! MPSGraph::convolution2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolution2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWithSourceTensor:weightsTensor:outputShapeTensor:descriptor:name: not bound +!missing-selector! MPSGraph::leakyReLUGradientWithIncomingGradient:sourceTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alpha:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::reshapeTensor:withShapeTensor:name: not bound +!missing-selector! MPSGraph::resizeTensor:sizeTensor:mode:centerResult:alignCorners:layout:name: not bound +!missing-selector! MPSGraph::scatterNDWithDataTensor:updatesTensor:indicesTensor:batchDimensions:mode:name: not bound +!missing-selector! MPSGraph::scatterWithDataTensor:updatesTensor:indicesTensor:axis:mode:name: not bound +!missing-selector! MPSGraph::scatterWithUpdatesTensor:indicesTensor:shape:axis:mode:name: not bound +!missing-selector! MPSGraph::shapeOfTensor:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:k:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:kTensor:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:k:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:kTensor:name: not bound diff --git a/tests/xtro-sharpie/iOS-Network.todo b/tests/xtro-sharpie/iOS-Network.todo index 0cdf77cf6f..c21bc8e558 100644 --- a/tests/xtro-sharpie/iOS-Network.todo +++ b/tests/xtro-sharpie/iOS-Network.todo @@ -72,3 +72,4 @@ !missing-pinvoke! nw_quic_set_stream_application_error is not bound !missing-pinvoke! nw_quic_set_stream_is_unidirectional is not bound !missing-pinvoke! nw_tcp_options_set_multipath_force_version is not bound +!missing-pinvoke! nw_group_descriptor_create_multiplex is not bound diff --git a/tests/xtro-sharpie/iOS-PassKit.todo b/tests/xtro-sharpie/iOS-PassKit.todo new file mode 100644 index 0000000000..8fa5217f6a --- /dev/null +++ b/tests/xtro-sharpie/iOS-PassKit.todo @@ -0,0 +1,2 @@ +!missing-field! PKPaymentNetworkNanaco not bound +!missing-field! PKPaymentNetworkWaon not bound diff --git a/tests/xtro-sharpie/iOS-UIKit.todo b/tests/xtro-sharpie/iOS-UIKit.todo index 5abd2e3e08..3d9ec646fe 100644 --- a/tests/xtro-sharpie/iOS-UIKit.todo +++ b/tests/xtro-sharpie/iOS-UIKit.todo @@ -42,7 +42,6 @@ !missing-enum! UIButtonConfigurationSize not bound !missing-enum! UIButtonConfigurationTitleAlignment not bound !missing-enum! UIFocusHaloEffectPosition not bound -!missing-enum! UIImageVariant not bound !missing-enum! UIWindowScenePresentationStyle not bound !missing-enum-value! UIFocusHeading native value UIFocusHeadingFirst = 256 not bound !missing-enum-value! UIFocusHeading native value UIFocusHeadingLast = 512 not bound @@ -56,7 +55,6 @@ !missing-field! UICollectionViewLayoutAutomaticDimension not bound !missing-field! UIKeyInputDelete not bound !missing-field! UIMenuSidebar not bound -!missing-field! UIPasteboardDetectionPatternAddress not bound !missing-field! UIPasteboardDetectionPatternCalendarEvent not bound !missing-field! UIPasteboardDetectionPatternEmailAddress not bound !missing-field! UIPasteboardDetectionPatternFlightNumber not bound @@ -124,10 +122,6 @@ !missing-selector! +UIFocusHaloEffect::effectWithPath: not bound !missing-selector! +UIFocusHaloEffect::effectWithRect: not bound !missing-selector! +UIFocusHaloEffect::effectWithRoundedRect:cornerRadius:curve: not bound -!missing-selector! +UIImage::imageNamed:variant: not bound -!missing-selector! +UIImage::imageNamed:variant:withConfiguration: not bound -!missing-selector! +UIImage::systemImageNamed:variant: not bound -!missing-selector! +UIImage::systemImageNamed:variant:withConfiguration: not bound !missing-selector! +UIImageSymbolConfiguration::configurationPreferringMulticolor not bound !missing-selector! +UIImageSymbolConfiguration::configurationWithHierarchicalColor: not bound !missing-selector! +UIImageSymbolConfiguration::configurationWithPaletteColors: not bound @@ -438,11 +432,8 @@ !missing-selector! UIFocusHaloEffect::setContainerView: not bound !missing-selector! UIFocusHaloEffect::setPosition: not bound !missing-selector! UIFocusHaloEffect::setReferenceView: not bound -!missing-selector! UIImage::imageByApplyingVariant: not bound -!missing-selector! UIImage::imageByApplyingVariantFromImage: not bound !missing-selector! UIImage::imageByPreparingForDisplay not bound !missing-selector! UIImage::imageByPreparingThumbnailOfSize: not bound -!missing-selector! UIImage::imageByRemovingVariant not bound !missing-selector! UIImage::prepareForDisplayWithCompletionHandler: not bound !missing-selector! UIImage::prepareThumbnailOfSize:completionHandler: not bound !missing-selector! UIKeyCommand::allowsAutomaticLocalization not bound @@ -464,29 +455,6 @@ !missing-selector! UINavigationBar::setCompactScrollEdgeAppearance: not bound !missing-selector! UINavigationItem::compactScrollEdgeAppearance not bound !missing-selector! UINavigationItem::setCompactScrollEdgeAppearance: not bound -!missing-selector! UIPasteboardDetectionResult::matchedRange not bound -!missing-selector! UIPasteboardDetectionResult::matchedString not bound -!missing-selector! UIPasteboardDetectionResultAddress::city not bound -!missing-selector! UIPasteboardDetectionResultAddress::country not bound -!missing-selector! UIPasteboardDetectionResultAddress::postalCode not bound -!missing-selector! UIPasteboardDetectionResultAddress::state not bound -!missing-selector! UIPasteboardDetectionResultAddress::street not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::allDay not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::endDate not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::endTimeZone not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::startDate not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::startTimeZone not bound -!missing-selector! UIPasteboardDetectionResultEmailAddress::emailAddress not bound -!missing-selector! UIPasteboardDetectionResultEmailAddress::label not bound -!missing-selector! UIPasteboardDetectionResultFlightNumber::airline not bound -!missing-selector! UIPasteboardDetectionResultFlightNumber::flightNumber not bound -!missing-selector! UIPasteboardDetectionResultLink::url not bound -!missing-selector! UIPasteboardDetectionResultMoneyAmount::amount not bound -!missing-selector! UIPasteboardDetectionResultMoneyAmount::currency not bound -!missing-selector! UIPasteboardDetectionResultPhoneNumber::label not bound -!missing-selector! UIPasteboardDetectionResultPhoneNumber::phoneNumber not bound -!missing-selector! UIPasteboardDetectionResultShipmentTrackingNumber::carrier not bound -!missing-selector! UIPasteboardDetectionResultShipmentTrackingNumber::trackingNumber not bound !missing-selector! UIPointerAccessory::orientationMatchesAngle not bound !missing-selector! UIPointerAccessory::position not bound !missing-selector! UIPointerAccessory::setOrientationMatchesAngle: not bound @@ -622,15 +590,6 @@ !missing-type! UIFocusEffect not bound !missing-type! UIFocusHaloEffect not bound !missing-type! UIKeyboardLayoutGuide not bound -!missing-type! UIPasteboardDetectionResult not bound -!missing-type! UIPasteboardDetectionResultAddress not bound -!missing-type! UIPasteboardDetectionResultCalendarEvent not bound -!missing-type! UIPasteboardDetectionResultEmailAddress not bound -!missing-type! UIPasteboardDetectionResultFlightNumber not bound -!missing-type! UIPasteboardDetectionResultLink not bound -!missing-type! UIPasteboardDetectionResultMoneyAmount not bound -!missing-type! UIPasteboardDetectionResultPhoneNumber not bound -!missing-type! UIPasteboardDetectionResultShipmentTrackingNumber not bound !missing-type! UIPointerAccessory not bound !missing-type! UISheetPresentationController not bound !missing-type! UISheetPresentationControllerDetent not bound @@ -643,3 +602,15 @@ !missing-type! UIWindowSceneActivationRequestOptions not bound ## appended from unclassified file ## appended from unclassified file +!missing-field! UIPasteboardDetectionPatternPostalAddress not bound +!missing-selector! +UIButtonConfiguration::borderedButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderedProminentButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderedTintedButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderlessButtonConfiguration not bound +!missing-selector! UIButtonConfiguration::activityIndicatorColorTransformer not bound +!missing-selector! UIButtonConfiguration::automaticallyUpdateForSelection not bound +!missing-selector! UIButtonConfiguration::setActivityIndicatorColorTransformer: not bound +!missing-selector! UIButtonConfiguration::setAutomaticallyUpdateForSelection: not bound +!missing-selector! UIButtonConfiguration::setDefaultContentInsets not bound +!missing-selector! UICollectionView::contextMenuInteraction not bound +!missing-selector! UITableView::contextMenuInteraction not bound diff --git a/tests/xtro-sharpie/macOS-AVFoundation.todo b/tests/xtro-sharpie/macOS-AVFoundation.todo index a6f7091cd3..41edb0791c 100644 --- a/tests/xtro-sharpie/macOS-AVFoundation.todo +++ b/tests/xtro-sharpie/macOS-AVFoundation.todo @@ -385,3 +385,4 @@ !missing-type! AVPlaybackCoordinator not bound !missing-type! AVPlayerPlaybackCoordinator not bound ## appended from unclassified file +!missing-field! AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification not bound diff --git a/tests/xtro-sharpie/macOS-AudioToolbox.todo b/tests/xtro-sharpie/macOS-AudioToolbox.todo index b32b672c7a..ed1a006bc2 100644 --- a/tests/xtro-sharpie/macOS-AudioToolbox.todo +++ b/tests/xtro-sharpie/macOS-AudioToolbox.todo @@ -5,7 +5,6 @@ !missing-pinvoke! MusicDeviceMIDIEventList is not bound !missing-selector! AUAudioUnit::AudioUnitMIDIProtocol not bound !missing-selector! AUAudioUnit::hostMIDIProtocol not bound -!missing-selector! AUAudioUnit::MIDIEventListOutputNames not bound !missing-selector! AUAudioUnit::MIDIOutputEventListBlock not bound !missing-selector! AUAudioUnit::scheduleMIDIEventListBlock not bound !missing-selector! AUAudioUnit::setHostMIDIProtocol: not bound diff --git a/tests/xtro-sharpie/macOS-CoreGraphics.todo b/tests/xtro-sharpie/macOS-CoreGraphics.todo index d7d1672b0f..41628a6931 100644 --- a/tests/xtro-sharpie/macOS-CoreGraphics.todo +++ b/tests/xtro-sharpie/macOS-CoreGraphics.todo @@ -4,3 +4,5 @@ !missing-pinvoke! CGColorSpaceIsPQBased is not bound !missing-pinvoke! CGConvertColorDataWithFormat is not bound !missing-pinvoke! CGErrorSetCallback is not bound +!missing-field! kCGColorSpaceLinearDisplayP3 not bound +!missing-field! kCGColorSpaceLinearITUR_2020 not bound diff --git a/tests/xtro-sharpie/macOS-CoreMotion.ignore b/tests/xtro-sharpie/macOS-CoreMotion.ignore index 9846ecc151..f75c3f47ec 100644 --- a/tests/xtro-sharpie/macOS-CoreMotion.ignore +++ b/tests/xtro-sharpie/macOS-CoreMotion.ignore @@ -2,3 +2,5 @@ !missing-enum! CMAttitudeReferenceFrame not bound !missing-enum! CMFallDetectionEventUserResolution not bound !missing-enum! CMMotionActivityConfidence not bound + +## available in headers but results in a compilation error diff --git a/tests/xtro-sharpie/macOS-CoreMotion.todo b/tests/xtro-sharpie/macOS-CoreMotion.todo new file mode 100644 index 0000000000..e3b614a320 --- /dev/null +++ b/tests/xtro-sharpie/macOS-CoreMotion.todo @@ -0,0 +1 @@ +!unknown-type! CMHeadphoneMotionManager bound diff --git a/tests/xtro-sharpie/macOS-DataDetection.todo b/tests/xtro-sharpie/macOS-DataDetection.todo index 0b4cde239c..fe5af8d5e7 100644 --- a/tests/xtro-sharpie/macOS-DataDetection.todo +++ b/tests/xtro-sharpie/macOS-DataDetection.todo @@ -1,32 +1,31 @@ -!missing-selector! DDDetectedValue::matchedRange not bound -!missing-selector! DDDetectedValue::matchedString not bound -!missing-selector! DDDetectedValueCalendarEvent::endDate not bound -!missing-selector! DDDetectedValueCalendarEvent::endTimeZone not bound -!missing-selector! DDDetectedValueCalendarEvent::isAllDay not bound -!missing-selector! DDDetectedValueCalendarEvent::startDate not bound -!missing-selector! DDDetectedValueCalendarEvent::startTimeZone not bound -!missing-selector! DDDetectedValueEmailAddress::emailAddress not bound -!missing-selector! DDDetectedValueEmailAddress::label not bound -!missing-selector! DDDetectedValueFlightNumber::airline not bound -!missing-selector! DDDetectedValueFlightNumber::flightNumber not bound -!missing-selector! DDDetectedValueLink::URL not bound -!missing-selector! DDDetectedValueMoneyAmount::amount not bound -!missing-selector! DDDetectedValueMoneyAmount::currency not bound -!missing-selector! DDDetectedValuePhoneNumber::label not bound -!missing-selector! DDDetectedValuePhoneNumber::phoneNumber not bound -!missing-selector! DDDetectedValuePostalAddress::city not bound -!missing-selector! DDDetectedValuePostalAddress::country not bound -!missing-selector! DDDetectedValuePostalAddress::postalCode not bound -!missing-selector! DDDetectedValuePostalAddress::state not bound -!missing-selector! DDDetectedValuePostalAddress::street not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::carrier not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::trackingNumber not bound -!missing-type! DDDetectedValue not bound -!missing-type! DDDetectedValueCalendarEvent not bound -!missing-type! DDDetectedValueEmailAddress not bound -!missing-type! DDDetectedValueFlightNumber not bound -!missing-type! DDDetectedValueLink not bound -!missing-type! DDDetectedValueMoneyAmount not bound -!missing-type! DDDetectedValuePhoneNumber not bound -!missing-type! DDDetectedValuePostalAddress not bound -!missing-type! DDDetectedValueShipmentTrackingNumber not bound +!missing-selector! DDMatch::matchedString not bound +!missing-selector! DDMatchCalendarEvent::endDate not bound +!missing-selector! DDMatchCalendarEvent::endTimeZone not bound +!missing-selector! DDMatchCalendarEvent::isAllDay not bound +!missing-selector! DDMatchCalendarEvent::startDate not bound +!missing-selector! DDMatchCalendarEvent::startTimeZone not bound +!missing-selector! DDMatchEmailAddress::emailAddress not bound +!missing-selector! DDMatchEmailAddress::label not bound +!missing-selector! DDMatchFlightNumber::airline not bound +!missing-selector! DDMatchFlightNumber::flightNumber not bound +!missing-selector! DDMatchLink::URL not bound +!missing-selector! DDMatchMoneyAmount::amount not bound +!missing-selector! DDMatchMoneyAmount::currency not bound +!missing-selector! DDMatchPhoneNumber::label not bound +!missing-selector! DDMatchPhoneNumber::phoneNumber not bound +!missing-selector! DDMatchPostalAddress::city not bound +!missing-selector! DDMatchPostalAddress::country not bound +!missing-selector! DDMatchPostalAddress::postalCode not bound +!missing-selector! DDMatchPostalAddress::state not bound +!missing-selector! DDMatchPostalAddress::street not bound +!missing-selector! DDMatchShipmentTrackingNumber::carrier not bound +!missing-selector! DDMatchShipmentTrackingNumber::trackingNumber not bound +!missing-type! DDMatch not bound +!missing-type! DDMatchCalendarEvent not bound +!missing-type! DDMatchEmailAddress not bound +!missing-type! DDMatchFlightNumber not bound +!missing-type! DDMatchLink not bound +!missing-type! DDMatchMoneyAmount not bound +!missing-type! DDMatchPhoneNumber not bound +!missing-type! DDMatchPostalAddress not bound +!missing-type! DDMatchShipmentTrackingNumber not bound diff --git a/tests/xtro-sharpie/macOS-FileProvider.todo b/tests/xtro-sharpie/macOS-FileProvider.todo new file mode 100644 index 0000000000..ac1f373897 --- /dev/null +++ b/tests/xtro-sharpie/macOS-FileProvider.todo @@ -0,0 +1 @@ +!missing-selector! +NSFileProviderItemVersion::beforeFirstSyncComponent not bound diff --git a/tests/xtro-sharpie/macOS-GameController.todo b/tests/xtro-sharpie/macOS-GameController.todo new file mode 100644 index 0000000000..10e430e907 --- /dev/null +++ b/tests/xtro-sharpie/macOS-GameController.todo @@ -0,0 +1,6 @@ +!missing-field! GCInputButtonShare not bound +!missing-field! GCInputMicroGamepadButtonMenu not bound +!missing-selector! GCPhysicalInputProfile::hasRemappedElements not bound +!missing-selector! GCPhysicalInputProfile::mappedElementAliasForPhysicalInputName: not bound +!missing-selector! GCPhysicalInputProfile::mappedPhysicalInputNamesForElementAlias: not bound +!missing-selector! GCXboxGamepad::buttonShare not bound diff --git a/tests/xtro-sharpie/macOS-Intents.todo b/tests/xtro-sharpie/macOS-Intents.todo index 20471b7ce8..c525dff1f2 100644 --- a/tests/xtro-sharpie/macOS-Intents.todo +++ b/tests/xtro-sharpie/macOS-Intents.todo @@ -86,3 +86,6 @@ !missing-selector! INSendMessageIntentDonationMetadata::notifyRecipientAnyway not bound !missing-selector! INSendMessageIntentDonationMetadata::setNotifyRecipientAnyway: not bound !missing-selector! INSendMessageIntentDonationMetadata::setReplyToCurrentUser: not bound +!missing-selector! INPerson::initWithPersonHandle:nameComponents:displayName:image:contactIdentifier:customIdentifier:isContactSuggestion:suggestionType: not bound +!missing-selector! INPerson::isContactSuggestion not bound +!unknown-type! INTemperatureResolutionResult bound diff --git a/tests/xtro-sharpie/macOS-MailKit.todo b/tests/xtro-sharpie/macOS-MailKit.todo index f8361628ce..aa312eee1b 100644 --- a/tests/xtro-sharpie/macOS-MailKit.todo +++ b/tests/xtro-sharpie/macOS-MailKit.todo @@ -20,7 +20,6 @@ !missing-selector! +MEMessageAction::moveToTrashAction not bound !missing-selector! +MEMessageAction::setColorActionWithColor: not bound !missing-selector! +MEMessageAction::unflagAction not bound -!missing-selector! +MEMessageActionDecision::applyAction: not bound !missing-selector! +MEMessageActionDecision::invokeAgainWithBody not bound !missing-selector! MEComposeSession::mailMessage not bound !missing-selector! MEComposeSession::reloadSession not bound @@ -78,3 +77,10 @@ !missing-selector! MEEmailAddress::initWithRawString: not bound !missing-selector! MEEmailAddress::rawString not bound !missing-type! MEEmailAddress not bound +!missing-selector! +MEExtensionManager::reloadContentBlockerWithIdentifier:completionHandler: not bound +!missing-selector! +MEMessageActionDecision::decisionApplyingAction: not bound +!missing-selector! +MEMessageActionDecision::decisionApplyingActions: not bound +!missing-selector! MEMessageSecurityInformation::initWithSigners:isEncrypted:signingError:encryptionError:shouldBlockRemoteContent:localizedRemoteContentBlockingReason: not bound +!missing-selector! MEMessageSecurityInformation::localizedRemoteContentBlockingReason not bound +!missing-selector! MEMessageSecurityInformation::shouldBlockRemoteContent not bound +!missing-type! MEExtensionManager not bound diff --git a/tests/xtro-sharpie/macOS-MetalPerformanceShadersGraph.todo b/tests/xtro-sharpie/macOS-MetalPerformanceShadersGraph.todo index 49446e6900..2c4d21d221 100644 --- a/tests/xtro-sharpie/macOS-MetalPerformanceShadersGraph.todo +++ b/tests/xtro-sharpie/macOS-MetalPerformanceShadersGraph.todo @@ -398,3 +398,24 @@ ## appended from unclassified file ## appended from unclassified file ## appended from unclassified file +!missing-selector! MPSGraph::broadcastTensor:toShape:name: not bound +!missing-selector! MPSGraph::broadcastTensor:toShapeTensor:name: not bound +!missing-selector! MPSGraph::castTensor:toType:name: not bound +!missing-selector! MPSGraph::convolution2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolution2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWithSourceTensor:weightsTensor:outputShapeTensor:descriptor:name: not bound +!missing-selector! MPSGraph::leakyReLUGradientWithIncomingGradient:sourceTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alpha:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::reshapeTensor:withShapeTensor:name: not bound +!missing-selector! MPSGraph::resizeTensor:sizeTensor:mode:centerResult:alignCorners:layout:name: not bound +!missing-selector! MPSGraph::scatterNDWithDataTensor:updatesTensor:indicesTensor:batchDimensions:mode:name: not bound +!missing-selector! MPSGraph::scatterWithDataTensor:updatesTensor:indicesTensor:axis:mode:name: not bound +!missing-selector! MPSGraph::scatterWithUpdatesTensor:indicesTensor:shape:axis:mode:name: not bound +!missing-selector! MPSGraph::shapeOfTensor:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:k:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:kTensor:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:k:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:kTensor:name: not bound diff --git a/tests/xtro-sharpie/macOS-Network.todo b/tests/xtro-sharpie/macOS-Network.todo index 0cdf77cf6f..c21bc8e558 100644 --- a/tests/xtro-sharpie/macOS-Network.todo +++ b/tests/xtro-sharpie/macOS-Network.todo @@ -72,3 +72,4 @@ !missing-pinvoke! nw_quic_set_stream_application_error is not bound !missing-pinvoke! nw_quic_set_stream_is_unidirectional is not bound !missing-pinvoke! nw_tcp_options_set_multipath_force_version is not bound +!missing-pinvoke! nw_group_descriptor_create_multiplex is not bound diff --git a/tests/xtro-sharpie/macOS-WebKit.todo b/tests/xtro-sharpie/macOS-WebKit.todo index 1f3087b3b1..d5b4d8066b 100644 --- a/tests/xtro-sharpie/macOS-WebKit.todo +++ b/tests/xtro-sharpie/macOS-WebKit.todo @@ -1,7 +1,6 @@ !missing-enum! WKMediaCaptureState not bound !missing-enum! WKMediaCaptureType not bound !missing-enum! WKPermissionDecision not bound -!missing-protocol-member! WKUIDelegate::webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler: not found !missing-protocol-member! WKUIDelegate::webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler: not found !missing-selector! WKPreferences::isTextInteractionEnabled not bound !missing-selector! WKWebView::cameraCaptureState not bound diff --git a/tests/xtro-sharpie/tvOS-AVFoundation.todo b/tests/xtro-sharpie/tvOS-AVFoundation.todo index 122bacf3dd..87f8018363 100644 --- a/tests/xtro-sharpie/tvOS-AVFoundation.todo +++ b/tests/xtro-sharpie/tvOS-AVFoundation.todo @@ -194,3 +194,4 @@ !missing-type! AVPlaybackCoordinator not bound !missing-type! AVPlayerPlaybackCoordinator not bound ## appended from unclassified file +!missing-field! AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification not bound diff --git a/tests/xtro-sharpie/tvOS-AudioToolbox.todo b/tests/xtro-sharpie/tvOS-AudioToolbox.todo index b32b672c7a..ed1a006bc2 100644 --- a/tests/xtro-sharpie/tvOS-AudioToolbox.todo +++ b/tests/xtro-sharpie/tvOS-AudioToolbox.todo @@ -5,7 +5,6 @@ !missing-pinvoke! MusicDeviceMIDIEventList is not bound !missing-selector! AUAudioUnit::AudioUnitMIDIProtocol not bound !missing-selector! AUAudioUnit::hostMIDIProtocol not bound -!missing-selector! AUAudioUnit::MIDIEventListOutputNames not bound !missing-selector! AUAudioUnit::MIDIOutputEventListBlock not bound !missing-selector! AUAudioUnit::scheduleMIDIEventListBlock not bound !missing-selector! AUAudioUnit::setHostMIDIProtocol: not bound diff --git a/tests/xtro-sharpie/tvOS-CoreGraphics.todo b/tests/xtro-sharpie/tvOS-CoreGraphics.todo index d7d1672b0f..41628a6931 100644 --- a/tests/xtro-sharpie/tvOS-CoreGraphics.todo +++ b/tests/xtro-sharpie/tvOS-CoreGraphics.todo @@ -4,3 +4,5 @@ !missing-pinvoke! CGColorSpaceIsPQBased is not bound !missing-pinvoke! CGConvertColorDataWithFormat is not bound !missing-pinvoke! CGErrorSetCallback is not bound +!missing-field! kCGColorSpaceLinearDisplayP3 not bound +!missing-field! kCGColorSpaceLinearITUR_2020 not bound diff --git a/tests/xtro-sharpie/tvOS-DataDetection.todo b/tests/xtro-sharpie/tvOS-DataDetection.todo index 0b4cde239c..fe5af8d5e7 100644 --- a/tests/xtro-sharpie/tvOS-DataDetection.todo +++ b/tests/xtro-sharpie/tvOS-DataDetection.todo @@ -1,32 +1,31 @@ -!missing-selector! DDDetectedValue::matchedRange not bound -!missing-selector! DDDetectedValue::matchedString not bound -!missing-selector! DDDetectedValueCalendarEvent::endDate not bound -!missing-selector! DDDetectedValueCalendarEvent::endTimeZone not bound -!missing-selector! DDDetectedValueCalendarEvent::isAllDay not bound -!missing-selector! DDDetectedValueCalendarEvent::startDate not bound -!missing-selector! DDDetectedValueCalendarEvent::startTimeZone not bound -!missing-selector! DDDetectedValueEmailAddress::emailAddress not bound -!missing-selector! DDDetectedValueEmailAddress::label not bound -!missing-selector! DDDetectedValueFlightNumber::airline not bound -!missing-selector! DDDetectedValueFlightNumber::flightNumber not bound -!missing-selector! DDDetectedValueLink::URL not bound -!missing-selector! DDDetectedValueMoneyAmount::amount not bound -!missing-selector! DDDetectedValueMoneyAmount::currency not bound -!missing-selector! DDDetectedValuePhoneNumber::label not bound -!missing-selector! DDDetectedValuePhoneNumber::phoneNumber not bound -!missing-selector! DDDetectedValuePostalAddress::city not bound -!missing-selector! DDDetectedValuePostalAddress::country not bound -!missing-selector! DDDetectedValuePostalAddress::postalCode not bound -!missing-selector! DDDetectedValuePostalAddress::state not bound -!missing-selector! DDDetectedValuePostalAddress::street not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::carrier not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::trackingNumber not bound -!missing-type! DDDetectedValue not bound -!missing-type! DDDetectedValueCalendarEvent not bound -!missing-type! DDDetectedValueEmailAddress not bound -!missing-type! DDDetectedValueFlightNumber not bound -!missing-type! DDDetectedValueLink not bound -!missing-type! DDDetectedValueMoneyAmount not bound -!missing-type! DDDetectedValuePhoneNumber not bound -!missing-type! DDDetectedValuePostalAddress not bound -!missing-type! DDDetectedValueShipmentTrackingNumber not bound +!missing-selector! DDMatch::matchedString not bound +!missing-selector! DDMatchCalendarEvent::endDate not bound +!missing-selector! DDMatchCalendarEvent::endTimeZone not bound +!missing-selector! DDMatchCalendarEvent::isAllDay not bound +!missing-selector! DDMatchCalendarEvent::startDate not bound +!missing-selector! DDMatchCalendarEvent::startTimeZone not bound +!missing-selector! DDMatchEmailAddress::emailAddress not bound +!missing-selector! DDMatchEmailAddress::label not bound +!missing-selector! DDMatchFlightNumber::airline not bound +!missing-selector! DDMatchFlightNumber::flightNumber not bound +!missing-selector! DDMatchLink::URL not bound +!missing-selector! DDMatchMoneyAmount::amount not bound +!missing-selector! DDMatchMoneyAmount::currency not bound +!missing-selector! DDMatchPhoneNumber::label not bound +!missing-selector! DDMatchPhoneNumber::phoneNumber not bound +!missing-selector! DDMatchPostalAddress::city not bound +!missing-selector! DDMatchPostalAddress::country not bound +!missing-selector! DDMatchPostalAddress::postalCode not bound +!missing-selector! DDMatchPostalAddress::state not bound +!missing-selector! DDMatchPostalAddress::street not bound +!missing-selector! DDMatchShipmentTrackingNumber::carrier not bound +!missing-selector! DDMatchShipmentTrackingNumber::trackingNumber not bound +!missing-type! DDMatch not bound +!missing-type! DDMatchCalendarEvent not bound +!missing-type! DDMatchEmailAddress not bound +!missing-type! DDMatchFlightNumber not bound +!missing-type! DDMatchLink not bound +!missing-type! DDMatchMoneyAmount not bound +!missing-type! DDMatchPhoneNumber not bound +!missing-type! DDMatchPostalAddress not bound +!missing-type! DDMatchShipmentTrackingNumber not bound diff --git a/tests/xtro-sharpie/tvOS-GameController.todo b/tests/xtro-sharpie/tvOS-GameController.todo new file mode 100644 index 0000000000..10e430e907 --- /dev/null +++ b/tests/xtro-sharpie/tvOS-GameController.todo @@ -0,0 +1,6 @@ +!missing-field! GCInputButtonShare not bound +!missing-field! GCInputMicroGamepadButtonMenu not bound +!missing-selector! GCPhysicalInputProfile::hasRemappedElements not bound +!missing-selector! GCPhysicalInputProfile::mappedElementAliasForPhysicalInputName: not bound +!missing-selector! GCPhysicalInputProfile::mappedPhysicalInputNamesForElementAlias: not bound +!missing-selector! GCXboxGamepad::buttonShare not bound diff --git a/tests/xtro-sharpie/tvOS-MetalPerformanceShadersGraph.todo b/tests/xtro-sharpie/tvOS-MetalPerformanceShadersGraph.todo index aa8651949e..a861c057b4 100644 --- a/tests/xtro-sharpie/tvOS-MetalPerformanceShadersGraph.todo +++ b/tests/xtro-sharpie/tvOS-MetalPerformanceShadersGraph.todo @@ -397,3 +397,24 @@ !missing-type! MPSGraphVariableOp not bound ## appended from unclassified file ## appended from unclassified file +!missing-selector! MPSGraph::broadcastTensor:toShape:name: not bound +!missing-selector! MPSGraph::broadcastTensor:toShapeTensor:name: not bound +!missing-selector! MPSGraph::castTensor:toType:name: not bound +!missing-selector! MPSGraph::convolution2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolution2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name: not bound +!missing-selector! MPSGraph::convolutionTranspose2DWithSourceTensor:weightsTensor:outputShapeTensor:descriptor:name: not bound +!missing-selector! MPSGraph::leakyReLUGradientWithIncomingGradient:sourceTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alpha:name: not bound +!missing-selector! MPSGraph::leakyReLUWithTensor:alphaTensor:name: not bound +!missing-selector! MPSGraph::reshapeTensor:withShapeTensor:name: not bound +!missing-selector! MPSGraph::resizeTensor:sizeTensor:mode:centerResult:alignCorners:layout:name: not bound +!missing-selector! MPSGraph::scatterNDWithDataTensor:updatesTensor:indicesTensor:batchDimensions:mode:name: not bound +!missing-selector! MPSGraph::scatterWithDataTensor:updatesTensor:indicesTensor:axis:mode:name: not bound +!missing-selector! MPSGraph::scatterWithUpdatesTensor:indicesTensor:shape:axis:mode:name: not bound +!missing-selector! MPSGraph::shapeOfTensor:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:k:name: not bound +!missing-selector! MPSGraph::topKWithGradientTensor:source:kTensor:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:k:name: not bound +!missing-selector! MPSGraph::topKWithSourceTensor:kTensor:name: not bound diff --git a/tests/xtro-sharpie/tvOS-Network.todo b/tests/xtro-sharpie/tvOS-Network.todo index 0cdf77cf6f..c21bc8e558 100644 --- a/tests/xtro-sharpie/tvOS-Network.todo +++ b/tests/xtro-sharpie/tvOS-Network.todo @@ -72,3 +72,4 @@ !missing-pinvoke! nw_quic_set_stream_application_error is not bound !missing-pinvoke! nw_quic_set_stream_is_unidirectional is not bound !missing-pinvoke! nw_tcp_options_set_multipath_force_version is not bound +!missing-pinvoke! nw_group_descriptor_create_multiplex is not bound diff --git a/tests/xtro-sharpie/tvOS-UIKit.todo b/tests/xtro-sharpie/tvOS-UIKit.todo index 25c46a5c49..694171dec6 100644 --- a/tests/xtro-sharpie/tvOS-UIKit.todo +++ b/tests/xtro-sharpie/tvOS-UIKit.todo @@ -41,7 +41,6 @@ !missing-enum! UIButtonConfigurationMacIdiomStyle not bound !missing-enum! UIButtonConfigurationSize not bound !missing-enum! UIButtonConfigurationTitleAlignment not bound -!missing-enum! UIImageVariant not bound !missing-enum! UIWindowScenePresentationStyle not bound !missing-enum-value! UIFocusHeading native value UIFocusHeadingFirst = 256 not bound !missing-enum-value! UIFocusHeading native value UIFocusHeadingLast = 512 not bound @@ -54,7 +53,6 @@ !missing-field! UICollectionViewLayoutAutomaticDimension not bound !missing-field! UIKeyInputDelete not bound !missing-field! UIMenuSidebar not bound -!missing-field! UIPasteboardDetectionPatternAddress not bound !missing-field! UIPasteboardDetectionPatternCalendarEvent not bound !missing-field! UIPasteboardDetectionPatternEmailAddress not bound !missing-field! UIPasteboardDetectionPatternFlightNumber not bound @@ -95,10 +93,6 @@ !missing-selector! +UIColor::tintColor not bound !missing-selector! +UIDeferredMenuElement::elementWithUncachedProvider: not bound !missing-selector! +UIFocusDebugger::checkFocusGroupTreeForEnvironment: not bound -!missing-selector! +UIImage::imageNamed:variant: not bound -!missing-selector! +UIImage::imageNamed:variant:withConfiguration: not bound -!missing-selector! +UIImage::systemImageNamed:variant: not bound -!missing-selector! +UIImage::systemImageNamed:variant:withConfiguration: not bound !missing-selector! +UIImageSymbolConfiguration::configurationPreferringMulticolor not bound !missing-selector! +UIImageSymbolConfiguration::configurationWithHierarchicalColor: not bound !missing-selector! +UIImageSymbolConfiguration::configurationWithPaletteColors: not bound @@ -371,11 +365,8 @@ !missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::snapshotForExpandingParentItemHandler not bound !missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::willCollapseItemHandler not bound !missing-selector! UICollectionViewDiffableDataSourceSectionSnapshotHandlers::willExpandItemHandler not bound -!missing-selector! UIImage::imageByApplyingVariant: not bound -!missing-selector! UIImage::imageByApplyingVariantFromImage: not bound !missing-selector! UIImage::imageByPreparingForDisplay not bound !missing-selector! UIImage::imageByPreparingThumbnailOfSize: not bound -!missing-selector! UIImage::imageByRemovingVariant not bound !missing-selector! UIImage::prepareForDisplayWithCompletionHandler: not bound !missing-selector! UIImage::prepareThumbnailOfSize:completionHandler: not bound !missing-selector! UIKeyCommand::allowsAutomaticLocalization not bound @@ -393,29 +384,6 @@ !missing-selector! UINavigationBar::setCompactScrollEdgeAppearance: not bound !missing-selector! UINavigationItem::compactScrollEdgeAppearance not bound !missing-selector! UINavigationItem::setCompactScrollEdgeAppearance: not bound -!missing-selector! UIPasteboardDetectionResult::matchedRange not bound -!missing-selector! UIPasteboardDetectionResult::matchedString not bound -!missing-selector! UIPasteboardDetectionResultAddress::city not bound -!missing-selector! UIPasteboardDetectionResultAddress::country not bound -!missing-selector! UIPasteboardDetectionResultAddress::postalCode not bound -!missing-selector! UIPasteboardDetectionResultAddress::state not bound -!missing-selector! UIPasteboardDetectionResultAddress::street not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::allDay not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::endDate not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::endTimeZone not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::startDate not bound -!missing-selector! UIPasteboardDetectionResultCalendarEvent::startTimeZone not bound -!missing-selector! UIPasteboardDetectionResultEmailAddress::emailAddress not bound -!missing-selector! UIPasteboardDetectionResultEmailAddress::label not bound -!missing-selector! UIPasteboardDetectionResultFlightNumber::airline not bound -!missing-selector! UIPasteboardDetectionResultFlightNumber::flightNumber not bound -!missing-selector! UIPasteboardDetectionResultLink::url not bound -!missing-selector! UIPasteboardDetectionResultMoneyAmount::amount not bound -!missing-selector! UIPasteboardDetectionResultMoneyAmount::currency not bound -!missing-selector! UIPasteboardDetectionResultPhoneNumber::label not bound -!missing-selector! UIPasteboardDetectionResultPhoneNumber::phoneNumber not bound -!missing-selector! UIPasteboardDetectionResultShipmentTrackingNumber::carrier not bound -!missing-selector! UIPasteboardDetectionResultShipmentTrackingNumber::trackingNumber not bound !missing-selector! UIResponder::captureTextFromCamera: not bound !missing-selector! UIScene::completeStateRestoration not bound !missing-selector! UIScene::extendStateRestoration not bound @@ -475,15 +443,16 @@ !missing-type! NSTextSelectionNavigation not bound !missing-type! NSTextViewportLayoutController not bound !missing-type! UIButtonConfiguration not bound -!missing-type! UIPasteboardDetectionResult not bound -!missing-type! UIPasteboardDetectionResultAddress not bound -!missing-type! UIPasteboardDetectionResultCalendarEvent not bound -!missing-type! UIPasteboardDetectionResultEmailAddress not bound -!missing-type! UIPasteboardDetectionResultFlightNumber not bound -!missing-type! UIPasteboardDetectionResultLink not bound -!missing-type! UIPasteboardDetectionResultMoneyAmount not bound -!missing-type! UIPasteboardDetectionResultPhoneNumber not bound -!missing-type! UIPasteboardDetectionResultShipmentTrackingNumber not bound !missing-type! UIWindowSceneActivationRequestOptions not bound ## appended from unclassified file ## appended from unclassified file +!missing-field! UIPasteboardDetectionPatternPostalAddress not bound +!missing-selector! +UIButtonConfiguration::borderedButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderedProminentButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderedTintedButtonConfiguration not bound +!missing-selector! +UIButtonConfiguration::borderlessButtonConfiguration not bound +!missing-selector! UIButtonConfiguration::activityIndicatorColorTransformer not bound +!missing-selector! UIButtonConfiguration::automaticallyUpdateForSelection not bound +!missing-selector! UIButtonConfiguration::setActivityIndicatorColorTransformer: not bound +!missing-selector! UIButtonConfiguration::setAutomaticallyUpdateForSelection: not bound +!missing-selector! UIButtonConfiguration::setDefaultContentInsets not bound diff --git a/tests/xtro-sharpie/watchOS-AVFoundation.todo b/tests/xtro-sharpie/watchOS-AVFoundation.todo index 06b9de5538..116a570cc2 100644 --- a/tests/xtro-sharpie/watchOS-AVFoundation.todo +++ b/tests/xtro-sharpie/watchOS-AVFoundation.todo @@ -95,3 +95,4 @@ !missing-type! AVAssetVariantVideoAttributes not bound !missing-type! AVMetadataItemFilter not bound ## appended from unclassified file +!missing-field! AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification not bound diff --git a/tests/xtro-sharpie/watchOS-CoreGraphics.todo b/tests/xtro-sharpie/watchOS-CoreGraphics.todo index d7d1672b0f..41628a6931 100644 --- a/tests/xtro-sharpie/watchOS-CoreGraphics.todo +++ b/tests/xtro-sharpie/watchOS-CoreGraphics.todo @@ -4,3 +4,5 @@ !missing-pinvoke! CGColorSpaceIsPQBased is not bound !missing-pinvoke! CGConvertColorDataWithFormat is not bound !missing-pinvoke! CGErrorSetCallback is not bound +!missing-field! kCGColorSpaceLinearDisplayP3 not bound +!missing-field! kCGColorSpaceLinearITUR_2020 not bound diff --git a/tests/xtro-sharpie/watchOS-DataDetection.todo b/tests/xtro-sharpie/watchOS-DataDetection.todo index 0b4cde239c..fe5af8d5e7 100644 --- a/tests/xtro-sharpie/watchOS-DataDetection.todo +++ b/tests/xtro-sharpie/watchOS-DataDetection.todo @@ -1,32 +1,31 @@ -!missing-selector! DDDetectedValue::matchedRange not bound -!missing-selector! DDDetectedValue::matchedString not bound -!missing-selector! DDDetectedValueCalendarEvent::endDate not bound -!missing-selector! DDDetectedValueCalendarEvent::endTimeZone not bound -!missing-selector! DDDetectedValueCalendarEvent::isAllDay not bound -!missing-selector! DDDetectedValueCalendarEvent::startDate not bound -!missing-selector! DDDetectedValueCalendarEvent::startTimeZone not bound -!missing-selector! DDDetectedValueEmailAddress::emailAddress not bound -!missing-selector! DDDetectedValueEmailAddress::label not bound -!missing-selector! DDDetectedValueFlightNumber::airline not bound -!missing-selector! DDDetectedValueFlightNumber::flightNumber not bound -!missing-selector! DDDetectedValueLink::URL not bound -!missing-selector! DDDetectedValueMoneyAmount::amount not bound -!missing-selector! DDDetectedValueMoneyAmount::currency not bound -!missing-selector! DDDetectedValuePhoneNumber::label not bound -!missing-selector! DDDetectedValuePhoneNumber::phoneNumber not bound -!missing-selector! DDDetectedValuePostalAddress::city not bound -!missing-selector! DDDetectedValuePostalAddress::country not bound -!missing-selector! DDDetectedValuePostalAddress::postalCode not bound -!missing-selector! DDDetectedValuePostalAddress::state not bound -!missing-selector! DDDetectedValuePostalAddress::street not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::carrier not bound -!missing-selector! DDDetectedValueShipmentTrackingNumber::trackingNumber not bound -!missing-type! DDDetectedValue not bound -!missing-type! DDDetectedValueCalendarEvent not bound -!missing-type! DDDetectedValueEmailAddress not bound -!missing-type! DDDetectedValueFlightNumber not bound -!missing-type! DDDetectedValueLink not bound -!missing-type! DDDetectedValueMoneyAmount not bound -!missing-type! DDDetectedValuePhoneNumber not bound -!missing-type! DDDetectedValuePostalAddress not bound -!missing-type! DDDetectedValueShipmentTrackingNumber not bound +!missing-selector! DDMatch::matchedString not bound +!missing-selector! DDMatchCalendarEvent::endDate not bound +!missing-selector! DDMatchCalendarEvent::endTimeZone not bound +!missing-selector! DDMatchCalendarEvent::isAllDay not bound +!missing-selector! DDMatchCalendarEvent::startDate not bound +!missing-selector! DDMatchCalendarEvent::startTimeZone not bound +!missing-selector! DDMatchEmailAddress::emailAddress not bound +!missing-selector! DDMatchEmailAddress::label not bound +!missing-selector! DDMatchFlightNumber::airline not bound +!missing-selector! DDMatchFlightNumber::flightNumber not bound +!missing-selector! DDMatchLink::URL not bound +!missing-selector! DDMatchMoneyAmount::amount not bound +!missing-selector! DDMatchMoneyAmount::currency not bound +!missing-selector! DDMatchPhoneNumber::label not bound +!missing-selector! DDMatchPhoneNumber::phoneNumber not bound +!missing-selector! DDMatchPostalAddress::city not bound +!missing-selector! DDMatchPostalAddress::country not bound +!missing-selector! DDMatchPostalAddress::postalCode not bound +!missing-selector! DDMatchPostalAddress::state not bound +!missing-selector! DDMatchPostalAddress::street not bound +!missing-selector! DDMatchShipmentTrackingNumber::carrier not bound +!missing-selector! DDMatchShipmentTrackingNumber::trackingNumber not bound +!missing-type! DDMatch not bound +!missing-type! DDMatchCalendarEvent not bound +!missing-type! DDMatchEmailAddress not bound +!missing-type! DDMatchFlightNumber not bound +!missing-type! DDMatchLink not bound +!missing-type! DDMatchMoneyAmount not bound +!missing-type! DDMatchPhoneNumber not bound +!missing-type! DDMatchPostalAddress not bound +!missing-type! DDMatchShipmentTrackingNumber not bound diff --git a/tests/xtro-sharpie/watchOS-HealthKit.todo b/tests/xtro-sharpie/watchOS-HealthKit.todo new file mode 100644 index 0000000000..bb9c0f5186 --- /dev/null +++ b/tests/xtro-sharpie/watchOS-HealthKit.todo @@ -0,0 +1 @@ +!missing-field! HKMetadataKeyAlgorithmVersion not bound diff --git a/tests/xtro-sharpie/watchOS-Intents.todo b/tests/xtro-sharpie/watchOS-Intents.todo index 2aa332b1d9..8e5d398bc3 100644 --- a/tests/xtro-sharpie/watchOS-Intents.todo +++ b/tests/xtro-sharpie/watchOS-Intents.todo @@ -62,3 +62,6 @@ !missing-type! INShareFocusStatusIntentResponse not bound ## appended from unclassified file ## appended from unclassified file +!missing-selector! INPerson::initWithPersonHandle:nameComponents:displayName:image:contactIdentifier:customIdentifier:isContactSuggestion:suggestionType: not bound +!missing-selector! INPerson::isContactSuggestion not bound +!unknown-type! INTemperatureResolutionResult bound diff --git a/tests/xtro-sharpie/watchOS-Network.todo b/tests/xtro-sharpie/watchOS-Network.todo index 0cdf77cf6f..c21bc8e558 100644 --- a/tests/xtro-sharpie/watchOS-Network.todo +++ b/tests/xtro-sharpie/watchOS-Network.todo @@ -72,3 +72,4 @@ !missing-pinvoke! nw_quic_set_stream_application_error is not bound !missing-pinvoke! nw_quic_set_stream_is_unidirectional is not bound !missing-pinvoke! nw_tcp_options_set_multipath_force_version is not bound +!missing-pinvoke! nw_group_descriptor_create_multiplex is not bound diff --git a/tests/xtro-sharpie/watchOS-UIKit.todo b/tests/xtro-sharpie/watchOS-UIKit.todo index f8f124645b..0d96d389fa 100644 --- a/tests/xtro-sharpie/watchOS-UIKit.todo +++ b/tests/xtro-sharpie/watchOS-UIKit.todo @@ -5,11 +5,3 @@ !missing-selector! NSMutableParagraphStyle::setUsesDefaultHyphenation: not bound !missing-selector! NSMutableParagraphStyle::usesDefaultHyphenation not bound !missing-selector! NSParagraphStyle::usesDefaultHyphenation not bound -!missing-enum! UIImageVariant not bound -!missing-selector! +UIImage::imageNamed:variant: not bound -!missing-selector! +UIImage::imageNamed:variant:withConfiguration: not bound -!missing-selector! +UIImage::systemImageNamed:variant: not bound -!missing-selector! +UIImage::systemImageNamed:variant:withConfiguration: not bound -!missing-selector! UIImage::imageByApplyingVariant: not bound -!missing-selector! UIImage::imageByApplyingVariantFromImage: not bound -!missing-selector! UIImage::imageByRemovingVariant not bound diff --git a/tools/devops/automation/scripts/bash/build-nugets.sh b/tools/devops/automation/scripts/bash/build-nugets.sh index 831afb0985..0b61393de7 100755 --- a/tools/devops/automation/scripts/bash/build-nugets.sh +++ b/tools/devops/automation/scripts/bash/build-nugets.sh @@ -15,6 +15,7 @@ rm -f ../package/*.nupkg cp -c "$DOTNET_NUPKG_DIR"/*.nupkg ../package/ cp -c "$DOTNET_NUPKG_DIR"/vs-workload.props ../package/ cp -c "$DOTNET_NUPKG_DIR"/SignList.xml ../package/ +cp -c "$DOTNET_NUPKG_DIR"/SignList.targets ../package/ DOTNET_PKG_DIR=$(make -C tools/devops print-abspath-variable VARIABLE=DOTNET_PKG_DIR | grep "^DOTNET_PKG_DIR=" | sed -e 's/^DOTNET_PKG_DIR=//') make -C dotnet package -j