Cordova app hanging during startup on iOS 10

DaveAlden picture DaveAlden · Jul 16, 2016 · Viewed 16.9k times · Source

I just installed Xcode 8 beta in order to test my existing Cordova app in iOS 10 beta (via Simulator). When the app is launched, it just hangs on the loading page - seems the deviceready event is not being fired.

So I also installed iOS 10 beta on my iPad Air (just in case it's a Simulator issue), but I get the same results.

The app works fine on iOS 9.3 (both device and Simulator).

Anyone encountered/fixed this problem?

UPDATE

Other symptoms of this problem include:

  • the app will start correctly if you background the app (switch back to the home screen) then foreground the app (switch back to the app)
  • some plugins will not work correctly until you do the above switching

Answer

DaveAlden picture DaveAlden · Jul 16, 2016

OK, I found the problem and the solution thanks to this post:

It seems that iOS 10 requires additional entries in the Content-Security-Policy meta tag, namely gap: and file:. After adding these, my Content-Security-Policy looks like this:

<meta http-equiv="Content-Security-Policy" content="default-src * gap: file:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">

And the app starts up and works fine on iOS 10.

Hope this helps others.