[msbuild] Share the CodesignVerify task implementation between iOS and macOS. (#12918)

This commit is contained in:
Rolf Bjarne Kvinge 2021-10-06 15:51:42 +02:00 коммит произвёл GitHub
Родитель c0032bee1a
Коммит 2bc66b0cbe
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
5 изменённых файлов: 20 добавлений и 48 удалений

Просмотреть файл

@ -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 ();
}
}
}

Просмотреть файл

@ -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 ();

Просмотреть файл

@ -1,6 +1,6 @@
using Xamarin.Messaging.Build.Client;
namespace Xamarin.iOS.Tasks
namespace Xamarin.MacDev.Tasks
{
public class CodesignVerify : CodesignVerifyTaskBase
{

Просмотреть файл

@ -34,7 +34,6 @@ Copyright (C) 2018 Microsoft. All rights reserved.
<UsingTask TaskName="Microsoft.Build.Tasks.WriteLinesToFile" AssemblyFile="$(_TaskAssemblyName)" />
<!-- Xamarin.iOS-specific tasks. Some of these are duplicated with the Xamarin.Mac ones below, and should eventually be re-namespaced to be in Xamarin.MacDev -->
<UsingTask Condition="'$(_PlatformName)' != 'macOS'" TaskName="Xamarin.iOS.Tasks.CodesignVerify" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask Condition="'$(_PlatformName)' != 'macOS'" TaskName="Xamarin.iOS.Tasks.CollectAssetPacks" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask Condition="'$(_PlatformName)' != 'macOS'" TaskName="Xamarin.iOS.Tasks.CollectITunesArtwork" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask Condition="'$(_PlatformName)' != 'macOS'" TaskName="Xamarin.iOS.Tasks.CollectITunesSourceFiles" AssemblyFile="$(_TaskAssemblyName)" />
@ -62,7 +61,6 @@ Copyright (C) 2018 Microsoft. All rights reserved.
<UsingTask Condition="'$(_PlatformName)' != 'macOS'" TaskName="Xamarin.iOS.Tasks.WriteAssetPackManifest" AssemblyFile="$(_TaskAssemblyName)" />
<!-- Xamarin.Mac-specific tasks. Some of these are duplicated with the Xamarin.iOS ones above, and should eventually be re-namespaced to be in Xamarin.MacDev -->
<UsingTask Condition="'$(_PlatformName)' == 'macOS'" TaskName="Xamarin.Mac.Tasks.CodesignVerify" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask Condition="'$(_PlatformName)' == 'macOS'" TaskName="Xamarin.Mac.Tasks.CompileAppManifest" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask Condition="'$(_PlatformName)' == 'macOS'" TaskName="Xamarin.Mac.Tasks.CompileEntitlements" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask Condition="'$(_PlatformName)' == 'macOS'" TaskName="Xamarin.Mac.Tasks.CompileSceneKitAssets" AssemblyFile="$(_TaskAssemblyName)" />
@ -81,6 +79,7 @@ Copyright (C) 2018 Microsoft. All rights reserved.
<UsingTask TaskName="Xamarin.MacDev.Tasks.AOTCompile" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask TaskName="Xamarin.MacDev.Tasks.BTouch" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask TaskName="Xamarin.MacDev.Tasks.Codesign" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask TaskName="Xamarin.MacDev.Tasks.CodesignVerify" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask TaskName="Xamarin.MacDev.Tasks.CollectBundleResources" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask TaskName="Xamarin.MacDev.Tasks.CollectFrameworks" AssemblyFile="$(_TaskAssemblyName)" />
<UsingTask TaskName="Xamarin.MacDev.Tasks.ComputeBundleResourceOutputPaths" AssemblyFile="$(_TaskAssemblyName)" />
@ -1736,6 +1735,7 @@ Copyright (C) 2018 Microsoft. All rights reserved.
ToolPath="$(CodesignPath)"
CodesignAllocate="$(_CodesignAllocate)"
Resource="$(_AppBundlePath)PlugIns\%(_ResolvedAppExtensionReferences.Filename)%(_ResolvedAppExtensionReferences.Extension)"
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
>
</CodesignVerify>
@ -1746,6 +1746,7 @@ Copyright (C) 2018 Microsoft. All rights reserved.
ToolPath="$(CodesignPath)"
CodesignAllocate="$(_CodesignAllocate)"
Resource="$(AppBundleDir)"
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
>
</CodesignVerify>
</Target>

Просмотреть файл

@ -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 ();
}
}
}