We've had this issue since 6th of March 2020 (just about the time when apple has fixed TestFlight issue where we (the developers) could not get assets downloaded from TestFlight builds. After the "fix" by Apple, it looks like this has now been broken for App Store Review Engineers.
I've a submited a build done with the latest version of the XCode 11.5 and have not as of yet received neither positive or negative response (will post here either way) but have noticied something that in all our testing we've not seen before this latest XCode 11.5 TestFlght submission.
As per Apple documentation (see below), there are circumstances where an ODR system may not be able to deliver the data/asset for various reasons, and the best course of action is to simply retry the operation. For this unlikely scenario, we've added a new flow to our assets downloading mechanism to report the error to the user and offer a choice to retry the operation. The error reported is rather bizarre and it reads something like:
"....www.asset-pack-a2c34.....43f97" couldn't be moved to "15011.....5902" beause either the former doesn't exist, or the folder containing the later doesn't exist. (4)
So after receiving the above error, our app presents this in a form of an alert with "Close" and "Retry" buttons, and tapping "Retry" yields positive result and the actual assets are downloaded OK for the same assets that failed previously!? As we have 700+ ODR assets in our app, during testing of 1st 100 or so assets, this error was reported 3 times so far (Over WiFi)
From Apple Docs
On-Demand Resources
NSBundleResourceRequest
no longer throws exceptions when encountering certain kinds of internal errors. Instead, it returns an error in the error argument of the completion handler of the
beginAccessingResourcesWithCompletionHandler:
method. The error might include the
NSFileReadUnknownError
and
NSXPCConnectionInterrupted
errors in addition to
NSUserCancelledError
and network-related errors.
If your app encounters an error when using
NSBundleResourceRequest
, request the resource again or display a prompt to your user to try again.