Got a response from Apple, basically indicating that my emails or the details of the issue hadn't even been read. Turns out the IPA file they wanted was the one you upload to the App Store if you use the old Application Loader, as you had to prior to Xcode having an "Upload to App Store" button.
I responsded to this with a big long paint-by-numbers email, included a new IPA file, and describing the issue all over again.
I have done a bit more forensics on it as far as I can - but still no further ahead. Basically this ODR Fail issue is crippling our operation. I'm going to have to try ripping all of the ODR stuff out and hosting the content in Firebase.
I used the Charles proxy to examine the behaviour of the app on download from TestFlight and then on launch. I see in the Charles console the IPA package being downloaded. On launch there's various calls for things like Game Center and our Google stuff. As far as I can tell there is no check on the App Store or via the internet at all when the app tries to open the ODR content. In fact the API call to `beginAccessingResources()` does not call out to Apple's servers as far as I can tell - it simply returns straight away with the 4994 _The requested application data doesn't exist_ error.
I interpret this to mean that something is wrong with the IPA package that is downloaded to the device from the App Store (or from Test Flight as the issue manifests there as well). In particular I think something is going wrong with the App Thinning IPA package generation on Apple's servers. I believe there is some sort of race condition or whatever in Apple's server side App Thinning package build and that for whatever reason the result is that the information about the asset tags is corrupted or incomplete.
No-one else seems to have solved this issue either.
https://forums.developer.apple.com/message/125315#125315
https://forums.developer.apple.com/message/139828#139828
One further bit of theorizing: I noticed that for a given device if the ODR Fail issue occurred on the device it would continue to occur through subsequent app deletions and re-installs off Test Flight or the App Store **for that build version**. Just bumping the build version could make it start working again. We have a few dozen devices across our testers and beta-test community and what we'd see is that say 1.4 (8) would work on device A but fail on device B, then we would make a new build with 1.4 (9) and that would ODR fail on device A and work on device B. There was no discernable pattern across devices, OS or whatever. It was not due to lack of space on a device, being signed in or out of the App Store. Nohting.
If I'm right that the IPA package is being corrupted on the server, then what is happening IMHO is that the Test Flight App or the App Store App has a local HTTP cache (the application's NSURLCache) which stores the download IPA that was retrieved (having been generated on-the-fly by Apple's servers. So on a subsequent reinstall it just gets the corrupted IPA from the web cache again. That would explain this **sticky ODR Fail** behaviour.