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)
- .ipa -> Payload/MyApp.app/…
- Modern Build structure:
- .xcarchive -> Products/Applications/MyApp.app/… →
- (no Payload directory)
- .xcarchive -> Products/Applications/MyApp.app/… →
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:
- Is there a timeline for when this copying behavior will be updated to support the Modern Build pipeline?
- 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.