I've been digging into this, as it's affecting Unreal Engine builds as well, and I've tracked it down to an rsync call being made to copy symbol files into the Root folder of what will become the .ipa later.
2025-04-03 21:42:52 +0000 [MT] Running /usr/bin/rsync '-8aPhhE' '/var/folders/49/_n6lvt951xxdxhf016j1pslr0000gs/T/XcodeDistPipeline.~~~si0ws0/Symbols' '--link-dest' '/var/folders/49/_n6lvt951xxdxhf016j1pslr0000gs/T/XcodeDistPipeline.~~~si0ws0' '/var/folders/49/_n6lvt951xxdxhf016j1pslr0000gs/T/XcodeDistPipeline.~~~si0ws0/Root'
2025-04-03 21:42:52 +0000 ._Symbols/
Symbols/
Symbols/1A2A0969-1932-3CE7-8ACF-232496AA2577.symbols
Symbols/._1A2A0969-1932-3CE7-8ACF-232496AA2577.symbols
Running this command manually, if I remove the '-E' portion of the arguments, the '._Symbols' folder is no longer created.
This doesn't make much sense to me, as -E is related to perserving executability.
-E, --executability
Preserve the executability of regular files (i.e., a file is "executable" if at least one 'x' mode bit is enabled in its permissions). If the source
file is executable, then for each 'r' mode bit enabled in the destination file's permissions, the corresponding 'x' mode bit will be enabled. If the
source file is not executable then all ugo 'x' mode bits of the destination file will be disabled. This option has no effect if --perms is also
specified.
My suspicion is that MacOS 15.4 shipped either shipped with a new version of rsync that is misbehaving, or something the the OS changes such that rsync is providnig a different result.