From 4.21 to 4.23, IPA tripled in size, won't run on iPhone7

Upgrading from UE4.21 to 4.23, everything runs fine on windows but when packaging for iOS, two things (that may or may not be related) are happening:

  • My IPA size goes from 112mb to 374mb.
  • It no longer runs on my iPhone7 (gets to the UE screen, then closes the app)

I triple checked that all the build settings are the same, and have googled like crazy but have found no info. What could be going on?

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.
Clear folders

  1. 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.

*\Binaries\IOS\Payload*
*\Build\IOS\Resources\Graphics*

Good luck.

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.

Rename the .ipa as a .zip, then do the same for an earlier build.

Compare the two, and you will probably find your culprit.

-Chilton

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.