Ionic Angular Cordova App stuck in iOS Flashscreen

My app serves fine, works perfectly fine in the Play Store, builds fine (ionic cordova build ios --prod --release), is compiled and deployed successfully by Appflow, but in TestFlight the app gets stuck in the Splashscreen. When I changed the @ionic-native/splash-screen/ngx for @awesome-cordova-plugins/splash-screen/ngx, the splash-scren seemed to load eternally. That’s all I could get.

Ionic Info:
Ionic:

Ionic CLI : 6.20.8 (/usr/local/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/angular 6.3.4
@angular-devkit/build-angular : 14.2.10
@angular-devkit/schematics : 14.2.8
@angular/cli : 14.2.8
@ionic/angular-toolkit : 6.1.0

Cordova:

Cordova CLI : 11.0.0
Cordova Platforms : ios 6.2.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, cordova-plugin-ionic 5.5.3, (and 5 other plugins, among them cordova-plugin-splashscreen)

Utility:

cordova-res : 0.15.4
native-run : 1.7.1

System:

ios-deploy : 1.12.1
ios-sim : 8.0.2
NodeJS : v18.12.0 (/usr/local/bin/node)
npm : 8.19.2
OS : macOS
Xcode : Xcode 14.1 Build version 14B47b

Can you help, please?

Since Appflow and TestFlight are just deployment mechanisms, it’s unlikely to be them.

When I changed the @ionic-native/splash-screen/ngx for @awesome-cordova-plugins/splash-screen/ngx, the splash-scren seemed to load eternally.

It sounds like this plugin change is the culprit. Since the splash screen is loading continuously, that typically means the app is crashing immediately. Review your app load code, especially Splash Screen usage. Is there anything else you are doing on app load that is suspect?

Try debugging the app locally on a device too using our debugging guide to identify the culprit.

As far as I know, since cordova-ios 6 integrated the splash screen into the platform, none of @ionic-native/splash-screen nor @awesome-cordova-plugins/splash-screen work anymore (since there is no plugin anymore).
You should uninstall those two packages and also cordova-plugin-splashscreen and hide the splash with the javascript API (navigator.splashscreen.hide();) instead of using the typescript helpers (awesome-cordova-plugins/ionic-native).

1 Like