layout: post author:
name: Shazron Abdullah
url: https://twitter.com/shazron
title: "Cordova iOS 4.0.0" categories: announcements
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 pbxproj
CDVSystemSchemes
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.js
exec.js
.gitattributes
to prevent CRLF
line endings in repos[CDVStartPageTest testParametersInStartPage]
unit-test failure.gitattributes
cordova platform add https://github.com/apache/cordova-ios.git#tagOrBranch
ios-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.xcconfig
rsync
error handling in ios copy-www-build-step.js
ios-sim
from travis.yml
ios-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.x
CDVAvailability.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 7
CDVWhitelist::matches
crashes when there is no hostname in a URLabsoluteString
method of NSURL
NSInteger
, NSUInteger
factory methods to CDVPluginResult
cordova run
for iOS does not see non-running emulatorsCDVSystemSchemes
)cordova run --list
does not show that you have an outdated ios-sim
armv7s
from default iOS Cordova build to align with Xcode 6
cordova 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+Base64
CDVLocalStorage
fix in CDVViewController.m
(plus style fix-ups)Objective-C
unit tests for JSON
serialization. Cleaned up unit test workspace as well.CordovaLib/Classes
merges
folder reference in default template(s).pbxproj
to .xcconfig
cordova/build*.xcconfig
support in the default template (IDE use)config.xml
CDVPlugin
support for getting items from plugin resource bundlesCDVAvailability.h
for coho release toolIsAtLeastIosVersion
code (plus style fix-ups)CDVAvailability.h
handleOpenURL
functionality to be removed to a pluginCDVAppDelegate
AppDelegate
AppDelegate
code from template (includes uncrustify style fix-ups)CDVPlugin
initializer privateCDV_IsIPad
and CDV_IsIPhone5
macros in CDVAvailabiltyDeprecated.h
CDVPlugin
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 WKWebView
config.xml
preferences for WKWebView
UIWebView
results in an exceptionconfig.xml
preferences for WKWebView
mobile-spec
in an iOS 8 project but using UIWebView
results in an exception