We are happy to announce that Cordova iOS 4.0.0 has been released.
This is a major release, and deprecated APIs have been removed. Some 3rd party plugins might require updates before they are compatible. This release adds first-class support for pluggable webviews - namely we now support WKWebView -- a bundled modern WebView for iOS!
The platform now supports Asset Catalogs for splashscreens and icons -- this is all transparent to you when using the <splash> and <icon> tags in config.xml.
ios-sim is bundled with the platform now, you will not need to install this separately anymore. However for ios-deploy you will need to update your version to the latest.
The minimum deployment target has been updated to iOS 8.0. This means that this platform release has only been tested on iOS 8 devices and greater only and will only support those iOS versions.
cordova-ios@4.0.0 will be the default iOS version in the next version of cordova. If you just can't wait though, you can try it out now:
cd my_project cordova platform update ios@4.0.0 # To install the WKWebView engine (optional): cordova plugin add cordova-plugin-wkwebview-engine
We are in the process of releasing the cordova-plugin-wkwebview-engine plugin to npm. If you decide to update to cordova-ios@4.0.0 before we release this plugin, please install the plugin via git for now.
cordova plugin add https://github.com/apache/cordova-plugin-wkwebview-engine.git#1.0.0
Note that the cordova-plugin-wkwebview-engine plugin has some limitations versus the default UIWebView, please consult the README for more details.
In addition to the <access> tag, there is support for the new <allow-intent> and <allow-navigation> tags, documented here. Note that you do not need cordova-plugin-whitelist installed for cordova-ios-4.0.0.
cordova will convert <access> and <allow-navigation> tags to the appropriate Application Transport Security (ATS) directives which are new in iOS 9. <access> and <allow-navigation> tags also support two new attributes: minimum-tls-version and requires-forward-secrecy.
To upgrade:
npm install -g cordova cd my_project cordova platform update ios@4.0.0
To add it explicitly:
cordova platform add ios@4.0.0
cordova prepare (Platform API)<access> tags to ATS directives CB-10057 - removing <access> tag does not remove ATS entrySWIFT\_OBJC\_BRIDGING_HEADER value in build.xcconfig, remove from pbxprojCDVSystemSchemes plugin name to something more appropriate<allow-navigation> and <allow-intent>CDVWhiteList can‘t parse URIs that don’t have double slashes after the schemecordova.jsexec.js.gitattributes to prevent CRLF line endings in repos[CDVStartPageTest testParametersInStartPage] unit-test failure.gitattributescordova platform add https://github.com/apache/cordova-ios.git#tagOrBranchios-deploy on real deviceios-sim to 5.0.3[CDVStartPageTest testParametersInStartPage] unit-test failure (improved fix)allow_non_modular_includes to yesENABLE_BITCODE to NO in build.xcconfigrsync error handling in ios copy-www-build-step.jsios-sim from travis.ymlios-sim as a node module, not a CLI utilityallowedSchemes used by CDVUIWebViewDelegate::shouldLoadRequest (closes #163)cordova-ios 4.x (related to CB-8789 pull request that didn't test for projects with spaces in the name)AppDelegate.m template changeCordova/NSData+Base64.h missing from cordova-ios 4.xCDVAvailability.h into masterXcode can't find CDVViewController.h when archiving in Xcode 7.1 betaupdate_cordova_subproject command for cordova-ios 4.0.0-dev results in a build errorWebView engine if the url to load passes the engine's canLoadRequest filtercordova-ios under Xcode 7CDVWhitelist::matches crashes when there is no hostname in a URLabsoluteString method of NSURLNSInteger, NSUInteger factory methods to CDVPluginResultcordova run for iOS does not see non-running emulatorsCDVSystemSchemes)cordova run --list does not show that you have an outdated ios-simarmv7s from default iOS Cordova build to align with Xcode 6cordova run ios --emulator --target “iPhone-5, 7.1” (target with runtime) does not workcordova run ios --target doesn't workios-sim version to 4.0.0ios-deploy version to 1.7.0xcodebuild version to 6.0.0CDVStartPageTests::testParametersInStartPage into an async testwkwebview / local webserver plugin orientation issuecommandQueue push into non-WK_WEBVIEW_BINDING branch. (closes #136)NSData+Base64 files, updated unit tests.cordova-ios jasmine tests do not clean up build products, tests can only be run onceNSData+Base64CDVLocalStorage fix in CDVViewController.m (plus style fix-ups)Objective-C unit tests for JSON serialization. Cleaned up unit test workspace as well.CordovaLib/Classesmerges folder reference in default template(s).pbxproj to .xcconfigcordova/build*.xcconfig support in the default template (IDE use)config.xmlCDVPlugin support for getting items from plugin resource bundlesCDVAvailability.h for coho release toolIsAtLeastIosVersion code (plus style fix-ups)CDVAvailability.hhandleOpenURL functionality to be removed to a pluginCDVAppDelegateAppDelegateAppDelegate code from template (includes uncrustify style fix-ups)CDVPlugin initializer privateCDV_IsIPad and CDV_IsIPhone5 macros in CDVAvailabiltyDeprecated.hCDVPlugin and CDVPluginResult methodsCDVViewController and CDVPlugin (from CDVWebViewEngineProtocol reference). Added scrollView category to UIView for backwards compatibility reasons.typedef for block definition.CDVCommandDelegate (urlTransformer), plus style fixups.WKWebView (typo fix)mediaPlaybackAllowsAirPlay in UIWebView and WKWebViewconfig.xml preferences for WKWebViewUIWebView results in an exceptionconfig.xml preferences for WKWebViewmobile-spec in an iOS 8 project but using UIWebView results in an exception