And make the MacOSXSdk and AppleSdk classes implement these new methods,
without changing any of the public API in these classes.
This makes it easier to share code between Xamarin.iOS and Xamarin.Mac, since
the IAppleSdk interface can be used in shared code, while the separate classes
can't.
Use what's returned by 'xcode-select -p' as the configured Xcode if none is
specified in Visual Studio's settings. It looks like this was the intention in
the code, but the code that calls 'xcode-select -p' would never execute,
because we'd only run into it if GetConfiguredSdkLocation returned null/empty,
which it never did because it returned the default location
'/Applications/Xcode.app' if nothing was configured in VSfM. With this change,
GetConfiguredSdkLocation will try to get the system's Xcode location
('xcode-select -p') before returning /Applications/Xcode.app.
Also remove /Developer as a default location, Xcode hasn't been there in many,
many years.
Now the order is:
1. Settings in Visual Studio's Preferences.
2. System's Xcode (xcode-select --print-path).
3. /Applications/Xcode.app
This avoids strange problems if the system's Xcode is not
/Applications/Xcode.app and there's no Xcode configured in Visual Studio's
settings.
Ref: https://github.com/xamarin/xamarin-macios/issues/10003
XSAccentColorAssets will be used as custom key for storing the path to the asset, and NSAccentColorName is the Apple key that contains the name of the asset that will be used as accent color by the OS
* Add credential provider to ExtensionPoint enumeration
* Add min version check rule for credential provider ExtensionPoint
* Add trailing comma to make the next entry's diff smaller
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: kiddailey <kiddailey@users.noreply.github.com>
* Add credential provider to ExtensionPoint enumeration
* Add min version check rule for credential provider ExtensionPoint
* Add trailing comma to make the next entry's diff smaller
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: kiddailey <kiddailey@users.noreply.github.com>
* Add credential provider to ExtensionPoint enumeration
* Add min version check rule for credential provider ExtensionPoint
* Add trailing comma to make the next entry's diff smaller
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Split IAppleSdkVersion.TryParse into two methods, one that outputs the parsed
int array and one that outputs the actual IAppleSdkVersion. This way we can
re-use the actual version validation by using the int array overload when
we're not interested in the actual version output.
* [Xamarin.MacDev] Add interfaces to bridge Xamarin.iOS- and Xamarin.Mac-specific classes.
* Add IAppleSdk interface to bridge AppleSdk and MacOSXSdk.
* Add IAppleSdkVersion interface to bridge IPhoneSdkVersion and MacOXSdkVersion.
* Use camel case.
Adjust SDK validation to find mtouch in a tools/bin directory (which is where
mtouch resides when shipped in a nuget package), and not look in usr/bin
(mtouch hasn't been there in a long, long time, and then it was very briefly).
Simplify the validation logic to output mtouch's actual path instead of a
value indicating the subdirectory where it was found.
Additionally compute the bin directory to be mtouch's directory, and the lib
directory a sibling of the bin directory.
nuget doesn't like files that start with 'build*' in the root nuget directory
[1], so avoid it by putting 'buildinfo' in 'tools/buildinfo' instead.
[1]: https://github.com/NuGet/Home/issues/8810
* Use package references instead of packages.conf in preparation for move to short-form csprojs.
* Move to short-form csproj.
* Build for netstandard2.0.
Bug: http://work.azdo.io/944720
AB#944720
VSM is no longer checking if a platform was specified to show API avaialbility information, this was done to also show that information when the OS version wasn't specified. That change introduced a new bug, now there's no way to identify if the availability information corresponds to the current platform (i.e. something that's unavailable for watchOS will be also shown as unavailable for iOS). Adding a simple `HasValue` property lets us keep all the logic around `IsSpecified` know if availability information was actually set for a specific platform.
VSM commit that introduced this problem: 10f3c6f337