* For Mac Catalyst apps we must verify the code signature like we do it for macOS apps. Fixes #17829. * Enable nullability and fix code accordingly. * Merge the CodesignVerify and CodesignVerifyTaskBase classes to simplify the code. Submission test is added as well: * https://github.com/xamarin/maccore/pull/2656 * https://github.com/xamarin/SubmissionSamples/pull/51 Fixes https://github.com/xamarin/xamarin-macios/issues/17829.
This commit is contained in:
Родитель
6300a6aff7
Коммит
bfd87e4bb2
|
@ -1,21 +0,0 @@
|
|||
using Xamarin.Messaging.Build.Client;
|
||||
|
||||
namespace Xamarin.MacDev.Tasks {
|
||||
public class CodesignVerify : CodesignVerifyTaskBase {
|
||||
public override bool Execute ()
|
||||
{
|
||||
if (ShouldExecuteRemotely ())
|
||||
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
|
||||
|
||||
return base.Execute ();
|
||||
}
|
||||
|
||||
public override void Cancel ()
|
||||
{
|
||||
if (ShouldExecuteRemotely ())
|
||||
BuildConnection.CancelAsync (BuildEngine4).Wait ();
|
||||
|
||||
base.Cancel ();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,17 +4,20 @@ using System.IO;
|
|||
using Microsoft.Build.Framework;
|
||||
|
||||
using Xamarin.Localization.MSBuild;
|
||||
using Xamarin.Messaging.Build.Client;
|
||||
using Xamarin.Utils;
|
||||
|
||||
#nullable enable
|
||||
|
||||
namespace Xamarin.MacDev.Tasks {
|
||||
public abstract class CodesignVerifyTaskBase : XamarinToolTask {
|
||||
public class CodesignVerify : XamarinToolTask {
|
||||
#region Inputs
|
||||
|
||||
[Required]
|
||||
public string CodesignAllocate { get; set; }
|
||||
public string CodesignAllocate { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Resource { get; set; }
|
||||
public string Resource { get; set; } = string.Empty;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -43,9 +46,9 @@ namespace Xamarin.MacDev.Tasks {
|
|||
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.MacCatalyst:
|
||||
case ApplePlatform.MacOSX:
|
||||
args.Add ("--deep");
|
||||
break;
|
||||
|
@ -66,11 +69,22 @@ namespace Xamarin.MacDev.Tasks {
|
|||
|
||||
public override bool Execute ()
|
||||
{
|
||||
if (ShouldExecuteRemotely ())
|
||||
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
|
||||
|
||||
EnvironmentVariables = new string [] {
|
||||
"CODESIGN_ALLOCATE=" + CodesignAllocate
|
||||
};
|
||||
|
||||
return base.Execute ();
|
||||
}
|
||||
|
||||
public override void Cancel ()
|
||||
{
|
||||
if (ShouldExecuteRemotely ())
|
||||
BuildConnection.CancelAsync (BuildEngine4).Wait ();
|
||||
|
||||
base.Cancel ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1959,7 +1959,7 @@ Copyright (C) 2018 Microsoft. All rights reserved.
|
|||
-->
|
||||
<Target
|
||||
Name="_CodesignVerify"
|
||||
Condition="'$(_CodesignAppBundleCondition)' == 'true' And '$(_RequireCodeSigning)' == 'true'"
|
||||
Condition="'$(_CodesignAppBundleCondition)' == 'true' And '$(_RequireCodeSigning)' == 'true' And '$(DisableCodesignVerification)' != 'true'"
|
||||
DependsOnTargets="_CodesignAppBundle"
|
||||
>
|
||||
<CodesignVerify
|
||||
|
|
Загрузка…
Ссылка в новой задаче