We are working on shipping a game that only supports arm64 iOS devices.
After packaging our shipping build and uploading it we got a failure message saying that an ipa with only an arm64 binary must have “arm64” in the UIRequiredDeviceCapabilities section of the plist.
in Engine\Source\Programs\UnrealBuildTool\IOS\UEDeployIOS.cs I added this block of code:
bool bArmV7Supported = true;
bool bArm64Supported = true;
bool bArmV7SSupported = true;
Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bShipForArmV7", out bArmV7Supported);
Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bShipForArm64", out bArm64Supported);
Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bShipForArmV7S", out bArmV7SSupported);
// If only arm64 then arm64 must be in required capabilities
if (!bArmV7Supported && bArm64Supported && !bArmV7SSupported)
RequiredCaps = "\t\t<string>arm64</string>\n";