The proper fix to the issue to fix UnrealBuildTool:
For some reason bForDistribution param to the function that writes the entitlements file is hardcoded to false.
Replacing it with “InTarget.Configuration == UnrealTargetConfiguration.Shipping” solves the issue.
This parameter is used to write “get-task-allow” value to true or false.
In Engine\Source\Programs\UnrealBuildTool\Platform\IOS\UEDeployIOS.cs on line 1098:
if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac && Environment.GetEnvironmentVariable("UBT_NO_POST_DEPLOY") != "true")
{
//REPLACE
// return PrepForUATPackageOrDeploy(InTarget.Configuration, InTarget.ProjectFile, GameName, ProjectDirectory, BuildPath + "/" + DecoratedGameName, "../../Engine", **false**, "", false, InTarget.bCreateStubIPA, InTarget.BuildReceiptFileName);
// WITH
return PrepForUATPackageOrDeploy(InTarget.Configuration, InTarget.ProjectFile, GameName, ProjectDirectory, BuildPath + "/" + DecoratedGameName, "../../Engine",
InTarget.Configuration == UnrealTargetConfiguration.Shipping, // not hardcoded
"", false, InTarget.bCreateStubIPA, InTarget.BuildReceiptFileName);
}
This bug should be raised to as a bug to UE4.