There are Cordova platforms installed that are not saved in config.xml or package.json. It is good practice to
manage Cordova platforms and their versions. See
https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/ for more information. To fix, the
following step(s) need to be taken:
1) Run: ionic cordova platform save

? Fix automatically? Yes

ionic cordova platform save
cordova platform save
This command has been deprecated and will be removed in the next major release of cordova.

@cityfresno Thank you for the run tests. It seems you have a lot of native packages, native packages are not bad, but shouldn’t be too much in Ionic Apps. Because they tend to conflict each other. I’m still trying to figure out what cause your splash screen to crash, I assume it’s because you just upgraded Ionic version? (did you?)

e too much in Ionic Apps (same for Angular Apps). Because they tend to conflict each other. I’m still trying to figure out what cause your splash screen to crash, I assume it’s because you just upgraded Ionic version?

this was happening before i upgraded. And the weird part, only happens the first time it loads, after i force close, and open it, it loads fine. I’ve launched many other apps, and never this issue.

Thanks, finally the reports on iOS, it will give you more things to compile, to find out the bug.
You can also try to upgrade to the latest version of Ionic, but I doubt it will solve all issues. Still, it’s worth a test with a dev server for the city. (for another client i always have 2 servers running, dev and production).

@cityfresno And if you upgraded from a previous app, it’s sometimes better to delete platforms/ios from your project and rebuild it from scratch, because I had to do it in my own business app, while moving from Ionic 2 to Ionic 3. And it changed most of the routines of app.

@mikrochipkid they are in prod mode for long, they are the company bus of a quite large city, just read above please…

For the rest and thus solution for the city of Fresno (because it’s hard remotely to debug), a good TS/JS freelancer seems a good counselor for the city, rather than plenty of people that have no idea of what they talk about.

@FrancoisIonic It doesn’t matter if they were in production for a long time… by doing what I stated above. It reduces the amount of debug functions in production mode applications thus making your app response more quickly and it greatly reduces the size of you application. I’m not sure your aware of this but it is clearly stated in the Docs:

OS Quirks
Since iOS 10 it’s mandatory to provide an usage description in the info.plist if trying to access privacy-sensitive data. When the system prompts the user to allow access, this usage description string will displayed as part of the permission dialog box, but if you didn’t provide the usage description, the app will crash before showing the dialog. Also, Apple will reject apps that access private data but don’t provide an usage description.

This plugins requires the following usage description:

NSLocationWhenInUseUsageDescription describes the reason that the app accesses the user’s location.
To add this entry into the info.plist, you can use the edit-config tag in the config.xml like this:

I’m having a very similar problem on an Android app that has been deployed to production for around 6 months now. Any idea if this problem happens for more than just iOS? Great post and thanks for attempting to keep it on topic.