From 2bc66b0cbebdebfb6ec1a71ff1713c101d66cdf0 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Wed, 6 Oct 2021 15:51:42 +0200 Subject: [PATCH] [msbuild] Share the CodesignVerify task implementation between iOS and macOS. (#12918) --- .../Xamarin.Mac.Tasks/Tasks/CodesignVerify.cs | 21 ------------------- .../Tasks/CodesignVerifyTaskBase.cs | 20 ++++++++++++++---- .../Tasks/CodesignVerify.cs | 2 +- msbuild/Xamarin.Shared/Xamarin.Shared.targets | 5 +++-- .../Tasks/CodesignVerifyTaskBase.cs | 20 ------------------ 5 files changed, 20 insertions(+), 48 deletions(-) delete mode 100644 msbuild/Xamarin.Mac.Tasks/Tasks/CodesignVerify.cs rename msbuild/{Xamarin.iOS.Tasks => Xamarin.MacDev.Tasks}/Tasks/CodesignVerify.cs (93%) delete mode 100644 msbuild/Xamarin.iOS.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs diff --git a/msbuild/Xamarin.Mac.Tasks/Tasks/CodesignVerify.cs b/msbuild/Xamarin.Mac.Tasks/Tasks/CodesignVerify.cs deleted file mode 100644 index 6d93c9ab17..0000000000 --- a/msbuild/Xamarin.Mac.Tasks/Tasks/CodesignVerify.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Xamarin.MacDev; -using Xamarin.MacDev.Tasks; - -namespace Xamarin.Mac.Tasks -{ - public class CodesignVerify : CodesignVerifyTaskBase - { - protected override string GenerateCommandLineCommands () - { - var args = new CommandLineArgumentBuilder (); - - args.Add ("--verify"); - args.Add ("-vvvv"); - args.Add ("--deep"); - - args.AddQuoted (Resource); - - return args.ToString (); - } - } -} diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs index 0db2d54aca..561e251083 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs @@ -1,11 +1,10 @@ using System; using System.IO; -using System.Collections.Specialized; using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; -using Xamarin.MacDev; +using Xamarin.Localization.MSBuild; +using Xamarin.Utils; namespace Xamarin.MacDev.Tasks { @@ -35,7 +34,6 @@ namespace Xamarin.MacDev.Tasks return File.Exists (path) ? path : ToolExe; } - // Note: Xamarin.Mac and Xamarin.iOS should both override this method to do pass platform-specific verify rules protected override string GenerateCommandLineCommands () { var args = new CommandLineArgumentBuilder (); @@ -43,6 +41,20 @@ namespace Xamarin.MacDev.Tasks args.Add ("--verify"); args.Add ("-vvvv"); + switch (Platform) { + case ApplePlatform.iOS: + case ApplePlatform.TVOS: + case ApplePlatform.WatchOS: + case ApplePlatform.MacCatalyst: + args.AddQuoted ("-R=anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.1] exists and (certificate leaf[field.1.2.840.113635.100.6.1.2] exists or certificate leaf[field.1.2.840.113635.100.6.1.4] exists)"); + break; + case ApplePlatform.MacOSX: + args.Add ("--deep"); + break; + default: + throw new InvalidOperationException (string.Format (MSBStrings.InvalidPlatform, Platform)); + } + args.AddQuoted (Resource); return args.ToString (); diff --git a/msbuild/Xamarin.iOS.Tasks/Tasks/CodesignVerify.cs b/msbuild/Xamarin.MacDev.Tasks/Tasks/CodesignVerify.cs similarity index 93% rename from msbuild/Xamarin.iOS.Tasks/Tasks/CodesignVerify.cs rename to msbuild/Xamarin.MacDev.Tasks/Tasks/CodesignVerify.cs index 694ed57063..d2160b289a 100644 --- a/msbuild/Xamarin.iOS.Tasks/Tasks/CodesignVerify.cs +++ b/msbuild/Xamarin.MacDev.Tasks/Tasks/CodesignVerify.cs @@ -1,6 +1,6 @@ using Xamarin.Messaging.Build.Client; -namespace Xamarin.iOS.Tasks +namespace Xamarin.MacDev.Tasks { public class CodesignVerify : CodesignVerifyTaskBase { diff --git a/msbuild/Xamarin.Shared/Xamarin.Shared.targets b/msbuild/Xamarin.Shared/Xamarin.Shared.targets index b5333e9e44..3bcf812bd8 100644 --- a/msbuild/Xamarin.Shared/Xamarin.Shared.targets +++ b/msbuild/Xamarin.Shared/Xamarin.Shared.targets @@ -34,7 +34,6 @@ Copyright (C) 2018 Microsoft. All rights reserved. - @@ -62,7 +61,6 @@ Copyright (C) 2018 Microsoft. All rights reserved. - @@ -81,6 +79,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. + @@ -1736,6 +1735,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. ToolPath="$(CodesignPath)" CodesignAllocate="$(_CodesignAllocate)" Resource="$(_AppBundlePath)PlugIns\%(_ResolvedAppExtensionReferences.Filename)%(_ResolvedAppExtensionReferences.Extension)" + TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)" > @@ -1746,6 +1746,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. ToolPath="$(CodesignPath)" CodesignAllocate="$(_CodesignAllocate)" Resource="$(AppBundleDir)" + TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)" > diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs deleted file mode 100644 index 05c17d4cdb..0000000000 --- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/CodesignVerifyTaskBase.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Xamarin.MacDev; - -namespace Xamarin.iOS.Tasks -{ - public abstract class CodesignVerifyTaskBase : Xamarin.MacDev.Tasks.CodesignVerifyTaskBase - { - protected override string GenerateCommandLineCommands () - { - var args = new CommandLineArgumentBuilder (); - - args.Add ("--verify"); - args.Add ("-vvvv"); - args.AddQuoted ("-R=anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.1] exists and (certificate leaf[field.1.2.840.113635.100.6.1.2] exists or certificate leaf[field.1.2.840.113635.100.6.1.4] exists)"); - - args.AddQuoted (Resource); - - return args.ToString (); - } - } -}