* 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 Microsoft.Build.Framework;
|
||||||
|
|
||||||
using Xamarin.Localization.MSBuild;
|
using Xamarin.Localization.MSBuild;
|
||||||
|
using Xamarin.Messaging.Build.Client;
|
||||||
using Xamarin.Utils;
|
using Xamarin.Utils;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
namespace Xamarin.MacDev.Tasks {
|
namespace Xamarin.MacDev.Tasks {
|
||||||
public abstract class CodesignVerifyTaskBase : XamarinToolTask {
|
public class CodesignVerify : XamarinToolTask {
|
||||||
#region Inputs
|
#region Inputs
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public string CodesignAllocate { get; set; }
|
public string CodesignAllocate { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public string Resource { get; set; }
|
public string Resource { get; set; } = string.Empty;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -43,9 +46,9 @@ namespace Xamarin.MacDev.Tasks {
|
||||||
case ApplePlatform.iOS:
|
case ApplePlatform.iOS:
|
||||||
case ApplePlatform.TVOS:
|
case ApplePlatform.TVOS:
|
||||||
case ApplePlatform.WatchOS:
|
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)");
|
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;
|
break;
|
||||||
|
case ApplePlatform.MacCatalyst:
|
||||||
case ApplePlatform.MacOSX:
|
case ApplePlatform.MacOSX:
|
||||||
args.Add ("--deep");
|
args.Add ("--deep");
|
||||||
break;
|
break;
|
||||||
|
@ -66,11 +69,22 @@ namespace Xamarin.MacDev.Tasks {
|
||||||
|
|
||||||
public override bool Execute ()
|
public override bool Execute ()
|
||||||
{
|
{
|
||||||
|
if (ShouldExecuteRemotely ())
|
||||||
|
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
|
||||||
|
|
||||||
EnvironmentVariables = new string [] {
|
EnvironmentVariables = new string [] {
|
||||||
"CODESIGN_ALLOCATE=" + CodesignAllocate
|
"CODESIGN_ALLOCATE=" + CodesignAllocate
|
||||||
};
|
};
|
||||||
|
|
||||||
return base.Execute ();
|
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
|
<Target
|
||||||
Name="_CodesignVerify"
|
Name="_CodesignVerify"
|
||||||
Condition="'$(_CodesignAppBundleCondition)' == 'true' And '$(_RequireCodeSigning)' == 'true'"
|
Condition="'$(_CodesignAppBundleCondition)' == 'true' And '$(_RequireCodeSigning)' == 'true' And '$(DisableCodesignVerification)' != 'true'"
|
||||||
DependsOnTargets="_CodesignAppBundle"
|
DependsOnTargets="_CodesignAppBundle"
|
||||||
>
|
>
|
||||||
<CodesignVerify
|
<CodesignVerify
|
||||||
|
|
Загрузка…
Ссылка в новой задаче