diff --git a/external/Xamarin.MacDev b/external/Xamarin.MacDev
index fae0237704b7..02d6d05be350 160000
--- a/external/Xamarin.MacDev
+++ b/external/Xamarin.MacDev
@@ -1 +1 @@
-Subproject commit fae0237704b792004adf592d8c9038a9d46aafff
+Subproject commit 02d6d05be3506c89a3b4fa8a8ceb7f33712a8f46
diff --git a/msbuild/Xamarin.Mac.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs b/msbuild/Xamarin.Mac.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs
index f6418b8f99e2..ed841adeec1a 100644
--- a/msbuild/Xamarin.Mac.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs
+++ b/msbuild/Xamarin.Mac.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs
@@ -7,7 +7,8 @@ public abstract class DetectSdkLocationsTaskBase : DetectSdkLocationsCoreTaskBas
 	{
 		protected override IAppleSdkVersion GetDefaultSdkVersion ()
 		{
-			return MacOSXSdkVersion.GetDefault (CurrentSdk);
+			var v = CurrentSdk.GetInstalledSdkVersions (false);
+			return v.Count > 0 ? v [v.Count - 1] : AppleSdkVersion.UseDefault;
 		}
 
 		protected override string GetDefaultXamarinSdkRoot ()
diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/CompileAppManifestTaskCore.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/CompileAppManifestTaskCore.cs
index 4a7dcbc8426d..28dcd88169e7 100644
--- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/CompileAppManifestTaskCore.cs
+++ b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/CompileAppManifestTaskCore.cs
@@ -15,7 +15,7 @@ namespace Xamarin.iOS.Tasks
 	public abstract class CompileAppManifestTaskCore : CompileAppManifestTaskBase
 	{
 		IPhoneDeviceType supportedDevices;
-		IPhoneSdkVersion sdkVersion;
+		AppleSdkVersion sdkVersion;
 
 		bool IsIOS { get { return Platform == ApplePlatform.iOS; } }
 
@@ -23,7 +23,7 @@ protected override bool Compile (PDictionary plist)
 		{
 			var currentSDK = Sdks.GetAppleSdk (Platform);
 
-			sdkVersion = IPhoneSdkVersion.Parse (DefaultSdkVersion);
+			sdkVersion = AppleSdkVersion.Parse (DefaultSdkVersion);
 			if (!currentSDK.SdkIsInstalled (sdkVersion, SdkIsSimulator)) {
 				Log.LogError (null, null, null, null, 0, 0, 0, 0, MSBStrings.E0013, Platform, sdkVersion);
 				return false;
@@ -295,7 +295,7 @@ void Validation (PDictionary plist)
 			var supportsIPad = (supportedDevices & IPhoneDeviceType.IPad) != 0;
 
 			// Validation...
-			if (!IsAppExtension && sdkVersion >= IPhoneSdkVersion.V3_2) {
+			if (!IsAppExtension && sdkVersion >= AppleSdkVersion.V3_2) {
 				IPhoneOrientation orientation;
 
 				if (supportsIPhone) {
diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs
index 73aa85f5b70d..8a1e03103e72 100644
--- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs
+++ b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/DetectSdkLocationsTaskBase.cs
@@ -9,7 +9,7 @@ public abstract class DetectSdkLocationsTaskBase : DetectSdkLocationsCoreTaskBas
 	{
 		protected override IAppleSdkVersion GetDefaultSdkVersion ()
 		{
-			return IPhoneSdkVersion.UseDefault;
+			return AppleSdkVersion.UseDefault;
 		}
 
 		public override bool Execute ()
diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ResolveNativeWatchAppTaskBase.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ResolveNativeWatchAppTaskBase.cs
index 8bd8dc3557ce..4363dc3642c5 100644
--- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ResolveNativeWatchAppTaskBase.cs
+++ b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ResolveNativeWatchAppTaskBase.cs
@@ -39,11 +39,11 @@ bool IsWatchFramework {
 		public override bool Execute ()
 		{
 			var currentSdk = Sdks.GetSdk (TargetFrameworkMoniker);
-			IPhoneSdkVersion version;
+			AppleSdkVersion version;
 			string sdk_path;
 
 			if (IsWatchFramework) {
-				if (!IPhoneSdkVersion.TryParse (SdkVersion, out version)) {
+				if (!AppleSdkVersion.TryParse (SdkVersion, out version)) {
 					Log.LogError (MSBStrings.E0066, SdkVersion);
 					return false;
 				}
@@ -60,12 +60,12 @@ public override bool Execute ()
 					return false;
 				}
 
-				if (!IPhoneSdkVersion.TryParse (SdkVersion, out version)) {
+				if (!AppleSdkVersion.TryParse (SdkVersion, out version)) {
 					Log.LogError (MSBStrings.E0066, SdkVersion);
 					return false;
 				}
 
-				if (version < IPhoneSdkVersion.V8_2) {
+				if (version < AppleSdkVersion.V8_2) {
 					Log.LogError (MSBStrings.E0069, version);
 					return false;
 				}
diff --git a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_iOS.cs b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_iOS.cs
index dc7c71d9c0c8..d397e746f317 100644
--- a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_iOS.cs
+++ b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_iOS.cs
@@ -11,7 +11,7 @@ public class GeneratePlistTaskTests_iOS : GeneratePlistTaskTests_Core
 		public override void ConfigureTask ()
 		{
 			base.ConfigureTask ();
-			Task.DefaultSdkVersion = Sdks.IOS.GetClosestInstalledSdk (IPhoneSdkVersion.V6_1, true).ToString ();
+			Task.DefaultSdkVersion = Sdks.IOS.GetClosestInstalledSdk (AppleSdkVersion.V6_1, true).ToString ();
 			Task.TargetFrameworkMoniker = "Xamarin.iOS,v1.0";
 			Task.TargetArchitectures = "ARM64";
 		}
diff --git a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_tvOS.cs b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_tvOS.cs
index c4f525f588f7..fa63477285a5 100644
--- a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_tvOS.cs
+++ b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_tvOS.cs
@@ -9,7 +9,7 @@ public class GeneratePlistTaskTests_tvOS : GeneratePlistTaskTests_Core
 		public override void ConfigureTask ()
 		{
 			base.ConfigureTask ();
-			Task.DefaultSdkVersion = Sdks.TVOS.GetClosestInstalledSdk (IPhoneSdkVersion.V9_0, true).ToString ();
+			Task.DefaultSdkVersion = Sdks.TVOS.GetClosestInstalledSdk (AppleSdkVersion.V9_0, true).ToString ();
 			Task.TargetFrameworkMoniker = "Xamarin.TVOS,v1.0";
 		}
 	}
diff --git a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_watchOS.cs b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_watchOS.cs
index 91a16ab07c6a..d9737ff54bcc 100644
--- a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_watchOS.cs
+++ b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/GeneratePlistTaskTests/GeneratePlistTaskTests_watchOS.cs
@@ -9,7 +9,7 @@ public abstract class GeneratePlistTaskTests_watchOS: GeneratePlistTaskTests_Cor
 		public override void ConfigureTask ()
 		{
 			base.ConfigureTask ();
-			Task.DefaultSdkVersion = Sdks.Watch.GetClosestInstalledSdk (IPhoneSdkVersion.V2_0, true).ToString ();
+			Task.DefaultSdkVersion = Sdks.Watch.GetClosestInstalledSdk (AppleSdkVersion.V2_0, true).ToString ();
 			Task.TargetFrameworkMoniker = "Xamarin.WatchOS,v1.0";
 		}
 	}
diff --git a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/IBToolTaskTests.cs b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/IBToolTaskTests.cs
index 7e3c83aa3905..8fb7e6df4d2c 100644
--- a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/IBToolTaskTests.cs
+++ b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/IBToolTaskTests.cs
@@ -21,7 +21,7 @@ IBTool CreateIBToolTask (ApplePlatform framework, string projectDir, string inte
 		{
 			var interfaceDefinitions = new List<ITaskItem> ();
 			var sdk = Sdks.GetSdk (framework);
-			var version = IPhoneSdkVersion.GetDefault (sdk, false);
+			var version = AppleSdkVersion.GetDefault (sdk, false);
 			var root = sdk.GetSdkPath (version, false);
 			var usr = Path.Combine (sdk.DeveloperRoot, "usr");
 			var bin = Path.Combine (usr, "bin");
