A StackOverflow answer by @jaga provides the solution, but not the reason, as to why UIImageViews are missing in the Launch Screen on device (but not in the simulator).
Background
Recently I attempted to use a custom font in my "Launch Screen.storyboard" file.
The reason I could not became clear after reading this StackOverflow answer by @TimCamber, which prompted me to do a little more research and testing.
The reason that a custom font is not included in my Launch Screen Storyboard file is the same reason an image within an asset catalogue is not included...
The app prepares portrait & landscape snapshots of the app's Launch Screen from your Launch Screen Storyboard file and (currently) saves it in your app bundle:
- here /Library/Caches/Snapshots/<<app_bundle>>/;
- and here /Library/Caches/Snapshots/<<app_bundle>>/downscaled/.
This process to prepare the launch screen is complete before any supporting files are loaded, including any custom fonts and the asset catalogue.
Solution
As mentioned above by following @jaga's solution, literally all that is required is to:
- (old school) add an image file (.PNG) to your app's bundle; and
- reference that image in your UIImageView object in the Launch Screen Storyboard file.
Example 1: Screenshot of Project Navigator in Xcode - image file added under the Supporting Files subdirectory in an Images subdirectory.
Example 2: Screenshot of Attributes Inspector in Xcode - Image View section detailing reference to the image file used for a UIImageView.