Problem compiling with XCode7 and iOS9: White Screen of Death. Please help us

the first launch of the keyboard plugin on my app also takes forever.
Update: all my installed plugins take more time than usual to load. I tried re-installing all of them but they are still slow to load. Anybody has the same problem?

I found this too but only if starting with ionic run ios. If I rebooted the phone and started it manually it was fine. Iā€™m sure I noticed this intermittently with older Xcode and iOS but couldnā€™t say for sure.

It sure is annoying though!

After all the issues caused because UIWebView, I decided to install WKWebView, just like this:

cordova plugin add https://github.com/Telerik-Verified-Plugins/WKWebView.git#master

So far it is fixing all the slow plugin load issues.

Bitcode problems? http://stackoverflow.com/questions/30848208/new-warnings-in-ios9

SSL problems? $cordovaOauth.facebook IOS 9 GM issue

Navigation problems? http://blog.ionic.io/ios-9-potential-breaking-change/

1 Like

I feel like Iā€™ve tried everything at this point to remedy my white screen of death on the actual device when deploying. Itā€™s so weird that everything works via the emulator with ionic run -c -l and also via ionic serve --lab with no issues. I also donā€™t see any errors in Safari when testing from the actual device. Any new solutions?

I did get the following in Safari console when starting, stopping and then restarting the app from the phone.
exeption nativeEvalAndFetch : ReferenceError: Can't find variable: cordova

iPhone 6 Plus (9.0.2)

Cordova CLI: 5.3.3
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.0
Ionic Version: 1.1.0
Ionic CLI Version: 1.6.5
Ionic App Lib Version: 0.3.9
ios-deploy version: 1.7.0
ios-sim version: 4.1.1
OS: Mac OS X Yosemite
Node Version: v0.12.0
Xcode version: Xcode 7.0.1 Build version 7A1001

I am having the same problem. My app is running fine with ionic run ios -l --device and ionic run ios --device but if I try running it with Xcode to deploy it, I get the same White Screen of Death. Here is my log on xcode:

2015-10-12 09:55:23.787 Tree The World[337:27627] Apache Cordova native platform version 3.9.1 is starting. 2015-10-12 09:55:23.789 Tree The World[337:27627] Multi-tasking -> Device: YES, App: YES 2015-10-12 09:55:23.798 Tree The World[337:27627] Unlimited access to network resources 2015-10-12 09:55:23.994 Tree The World[337:27627] [CDVTimer][keyboard] 0.474036ms 2015-10-12 09:55:23.994 Tree The World[337:27627] [CDVTimer][TotalPluginStartup] 0.850022ms 2015-10-12 09:55:24.503 Tree The World[337:27627] Resetting plugins due to page load. 2015-10-12 09:55:24.608 Tree The World[337:27627] Failed to load webpage with error: Could not connect to the server.

Here is my system info:

Cordova CLI: 5.2.0 Gulp version: CLI version 3.9.0 Gulp local: Local version 3.9.0 Ionic Version: 1.1.0 Ionic CLI Version: 1.6.4 Ionic App Lib Version: 0.3.8 ios-deploy version: 1.7.0 ios-sim version: 3.1.1 OS: Mac OS X Yosemite Node Version: v0.12.2 Xcode version: Xcode 7.0.1 Build version 7A1001

Yeah, I figured out what was going on.

My WSOD issues were actually coming from a path issue that was inside of an Angular constant that was related to angular-tz-extensions. But, I was also getting the issue when using Ionic.Deploy right after the $ionicPlatform.ready. It seems that the deploy.check needs a bit more time. I ended up moving it to a LandingController that controls a landing page in the app and that seemed to work out. I also just uncommented <script src="cordova.js"></script> from the index.html. If youā€™re still getting issues, be sure to check that index.html doesnā€™t have &apos; in the meta Content-Security-Policy. This is a known bug with the CLI (itā€™s trying to be too smart).

Not very safe, but customize as needed.

<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-eval'; object-src 'self'; style-src * 'unsafe-inline'; img-src *; media-src *">

Hereā€™s a gulp task thatā€™ll add an updated plist to your project. You should also probably customize this too because the following isnā€™t very secure (but it should at least get you around the WSOD).

// The new feature that allow our app to crash on startup. Nice.
gulp.task('fix-ios9-security-issue', function () {

  // Allow non-https requests in the app webview (in order to use ionic-deploy)
  gulp.src('./platforms/ios/MyApp-Info.plist')
    .pipe(replace('  </dict>\n</plist>', '  <key>NSAppTransportSecurity</key>\n    <dict>\n      <key>NSAllowsArbitraryLoads</key><true/>\n    </dict>\n  </dict>\n</plist>'))
    .pipe(gulp.dest('./platforms/ios/MyApp/'));
});

Good luck!

Thanks for the help from @mhartington

I removed and re-added the ios platform and now itā€™s working fine with xcode. If you experience this kind of weird problem, the best is to re-install the platform completely.

Good luck to everybody.

H