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/
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 '
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