I think there was some kind of change in the way the IPA packages were built in 4.22. My IPA are all around that size, but after submitting to the app store, testflight delivers reasonable app sizes (70 - 90Mb) for my app. I haven’t looked into it properly, but rest assured the size appears to be okay, just a different delivery package of some kind.
For the crash on phone, clear your projects build / binary / intermediate and saved folders. Any old build data from 4.21 may interfere with what you end up packaging. Backup your project first (of course) and mind out for the folders containing your icon/splash image resources unless you want to add them into the project again.
The following works for me in some situations like that.
delete Saved, Intermediate, Build and Binaries folders
NOTE: One (or more) of these folders contains the configured splash screens and icons for the project. After deleting you will need to add them again manually (errg). Check which folders when you attempt this. I have taken to leaving these image resources/folders in place and deleting the other files.
I have noticed that if you build with bShipForBitCode to true (which is advised) the packaged IPA is a lot bigger. I think this is due to the symbols and other content being added that Apple can then use to optimise your IPA size before shipping. That’s why your uploaded IPA size might be bigger but the one distributed through TestFlight is smaller. If you turn off ShipForBitcode you might get the size that is more similar to what TestFlight distributes. Other than that, it may just be that you haven’t ticked the box to compress the content.
I’m not sure in the case of UE4 but a few apps I’ve worked on resulted in loads of swift support libraries being included which massively inflated the app size. These do get removed depending on which iOS version the user is running when they download the app from the app store.