* Use proper dependency tracking, so that we'll only rebuild what needs to be rebuilt
when rebuilding. This required using a few stamp files. It also improves parallel
builds.
* Remove *.raw files before running xtro-sharpie, and only for the current platform.
This makes sure rebuilds of just some of the platforms work correctly (because
the *.raw files for other platforms are still around when needed).
* Build the u2todo project file instead of manually calling csc.
* LAContext.MaxBiometryFailures is available in macOS, just deprecated, so mark
it as such.
* Remove deprecated code from .NET.
* Update xtro definitions.
The kSecUseNoAuthenticationUI field is available on macOS, just deprecated,
and I don't see how having the field bound would be a breaking change like the
comment says (git history seems to indicate it's referring to the
Classic/Unified switchover - i.e. quite outdated), so add the field to macOS.
Fixes:
MonoTouchFixtures.UIKit.FontTest
CoreText note: Client requested name ".SFNS-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
CoreText note: Set a breakpoint on CTFontLogSystemFontNameRequest to debug.
[FAIL] NullFonts : WithSize
Expected: not null
But was: null
at MonoTouchFixtures.UIKit.FontTest.NullFonts() in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/UIKit/FontTest.cs:line 165
From what I can see for current Apple API these XAMCORE_4_0 exclusions are
incorrect.
Fixes (when building with XAMCORE_4_0):
> storekit.cs(834,79): error CS0246: The type or namespace name 'SKProductStorePromotionVisibility' could not be found (are you missing a using directive or an assembly reference?)
> storekit.cs(838,16): error CS0246: The type or namespace name 'SKProductStorePromotionVisibility' could not be found (are you missing a using directive or an assembly reference?)
The '_AppExtensionRoot' contains the correct parent directory of the 'PlugIns'
directory for all platforms, so use that instead of appending 'PlugIns' to
'_AppBundlePath' - which is incorrect on macOS and Mac Catalyst, because the
'PlugIns' parent directory is '$(_AppBundlePath)/Contents' on those platforms.
Fixes https://github.com/xamarin/xamarin-macios/issues/13415.
* [AppKit] NSTextMovement is defined to be an NSInteger, so keep this as a native enum in .NET.
* [AppKit] NSWindowStyle is defined to be an NSUInteger, so keep this as a native enum in .NET.
* [AppKit] NSWindowNumberListOptions is defined to be an NSUInteger, so keep this as a native enum in .NET.
* [tools] Extract the logic to parse OSPlatformAttribute platform names to a separate file/class.
* [introspection] Migrate .NET code to use the new .NET-style availability attributes.
This also means using the 'ApplePlatform' enum instead of the 'PlatformName'
enum, because the latter will be removed in .NET.
* [FileProvider] Exclude some deprecated API from .NET.
* [AVFoundation] Adjust availability attribute for AVCaptureStillImageOutput.HighResolutionStillImageOutputEnabled.
* Update tests.
* Unify the signed and unsigned implementations. We lose some type-safety (because
we have to use 'object' as the unifying type between long and ulong), but we minimize
code duplication, so the code becomes easier to maintain.
* Add an additional check for managed enum values that show up in the native header,
but aren't available on the current platform.
This makes it easier to iterate over all the *_SDK_VERSION variables in
template code, because they're all named using the standard platform names we
use elsewhere.
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.101-servicing.21566.16 -> To Version 6.0.101-servicing.21567.21
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
These all have equivalent SetX functions that already take the corresponding
GameController type, so this is just making the API consistent.
We could also make these getters + the corresponding Set* method a readwrite
property, but this way is exactly how Apple did it (both in Swift and
Objective-C).
It appears that the package IDs for the manifests retain the main .NET version band, such as 100 and 200, and the packs use the full version of 101 or 203.
This PR just uses the version band for the manifest packages.
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
This fixes an issue where we'd create the stamp file even if 'NoBindingEmbedding' wasn't set.
Also remove SkipBindingResourcePackage property, it doesn't show up anywhere
else in our code base, nor in the history, nor anywhere relevant in Google.
There are numerous checks that don't make much sense to report for deprecated
API, so skip those. This also required updating a few .ignore and .todo files.