Search code examples
ios.netmaui

Black/Blank Splash Screen (Loading Screen) on Apple Device


I have a .NET 7 MAUI application that is being used solely for iOS/iPadOS. The splash screen is completely black with nothing visible. The SVG file is an image with no black - only blue and white. This happens in deployment to local devices and simulators, as well as when deploying a Release build IPA to the device.

I have:

  • A loading_screen.svg file in /Resources/Splash with a Build Action of MauiSplashScreen.
  • The file size is 214 KB. The resolution is 1920 x 1080.
  • Set the MauiSplashScreen tag:
<ItemGroup>
  <MauiSplashScreen Include="Resources\Splash\loading_screen.svg" />
</ItemGroup>
  • Set the UILaunchStoryboardName in Info.plist for the iOS platform:
<key>UILaunchStoryboardName</key>
<string>MauiSplash</string>
  • Set the UILaunchImageFile in Info.plist for the iOS platform (I have also tried changing the extension in the string below to .png):
<key>UILaunchImageFile</key>
<string>Resources\Splash\loading_screen.svg</string>

Solution

  • Firstly, on iOS, when changing the simulator to the version: iOS 16.0, the SplashScreen can be displayed normally.

    Also, when adding a new key/value-Pair: UILaunchImageFile in Info.plist, it only works with PNG format files like below:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        ...
        <key>UILaunchImageFile</key>
        <string>Resources\Splash\your_splash.png</string>
    </dict>
    </plist>
    

    Last but not least, you can refer to the two threads listed below, they provide an excellent solutions for the customization of SplashScreen on both iOS and Android.

    Splashscreen icon not showing

    Changes in Info.plist not recognized anymore