Unreal Engine 5 iOS Modern Build Resource Copy Issue

We have been attempting to adopt the Modern Build system introduced in Unreal Engine 5.3. However, we are encountering an issue where our custom XML/JSON/TXT resource files are not being copied correctly into the final packaged output.

We currently use a UPL script like the following:

<?xml version="1.0" encoding="utf-8"?>
<!--GearVR plugin additions-->
<root xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- init section is always evaluated once per architecture -->
    <init>
        <log text="resource init"/>
        <copyDir src="$S(PluginDir)/resource/" dst="$S(BuildDir)/" />
        <log text="IPL resource -> $S(BuildDir) copy done"/>
    </init>
</root>

With the legacy build pipeline, these resources are correctly included inside the final .ipa file.

However, when using the Modern Build, the output is an .xcarchive, and the behavior changes:

  • Legacy structure:
    • .ipa -> Payload/MyApp.app/…
      • (resources successfully included)
  • Modern Build structure:
    • .xcarchive -> Products/Applications/MyApp.app/… →
      • (no Payload directory)

The UPL command still copies resources to the legacy BuildDir path, which no longer maps to the correct application bundle location inside the xcarchive. As a result, none of these text-based resource files are included in the final packaged app.This issue has persisted since UE 5.3, and we would like to ask:

  1. Is there a timeline for when this copying behavior will be updated to support the Modern Build pipeline?
  2. Is there an alternative recommended method to include XML/JSON/TXT resources in the final packaged app when using Modern Build?

Thank you for your support.

재현 방법

Add a script to copy arbitrary resource files after creating the UPL xml file.

Hi Unreal_PC_platform_client,

Thank you for bringing this issue to our attention. A fix is available at CL 49078003. Note that if backporting to 5.7 or earlier, AppleExports.CreatingAppOnWindows translates to !AppleExports.UseModernXcode.

Best regards.