We are happy to announce that Cordova iOS 5.0.1
has been released! This release fixes various bugs related to Xcode 10.2 simulators and Cocoapod support.
To upgrade:
cd my_project
npx cordova platform remove ios
npx cordova platform add ios@5.0.1
To add it explicitly:
npx cordova platform add ios@5.0.1
Currently, all of the latest released platforms, tools, and core libraries require a minimum version of node 6.x
to be installed. Additionally, we have added support for node 10.x
.
The Node.js Foundation has reported that the End-of-Life (EOL) for version 6.x will be April 30th, 2019. Looking ahead, the Node.JS Foundation has also scheduled the deprecation of 8.x on December 31, 2019 to be aligned with the scheduled End-of-Life of OpenSSL-1.0.2.
Since October 30th, 2018, node 10.x
has started its active Long Term Support ([LTS][1]) period. Thus, as node 10.x
is the default download from Node.js, we also recommend users to upgrade to the current LTS (10.x) before/by the time 8.x has reached EOL.
During these two distinct deprecation periods, we will prepare our tools, platforms, core libraries, and plugins to follow the Node.js Foundation reported EOL schedule.
We will also plan to add node 12.x
support. Currently, node 12.x
is pending for release on April 23rd, 2019.
JavaScript files in plugins themselves are unaffected since the JavaScript support for them is dependent on platform browser support. For the Electron platform, if using Node.js APIs there is a possibility of experience an effect.
We are happy to announce that we have just released plugman 3.0.0
! Plugman is a command line tool which we provide to install and uninstall plugins in a platform-centered workflow.
To upgrade:
npm uninstall -g plugman
npm install -g plugman@3.0.0
In addition to various improvements and fixes, this release has removed the browserify
and fetch
options.
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released cordova 9.0.0
!
To upgrade:
npm uninstall -g cordova
npm install -g cordova@9.0.0
In addition to various improvements and fixes, this release has updated its core library.
All of the latest platform releases are available by default.
cordova-android@^8.0.0
cordova-browser@^6.0.0
cordova-electron@^1.0.0
cordova-ios@^5.0.0
cordova-osx@^5.0.0
cordova-windows@^7.0.0
Additionally, Cordova Electron, one of the newest supported platfroms, is available!
This release has also deprecated the browserify
, fetch
, and copy-from
options.
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released cordova-lib 9.0.0
!
In addition to various improvements and fixes, this release has removed the --browserify
flag.
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Electron 1.0.2
! This is one of Cordova's supported platforms for building Electron applications.
To install:
Cordova 8.x
cordova platform add cordova-electron@1.0.2
As original release was for Cordova CLI 9.x, the decision to support on Cordova CLI 8.x was in the post-release phase.
With this release, Cordova CLI 8.x now supports Electron.
Please note that any command that accept the platform argument, on Cordova CLI 8.x, must be cordova-electron
.
Example:
cordova run cordova-electron --nobuild
cordova build cordova-electron
For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documention!
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Windows 7.0.0
! This is one of Cordova's supported platforms for building Windows applications.
To upgrade:
cordova platform remove windows
cordova platform add windows@7.0.0
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Electron 1.0.0
! This is one of Cordova's newest supported platforms for building Electron applications.
To install:
Cordova CLI 9.x
cordova platform add electron@1.0.0
Some of the major key features for this release:
electron-builder@^20.38.4
)
For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documention!
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Android 8.0.0
! This is one of Cordova's supported platforms for building Android mobile applications.
To upgrade:
cordova platform remove android
cordova platform add android@8.0.0
In addition to the various improvements and bug fixes, this release also comes packed with some major features.
Some of the key features are:
Additional, as NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova iOS 5.0.0
! This is one of Cordova's supported platforms for building iOS mobile applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@5.0.0
In addition to the various improvements and bug fixes, this release also comes packed with some major features.
Some of the key features are:
This release only supports Xcode 9 and up. It is important to know that starting March 2019, Apple requires all new apps submitted to the App store to be built with the iOS 12.1 SDK or later (Xcode 10). source
Additional, as NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova OSX 5.0.0
! This is one of Cordova's supported platforms for building macOS desktop applications.
In addition to various fixes, this release also includes support for Swift 4 and the app store icon.
Additional, as NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Browser 6.0.0
! This is one of Cordova's supported platforms for building browser targeted applications.
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to cordova-node-xcode
! This is one of the libraries used behind-the-scenes for parsing, editing, and writing xcodeproj project files.
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to cordova-create
! This is one of the libraries used behind-the-scenes for creating Cordova style projects and incudes support for Cordova templates.
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that cordova-common 3.1.0
was released in January 2019. This is one of the libraries used behind-the-scenes by nearly all of the Cordova tooling and provides utilities for dealing with things like config.xml
parsing.
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
The purpose of this release is to use real singleton objects as needed. Here are the major changes:
CordovaLogger
to singleton class (#53)Here are the major changes from the cordova-common 3.0.0
release which was not announced before:
PluginInfo.getPodSpecs
method (#48)config_munge
in ios.json
and android.json
(#24)plist_helpers
(#45)cordova-registry-mapper
dependency (#33)cross-spawn
for platform-independent spawning (#50)We are happy to announce that we have just released an update to our tools!
As NodeJS 4.x support has been dropped by the NodeJS team on April 30th, 2018, we have raised the minimum required NodeJS version for this release to 6.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that Cordova node xcode 1.1.0
version was released in December 2018.
The purpose of this patch release is to include the following updates:
pbxFile
extension (#31)pegjs
to devDependencies
in package.json
(#10)As NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is possibly the last release that will support Node.js 4.x.
We are happy to announce that Cordova Android 7.1.4
has been released! This resolves a bug that was introduced in the recent 7.1.3
release. Thanks to our users for the quick reports on GitHub issues and the help in identifying the problem.
If you have been staying on Cordova Android 6.x due to compatibility issues with 3rd party plugins, we strongly encourage you to try an update to Cordova Android 7.1.4
. Please file issues if you run into any plugin compatibility issues with this new release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform remove android
cordova platform add android@latest
To add it explicitly:
cordova platform add android@7.1.4
We are happy to announce that Cordova Android 7.1.3
has been released! This release resolves a couple more issues releated to plugin compatibility.
If you have been staying on Cordova Android 6.x due to compatibility issues with 3rd party plugins, we strongly encourage you to try an update to Cordova Android 7.1.3. Please file issues if you run into any plugin compatibility issues with this new release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform remove android
cordova platform add android@latest
To add it explicitly:
cordova platform add android@7.1.3
We are happy to announce that Cordova Android 7.1.2
has been released! This release fixes various bugs releated to gradle repositories and plugin compatibility.
If you have been staying on Cordova Android 6.x due to compatibility issues with 3rd party plugins, we strongly encourage you to try an update to Cordova Android 7.1.2. Please file issues if you run into any plugin compatibility issues with this new release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform remove android
cordova platform add android@7.1.2
To add it explicitly:
cordova platform add android@7.1.2
We are happy to announce that Cordova CLI 8.1.2
patch version was released in October 2018.
The purpose of this patch release is to include cordova-lib@8.1.1
bugfix update as follows:
cordova-lib@8.1.1
dependency to reintroduce xcode
and other dependencies that were removed in cordova-lib@8.1.0
minor release (GH-706)As NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is possibly the last release that will support Node.js 4.x.
We are happy to announce that cordova-lib 8.1.1
was released in October 2018.
The purpose of this release is to resolve possible dependency breakage that was introduced in version 8.1.0
, as reported in GH-706. Here are the important changes:
xcode
dependency to to avoid breaking plugins such as branch-cordova-sdk
before next major release8.1.0
to better ensure that any other plugins or applications using requireCordovaModule
would not be broken by a minor release upgradeAs NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
We are happy to announce that Cordova Windows 6.0.1
has been released! This release fixes various bugs releated to the previous cordova-windows@6.0.0
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm windows
cordova platform add windows@latest
To add it explicitly:
cordova platform add windows@6.0.1
We are happy to announce that Cordova CLI 8.1.1
hotfix was released in September 2018.
The purpose of this hotfix release is to resolve a couple items that were broken in the Cordova CLI 8.1.0
release:
npm-shrinkwrap.json
(re-introduces a low-severity npm audit
warning)As NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
We are happy to announce that Cordova CLI 8.1.0
was released in September 2018.
The purpose of this release is to resolve npm audit
issues, use recent releases of cordova-android and cordova-windows, and include some other recent updates. Here are the important changes:
cordova-lib@8.1.0
insight
to resolve npm audit
warningAs NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
We are happy to announce that cordova-lib 8.1.0
was released in September 2018.
The purpose of this release is to resolve npm audit
issues, use recent releases of cordova-android and cordova-windows, and include some other recent updates. Here are the important changes:
true
(GH-624)As NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
We are happy to announce that cordova-fetch 1.3.1
was released in September 2018.
The purpose of this release is to resolve the project URL in package.json
and include a few minor bug fixes. Here are the important changes:
As NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
We are happy to announce that Cordova OSX 4.0.2
(for macOS) has been released! This release fixes various bugs releated to the previous cordova-osx@4.0.1
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm osx
cordova platform add osx@latest
To add it explicitly:
cordova platform add osx@4.0.2
We are happy to announce that Cordova browser 5.0.4
has been released! This release fixes various bugs releated to the previous cordova-browser@5.0.3
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm browser
cordova platform add browser@latest
To add it explicitly:
cordova platform add browser@5.0.4
With the announcement of the iOS 12 beta SDK at Apple’s WWDC 2018, came the news that UIWebView, the webview originally bundled with the first iOS SDK, has been deprecated. What this means for iOS developers is that sometime in the future, Apple will remove UIWebView from their SDK, and developers should migrate to using the WKWebView component starting right now.
Cordova iOS, starting with version 4, has anticipated this by moving the webview that is used by the platform into a plugin. The default webview that is used is still UIWebView, but you had the option to use WKWebView instead, with the cordova-plugin-wkwebview-engine plugin. Both the UIWebView and WKWebView webviews are plugins themselves, with the former included in the cordova-ios platform.
Starting with a future Cordova iOS release, we will ship both webview plugins with the cordova-ios platform, to enable developers to test and transition users to the new WKWebView component. This future Cordova iOS version will ship with a bridge webview plugin that can switch usage of the webview plugin used at runtime. Previously, you could only choose which webview you would use at build time.
We are happy to announce that Cordova iOS 4.5.5
has been released! This release fixes various bugs releated to the previous cordova-ios@4.5.4
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@latest
To add it explicitly:
cordova platform add ios@4.5.5
We are happy to announce that cordova-common 2.2.5
was released in July 2018. This is one of the libraries used behind-the-scenes by nearly all of the Cordova tooling and provides utilities for dealing with things like config.xml parsing.
The purpose of this release is to resolve an issue with NodeJS 4.x which is now deprecated. Here is the major change:
package.json
use plist@2 to avoid warning on NodeJS 4.xAs NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
We are happy to announce that Cordova Android 7.1.1
has been released! This release fixes various bugs releated to the previous cordova-android@7.1.0
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform remove android
cordova platform add android@7.1.1
To add it explicitly:
cordova platform add android@7.1.1
We are happy to announce that cordova-js 4.2.4
has been released. This is the source of the JavaScript code in cordova.js
used in each of the Cordova platform implementations.
The purpose of this release is to include a recent logging update with internal npm audit
messages resolved in the package build. Here are the major changes:
We are happy to announce that cordova-common 2.2.4
has been released. This is one of the libraries used behind-the-scenes by nearly all of the Cordova tooling and provides utilities for dealing with things like config.xml parsing.
The purpose of this release is to resolve issues with dependencies on cordova-ios@4. Here are the major changes:
npm audit
issueAs NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
We are happy to announce that cordova-common 2.2.3
has been released. This is one of the libraries used behind-the-scenes by nearly all of the Cordova tooling and provides utilities for dealing with things like config.xml parsing.
The purpose of this release was primarily to bring some dependencies up to date, but there were also a handful of small bugfixes:
config.xml
lookups<edit-config>
or <config-file>
not foundAs NodeJS 4.x support ended on April 30th, 2018, we are proceeding with our previously announced deprecation timeline. This is probably the last release that will support NodeJS 4.x.
The following plugins were updated today:
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera
cordova plugin add cordova-plugin-camera@latest
Changes include:
We are happy to announce the release of cordova-windows 6.0.0
.
This is a major release that changes functionality you might rely on, so please make sure to read the following list of changes:
cordova build windows
will now build a Windows 10 UWP app by default.cordova build windows -- --appx=8.1-win
, cordova build windows -- --appx=8.1-phone
or an equivalent configuration option.15.5.x
at the time of writing) without any additional configuration or hacks (like the environment variable VSINSTALLDIR
that was required for 5.0.0). (Note: Visual Studio 2017 doesn't support Windows 8.1 apps anymore, so you can only build these apps with Visual Studio 2015 installed.)MSBUILDDIR
allows to directly configure the MSBuild Tools to be used to build the app. While VSINSTALLDIR
always has been a hack that accidentally also worked to switch between different MSBuildTools versions, we now make this functionality explicit: Just set the ENV var to a your desired MSBuild folder (e.g. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
or C:\Program Files (x86)\MSBuild\14.0\bin\
) and it will be used to build your project.
As usual, this new version will be added as the default cordova-windows
version for cordova platform add windows
only with the next release of Cordova CLI. Until then, please use these commands to remove and re-add the windows
platform:
cordova platform rm windows
cordova platform add windows@6.0.0
As it's often the case, the 6.0.0
release of cordova-windows is not perfect and has some known limitations:
If you encounter problems with this new version, you can use the GitHub issues of the cordova-windows
repository to do so now.
cordova-windows
Working on this update reminded us how much code there is to support other platform variants besides Windows 10 Desktop / UWP, specifically Windows 8.1 and Windows Phone 8.1 but also Windows 10 Mobile.
As Microsoft recently ended mainstream support for all Windows 8.1 variants, total market share recedes below 6% and Visual Studio 2017 doesn't support 8.1 development anymore, we don't expect any future changes that would require updates to cordova-windows
' 8.1 support. Same for Windows 10 Mobile, which is not under active development by Microsoft anymore and will not receive any other updates than security fixes.
Because of that, we decided to deprecate all "mobile" and "phone" build targets of cordova-windows
. In the near future, we will release a 7.0.0
version that will remove support for those platform variants and focus on Windows 10 UWP - which will greatly reduce complexity and simplify future maintenance.
cordova-windows 6.0.0
with support for these platforms, of course, will stay available and receive bugfixes if necessary (Similar to how cordova-windows@4
was the last version to support Windows 8.0).
Please tell us in the comments to this blog post if you have any objections or comments to these plans.
We are happy to announce that Cordova Android 7.1.0
has been released! This release fixes various bugs releated to the previous cordova-android@7.0.0
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform remove android
cordova platform add android@7.1.0
To add it explicitly:
cordova platform add android@7.1.0
Cordova developers have several ways to test and debug their Cordova applications. For functional testing, developers use emulators, simulators, and physical devices. Devices can be on-premises, or there are many cloud offerings available as well. There's even great tools you can use to debug your applications such as the web app debugging capabilities of Chrome and Safari, as well as the excellent debugging capabilities of Microsoft's Visual Studio Code extension for Apache Cordova.
For debugging plugins, or debugging applications that utilize Cordova plugins, things aren't that bad. For most plugins, I imagine that any physical device has whatever's needed to work with a plugin, unless the plugin requires some external hardware device or has other requirements that aren't by every device. For several of the core Cordova plugins, the device emulators and simulators expose capabilities that enable testers to simulate things like the camera, accelerometer, compass, and other device-side capabilities (although, surprisingly, early iOS simulators didn't support camera simulation).
When it comes to exercising all the capabilities of a plugin, especially simulating error conditions so you can tell how the app responds, it gets complicated. Developers often find themselves hacking away at plugin code, either mocking up simulation scenarios, or manually changing the behavior of the plugin during testing. In many cases, developers must manually force error conditions in their plugins so they can validate error checking within their app. I haven't written many Cordova plugins, but in the little work I have done, I've wished that there was a better way. Well, it turns out that there is.
The following plugins were updated today:
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera
cordova plugin add cordova-plugin-camera@latest
Changes include:
The following plugins were updated today:
Our last plugin release had an issue which made it impossible to install from npm. These point releases of the plugins fix the bug allowing you to install from npm as well as git url.
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera
cordova plugin add cordova-plugin-camera@latest
Changes include:
The following plugins were updated today:
In the recent cordova@8
tools release, we dropped support for deprecated platforms (Ubuntu, BlackBerry10, Windows Phone 8, FirefoxOS). The main focus of this plugins release was to drop support for those platforms as well. That is why many of the plugins have had major version increases.
cordova-plugin-contacts
and cordova-plugin-globalization
have officially been deprecated. Read about our decision to deprecate cordova-plugin-contacts
at https://cordova.apache.org/news/2017/11/27/Deprecation-of-cordova-contacts-plugin.html. For cordova-plugin-globalization
, we have written a migration guide over to the built-in ECMA Internationalization API at https://cordova.apache.org/news/2017/11/20/migrate-from-cordova-globalization-plugin.html.
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera
cordova plugin add cordova-plugin-camera@latest
Changes include:
We just released an update to our tools!
cordova save
command. This command isn't needed as cordova auto saves dependencies.--nofetch
flag. Now all of our dependency fetching happens via cordova-fetch
. This allowed us to drop the npm@2
dependency we were shipping with cordova. Instead, we now just use your system npm
to do all of our fetching. To update your cordova CLI:
npm install -g cordova@latest
Please report any issues you find at issues.cordova.io!
We are happy to announce that Cordova Android 7.0.0
has been released!
With this release, we have changed the default project structure for Android projects. People who currently use the CLI and treat everything in the platforms directory as a build artifact should not notice a difference.
However this a major breaking change for people creating standalone Cordova Android projects. This also means that the locations of files have changed and have been brought in line to the structure used by Android Studio.
This may affect plugin.xml files and config.xml files that use edit-config, and make it so plugins that use edit-config will not be able to be compatible with both Android 6.x and Android 7.x. To fix this issue, please do the following in your XML files:
<!-- An existing config.xml -->
<edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
<!-- needs to change to -->
<edit-config file="app/src/main/AndroidManifest.xml" target="/manifest/application" mode="merge">
To upgrade:
npm install -g cordova
cd my_project
cordova platform remove android
cordova platform add android@7.0.0
To add it explicitly:
cordova platform add android@7.0.0
We are hereby announcing the deprecation of cordova-plugin-contacts.
This means that the Cordova development community will not be doing any more work on this plugin. You can continue to use this plugin as-is in existing and new applications but any further issues will not be fixed by the Cordova team.
Generally when we deprecate plugins, we have an alternative standards API to migrate to, however, the latest W3C Contacts API indicates that the work on implementing a standard has been discontinued because of various privacy and security issues. Some of the main issues are potential compromise of users' contacts, safe and timely disposal of contact information by the recipient and inadvertent granting of permission by the user.
Your feedback is graciously accepted and appreciated!
We are happy to announce a minor version of Cordova iOS 4.5.4
has been released!
This version continues to add updates for the latest iOS 11 and also includes some fixes for the iPhone X.
Things to note:
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.5.4
To add it explicitly:
cordova platform add ios@4.5.4
The Cordova Globalization Plugin was created to obtain information and perform operations based on a user’s locale, language and timezone when most mobile platforms could not make a distinction between these settings. With the new API arrivals in the browser, we can now use the ECMA Internationalization API for achieving this goal on iOS, Android, Windows devices and desktop browsers. Hence, this cordova plugin is not needed any more and will be sunset soon.
The cordova globalization plugin defines a global navigator.globalization object which provides various methods to access a user’s locale, language and timezone. To get the preferred language from the browser, the navigator.globalization.getPreferredLanguage method was used as shown below:
navigator.globalization.getPreferredLanguage(function (language) {
console.log('language: ' + language.value + '\n');
}, function () {
console.log('Error getting language\n');
});
The current locale could be found out using:
navigator.globalization.getLocaleName(function (locale) {
console.log('locale: ' + locale.value + '\n');
}, function () {
console.log('Error getting locale\n');
});
The ECMA Internationalization API provides the Intl
object which provides language sensitive string comparison, number formatting, and date and time formatting.
First we should check if the API is supported by the browser:
if (window.Intl && typeof window.Intl === 'object') {
console.log('API available');
}
The preferred language tag can be found out from the browser by using the navigator
object:
console.log(navigator.language);
The locale name can be found out using the Intl.getCanonicalLocales(locales)
method. locales
is a string value or an array of string values that has the language tag(s). The locale name can then be obtained as shown below:
Intl.getCanonicalLocales('EN-US'); // ["en-US"]
Intl.getCanonicalLocales(['EN-US', 'Fr']); // ["en-US", "fr"]
Another instance of migrating from the cordova globalization plugin can be seen in this example: the navigator.globalization.dateToString method. This method is used in the cordova plugin as shown below:
navigator.globalization.dateToString(
new Date(),
function (date) {
alert('date: ' + date.value + '\n');
},
function () {
alert('Error getting dateString\n');
},
{ formatLength: 'short', selector: 'date' }
);
Similar results can be obtained using the Internationalization API by using the following code:
var date = new Date();
console.log(new Intl.DateTimeFormat().format(date));
Here is a good resource to find out more about various methods in the ECMA Internationalization API.
Your feedback is graciously accepted and appreciated!
The following plugins were updated today:
In our last plugins release, we deprecated cordova-plugin-compat
since it got integrated into cordova-android@6.3.0
. So for this release cycle, we have removed the dependency from plugins that were relying on it and gave the plugins a major version jump. The follow plugins have dropped cordova-plugin-compat
: cordova-plugin-camera
, cordova-plugin-contacts
, cordova-plugin-file
, cordova-plugin-geolocation
, cordova-plugin-media
, and cordova-plugin-media-capture
.
We have also changed how usage descriptions work in the following plugins: cordova-plugin-camera
, cordova-plugin-contacts
, cordova-plugin-media
, cordova-plugin-geolocation
, and cordova-plugin-media-capture
. Usage descriptions are required for iOS applications accessing certain apis. Apple wants to know why your app needs certain permissions. We now recommend you add the usage description to your app via edit-config
tag. View the iOS Quirks
section of the plugin documentation to see an example of how to use it. Here is the example for cordova-plugin-camera
.
cordova-plugin-statusbar
has been updated to work on the new iPhone X
.
Lastly, cordova-plugin-file-transfer
has officially been deprecated. We recommend using the built in XHR
apis instead. Read about transitioning off cordova-plugin-file-transfer
at https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html.
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@latest --save
Changes include:
We would like to announce that Cordova Android 6.4.0
has been released!
This release now uses the latest Android Gradle plugin that was released with Android Studio 3.0.
Due to the recent changes Google made to Android Studio, Cordova Android now requires that Gradle is installed as a standalone dependency for Android development on all platforms. You can do so by following these instructions at gradle.org.
We will be removing the code that uses Android Studio to provide Gradle as a dependency in the near future.
Google also has changed the Gradle DSL used and currently support for the Crosswalk WebView is broken in this version of Cordova as a result. Unfortunately, since Crosswalk is no longer supported by the Crosswalk Project, we do not know whether this issue will be fixed.
If you require support for Crosswalk, we recommend that you continue using cordova-android 6.3.0 at this time and avoid using or upgrading your project with Android Studio.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.4.0
To add it explicitly:
cordova platform add android@6.4.0
We are happy to announce a minor version of Cordova iOS 4.5.3
has been released!
This version continues to add updates for the latest iOS 11 and Xcode 9.
Things to note:
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.5.3
To add it explicitly:
cordova platform add ios@4.5.3
We just released some changes to cordova-fetch
!
Release Highlights:
We just released an update to cordova-browser
Release Highlights:
To upgrade:
cd my_project
cordova platform update browser@5.0.1
To add it explicitly:
cordova platform add browser@5.0.1
Please report any issues you find at issues.cordova.io!
Early on in Cordova's existence, the file-transfer plugin
was created to solve the problem of downloading binary files.
At the time, there weren't great options for solving this using standards-compliant
web APIs. The web took a twisty path to get to a solution (see
Firefox's sendAsBinary
and the now-defunct FileSystem API's
BlobBuilder,
among others), but today you can use our good friend XMLHttpRequest's
newest features, combined with some newer JavaScript types and objects,
to solve this problem.
This is an exciting moment for Cordova as the dream for this project was always
to eventually reduce the surface area of APIs the project maintains, and instead
see regular web APIs be able to handle these use cases.
As a result, Cordova is sunsetting the file-transfer plugin. What does "sunsetting" mean? In summary:
All of us at Apache Cordova don't want to leave y'all hanging, though, so we thought it'd be a good idea to show you how to use these newer XHR features to do what file-transfer lets you do, but in a way that will work in any modern web browser to boot!
Based on how deeply you interact with the underlying device filesystem, and on
which platforms, you may still need to rely on the
Cordova File plugin. If you
still have references to requestFileSystem
or root.fs
in your application's
JavaScript, you will definitely need the File plugin because these are not
standards-compliant APIs. Take note and care!
Binary types in JavaScript, as well as the extended XHR features, are available on the following Cordova-supported platforms without requiring any additional plugins:
As always, check caniuse.com for detailed support for the
required bits, like Blob
,
Typed Arrays, and
extended XHR features.
Standards are great and all, but what do you actually have to copy-paste to replace the previous FileTransfer examples? We have you covered:
Here's a replacement for FileTransfer's "Download a Binary File" example:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
console.log('file system open: ' + fs.name);
fs.root.getFile('bot.png', { create: true, exclusive: false }, function (fileEntry) {
console.log('fileEntry is file? ' + fileEntry.isFile.toString());
var oReq = new XMLHttpRequest();
// Make sure you add the domain name to the Content-Security-Policy <meta> element.
oReq.open("GET", "http://cordova.apache.org/static/img/cordova_bot.png", true);
// Define how you want the XHR data to come back
oReq.responseType = "blob";
oReq.onload = function (oEvent) {
var blob = oReq.response; // Note: not oReq.responseText
if (blob) {
// Create a URL based on the blob, and set an <img> tag's src to it.
var url = window.URL.createObjectURL(blob);
document.getElementById('bot-img').src = url;
// Or read the data with a FileReader
var reader = new FileReader();
reader.addEventListener("loadend", function() {
// reader.result contains the contents of blob as text
});
reader.readAsText(blob);
} else console.error('we didnt get an XHR response!');
};
oReq.send(null);
}, function (err) { console.error('error getting file! ' + err); });
}, function (err) { console.error('error getting persistent fs! ' + err); });
Here's a similar replacement for FileTransfer's "Upload a File" example:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
console.log('file system open: ' + fs.name);
fs.root.getFile('bot.png', { create: true, exclusive: false }, function (fileEntry) {
fileEntry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function() {
// Create a blob based on the FileReader "result", which we asked to be retrieved as an ArrayBuffer
var blob = new Blob([new Uint8Array(this.result)], { type: "image/png" });
var oReq = new XMLHttpRequest();
oReq.open("POST", "http://mysweeturl.com/upload_handler", true);
oReq.onload = function (oEvent) {
// all done!
};
// Pass the blob in to XHR's send method
oReq.send(blob);
};
// Read the file as an ArrayBuffer
reader.readAsArrayBuffer(file);
}, function (err) { console.error('error getting fileentry file!' + err); });
}, function (err) { console.error('error getting file! ' + err); });
}, function (err) { console.error('error getting persistent fs! ' + err); });
Note that both the above examples rely on the File plugin, so if you remove the FileTransfer plugin from your app, make sure to add the File plugin!
If you want to understand some of the nuts and bolts enabling binary data transferring, you'll need to grasp two (possibly three) concepts. MDN has an absolutely fantastic article on the topic that is worth a quick read, but I'll provide a summary here, too.
For the longest time, there was no way to directly represent binary data and
access the underlying bytes in memory within JavaScript. We could encode this data
in different formats (base64,
anyone?), and that was cool, but just let me play with the bytes already. For
our purposes, we are interested in two objects in particular:
ArrayBuffer
and Blob.
Why do we care about these two? Because we can have XHRs return downloaded data
as these types, or pass these types directly to XHRs' send
method.
There are two newer XHR features, originally as part of what was referred to as "XHR2" during its development, that we need to leverage to tie this all together.
For downloading binary data, we need to set the
responseType
property to either arraybuffer
or blob
- this tells XHR what type we want
the data we are retrieving back in. With responseType
set, we can then access
the read-only response
property to get either the ArrayBuffer
or Blob
object representing the data retrieved by XHR.
For uploading binary data, it is simpler: pass a Blob
or ArrayBuffer
directly
to XHR's send
method. That's it.
Binary types and extended XHR features are well supported in modern desktop
browsers, and on recent-ish mobile browsers (and WebViews). For existing Cordova
users, as long as your app targets the platform and OS version combinations listed
above under Platform Support, you should be good to go! Remember that if you rely
on certain File plugin APIs like requestFileSystem
, root
, or getFile
,
you'll need to ensure the File plugin is added to your app.
Happy standards-compliant coding!
We are happy to announce a minor version of Cordova iOS 4.5.2
has been released!
This version continues to add updates for the latest iOS 11 and Xcode 9.
Things to note:
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.5.2
To add it explicitly:
cordova platform add ios@4.5.2
We just released a small update to our tools!
--production
flag by default. This means that when the commands cordova platform add android
or cordova plugin add cordova-plugin-device
are run, under the hood we are running npm install cordova-android --production
. The --production
flag only installs dependencies
from package.json
and skips devDependencies
. This should speed up installs (especially when installing local copies of platforms and plugins). You can turn the flag off by passing the --noprod
flag or setting it off globally via cordova config set production false
.--save-exact
flag. This will allow to save an exact version of a platform or plugin instead of a range. cordova platform add android@6.3.0 --save-exact
. You can also set it true by default in your global config via cordova config set save-exact true
cordova-node-xcode
under the apache cordova banner. It was originally created and used as a dependency for cordova-lib
, but now is being used by many other projects as well. We have decided to give the project a major release to 1.0.0
. This is to represent stability for the project in terms of semver
. No breaking change has happened from the previous release. npm@5+
.--link
option.cordova platform save
.raw
from cordova-lib
API calls. If you consume cordova-lib
as a node module, please update your API calls! You can see an example of the change at https://github.com/apache/cordova-cli/commit/0a42092971dc8fe2f483bd42c3b9de26fdec677c. To update your cordova CLI:
npm install -g cordova@latest
Please report any issues you find at issues.cordova.io!
We are happy to announce that Cordova Android 6.3.0
has been released!
This release now targets the latest Android API level of API 26 and has fixed issues related to the Android SDK Tools 26.0.2 release. Google changed how the Android emulator was executed, causing errors when deploying to the emulator.
This release contains the integration of cordova-plugin-compat
, so please remove that plugin from projects once you update to this version of cordova-android
.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.3.0
To add it explicitly:
cordova platform add android@6.3.0
We are happy to announce a minor version of Cordova iOS 4.5.1
has been released!
This version provides updates for the latest iOS 11 and Xcode 9. You can now create builds for this new version and properly deploy to either the emulator or device.
Things to note:
Apple has also made some changes that could effect your current apps, specifically around the viewport. Here are a few resources that could help with your transition to iOS 11:
We are also aware that there are specific issues related to the Status Bar plugin. The team is working to resolve these for the next release of the plugin.
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.5.1
To add it explicitly:
cordova platform add ios@4.5.1
The following plugins were updated today because they are being deprecated:
cordova-plugin-console
has been integrated into cordova-ios@4.5.0+
. It is not needed anymore. Make sure to remove it from your projects if you plan on updating your cordova-ios
!
Similarly, cordova-plugin-compat
has been integrated into the upcoming cordova-android@6.3.0
release. Please remove it from your projects when you update to the latest version of cordova-android
.
cordova-plugin-device-motion
and cordova-plugin-device-orientation
have officially been deprecated. These plugins are being replaced by the built in W3C Device Motion and Orientation APIs, which are now supported on iOS, Android and Windows. Checkout the migration guides the PhoneGap team wrote for Device Motion and Device Orientation.
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@latest --save
Changes include:
We are happy to announce a minor version of Cordova iOS 4.5.0
has been released!
Three new features were added:
handleOpenURLWithApplicationSourceAndAnnotation:
now (new selector, that sends the URL with additional metadata) Important! If you have included cordova-plugin-console
in your project, you must remove it, otherwise your project will not build.
If you ever needed to disable the built in console plugin, comment out or remove the Console
<feature>
tag in your platform specific config.xml
, and/or call this right after the deviceready
event:
cordova.require('cordova/plugin/ios/logger').useLogger(false);
Other notable issues:
ios-deploy
dependency to v1.9.2, which contains a fix for Xcode 9ios-sim
to v6.0.0 with support for newer iPads (and this fixes some related bugs)<access>
tag attribute allows-arbitrary-loads-for-media
(which reflects the correct App Transport Security value). The old attribute allows-arbitrary-loads-in-media
is deprecated.
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.5.0
To add it explicitly:
cordova platform add ios@4.5.0
We just released some changes to cordova-common
!
Release Highlights:
<config-file>
in config.xml
.allows-arbitrary-loads-for-media
attribute parsing added for getAccesses
.framework
tag.JSON
uses 2 spaces for indentation.Watch for this release to start rolling into upcoming platform and cordova-cli
releases.
We just released an update to cordova-browser
and cordova-serve
Release Highlights:
manifest.json
to browser projects. This enables basic Progressive Web App supportPlatformApi
.To upgrade:
cd my_project
cordova platform update browser@5.0.0
To add it explicitly:
cordova platform add browser@5.0.0
Please report any issues you find at issues.cordova.io!
We just released a small update to our tools!
With this release, creating a new cordova app with our default template will include a package.json
file by default.
To update your cordova CLI:
npm install -g cordova@latest
Please report any issues you find at issues.cordova.io!
We are happy to announce that Apache Cordova 7.0.0
has been released!
Most notable changes include:
If a package.json
does not exist in your project, it will be auto-created for you when cordova prepare
is called.
When adding a platform or plugin, the previous default behavior of not-saving has changed to saving. Now it will automatically save that platform or plugin to your config.xml
and package.json
. Details about platform and plugin versions are also automatically saved in config.xml
and package.json
. The --save
flag is no longer required to save. Use --nosave
to prevent saving to config.xml
or package.json
.
Fetch is now the default method for fetching platforms. Fetch uses your system npm
to npm install
modules into your project. The --fetch
flag is no longer required. Use the --nofetch
flag to revert to pre-Cordova@7.0
behavior (npm install
is not used to fetch modules).
After cordova prepare
is run, package.json
and config.xml
should contain identical platforms and versions. In case of conflicts, package.json
is given precedence over config.xml
. For example, suppose package.json
contains cordova-android@6.0.0
and config.xml
contains cordova-android@4.0.0
. After cordova prepare
is run, config.xml
and package.json
will each contain only cordova-android@6.0.0
.
Platforms and plugins are now required to have a package.json
file.
We have added support for custom platforms. This will allow future custom platforms, and modified versions of existing platforms. Example:
cordova platform add custom-platform-name
A cordova config
command has been created to set
, get
, delete
, edit
, and list
global Cordova options. For example, you can use the following command cordova config set <key> <value>
to set the value of autosave
or fetch
to true
or false
.
In the following case, you are turning off autosave
as the default setting. autosave
is true by default in cordova. Example:
cordova config set autosave false
In the following case, you are turning off fetch
as the default setting. fetch
is true
by default in cordova. Example:
cordova config set fetch false
In addition, the cordova config
command supports the browserify
setting, which allows the JavaScript of plugins to be loaded at build time compared to run time. For instance, if the browserify
value is not explicitly passed in by the user, the cordova config
command will automatically set the browserify
value saved in ~/.config/configstore/
to be saved globally
. Users can get and set browserify
. browserify
is false
by deafult in cordova. Example:
cordova config get browserify
cordova config set browserify true
Dropped support for node 0.x. Only node versions 4.0 and up are supported.
Dropped support for wp8 (windows phone 8).
cordova-windows
: dropped support for any versions older than 4.0.0.
cordova-android
: dropped support for any versions older than 5.0.0.
cordova-ios
: dropped support for any versions older than 4.0.0.
cordova-osx
: dropped support for any versions older than 4.0.0.
To upgrade:
npm install -g cordova@latest
Please report any issues you find at issues.cordova.io!
We are happy to announce that Cordova Android 6.2.3
has been released! This patch release actually adds support for the Android SDK Tools v26 and newer. Unfortunately, we forgot to include these changes in the 6.2.2 release.
We strongly recommend upgrading to this version if you are using the latest Android SDK Tools. Older versions of cordova-android
do not work with the latest Android SDK Tools!
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.2.3
To add it explicitly:
cordova platform add android@6.2.3
This release will have to be explicitly added until the upcoming cordova@7
release, where it will be pinned as the default android platform.
The following plugins were updated today:
Release Highlights:
tests/
folder in preparation for the Cordova@7 release.data:
URIs as a contact's photo field.loadstop
event's url
is now a string instead of an object, aligning it with the other platforms..wav
file recording and add .m4a
recording support.overlaysWebView
.You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@latest --save
Changes include:
We are happy to announce that Cordova Android 6.2.2
has been released! This patch release adds support for android sdk tools 26.0.1
. We strongly recommend upgrading to this version if you are using the latest Android sdk tools. Older versions of Cordova-Android do not work with the latest Android sdk tools!
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.2.2
To add it explicitly:
cordova platform add android@6.2.2
This release will have to be explicitly added until the upcoming cordova@7
release, where it will be pinned as the default android platform.
We are happy to announce a minor version of Cordova iOS 4.4.0
has been released!
Three new features were added:
Other notable issues:
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.4.0
To add it explicitly:
cordova platform add ios@4.4.0
We are happy to announce that Cordova Android 6.2.1
has been released!
This release has fixed issues introduced by the Android SDK Tools 25.3.1 release. Google dropped support for the android
binary, so cordova-android
has now adopted support for the avdmanager
and sdkmanager
binaries. We have also taken the opportunity to rewrite how we use gradle on the user's system. cordova-android
now requires Android Studio or Gradle to be installed on the user's system.
This release also adds support for the <resource-file>
element in config.xml
which copies specified files during a cordova prepare
. This allows providing arbitrary files such as special notification-sized icons, or API configuration JSON files.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.2.1
To add it explicitly:
cordova platform add android@6.2.1
This release will have to be explicitly added until the upcoming cordova@7
release, where it will be pinned as the default android platform.
Originally posted at this PhoneGap blog
The new version(2.0.0) of the cordova screen orientation plugin was released recently. The purpose of the plugin is to set/lock the screen orientation in a common way for all the major platforms. This new version conforms with the specifications mentioned in the W3C Screen Orientation API, currently in open draft.
The plugin incorporates these major updates:
The screen orientation can be locked to a particular orientation, say, for example, landscape, using :
screen.orientation.lock('landscape').then(function success() {
console.log("Successfully locked the orientation");
}, function error(errMsg) {
console.log("Error locking the orientation :: " + errMsg);
});
The code above sets the screen orientation device to any landscape mode ( landscape-primary or landscape-secondary) depending upon the rotation. The screen.orientation.lock(OrientationLockType); method returns a promise.On successfully setting the orientation, it resolves a promise. If the screen is not locked successfully, the promise rejects with 'NotSupportedError' . The screen orientation can be unlocked by using:
screen.orientation.unlock();
The code above makes the screen adapt to the default orientation of the device. The unlock method does not return a promise.
The current screen orientation can be accessed as :
console.log('Orientation is' + screen.orientation.type);
An example usage of the 'onchange' event handler:
screen.orientation.onchange = function(){
console.log(screen.orientation.type);
};
The 'change' event can also be added to the screen.orientation object :
screen.orientation.addEventListener('change', function(){
console.log(screen.orientation.type);
});
The demo application is included on the github repository. Once the plugin has been added to it, the demo application allows the user to test the orientation types with the screen.orientation.lock() method. The demo application is explained in detail here.
The following plugins were updated today:
Release Highlights:
getOrientation
method to return the defined enumerated EXIF
instead of orientation in degrees for consistencyinput[type=file]
File Chooseracc
file. Major version bump to 3.0.0
. Media plugin now requires cordova-android >= 6.1.0
WKProcessPool
for cookie sharingYou can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@latest --save
Changes include:
We are happy to announce that Cordova Windows 5.0.0
has been released!
This release introduces a major change in resource-file behavior (see the docs on how to get the previous behavior back for referenced files) and adds WinMD + C++ based DLL combination support for plugins.
Another highlight is a new feature of buildFlag
similar to --gradleArg
on Android and --buildFlag
on iOS allowing to pass custom flags to MSBuild.
The release also fixes some issues with SplashScreen and VS project generation.
See release notes below for more detals and the rest of the changes.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@5.0.0
To add it explicitly:
cordova platform add windows@5.0.0
During my internship, there have been a lot of exciting, memorable highlights for me as a new developer - closing my first bug on Jira, committing to GitHub as a PhoneGap intern for the first time, and sending my very first pull request for review. All of these moments have stuck with me because they were completely new for me and also allowed me to contribute to the Cordova community in a real, relevant way. (Not all interns get an opportunity do awesome work like this!) My most memorable moment, however, happened a few months into my internship, when I received an email inviting me to become an official Apache Cordova Committer! For me, that was definitely a major highlight and one of the best days of my internship!
So what did I actually have to do to become an “official committer”? I’ll start by saying that I had to do a lot of things that were unfamiliar and challenging! Two main categories that I found I really needed to focus on were - (1) the technical work and (2) learning how to be an active member in the Cordova community.
In the very beginning of my internship, I started looking into the simplest issues on Jira and asking for some small issues that I could tackle with limited experience (fixing typos or even numbering tests, etc.). Even though I wasn’t contributing anything major, I was still going through the process of finding where the issue was, learning to develop a workflow, and becoming less overwhelmed by the many Cordova repos. Along the way, I asked questions, asked more questions, and then … yes… asked even more questions! I wanted to make sure that I was clear about what I was working on and why I was working on it. Sometimes the “why” part went over my head even after it was explained several times, but I kept re-asking anyway until things began to make sense. (Props to the team and mentors for being so patient and putting up with my occasional blank stares!)
I was gradually given more complex tasks to work on in Cordova. Debugging, helping to create new features, and testing is really where I spent the bulk of my time. I had to learn to read and understand others’ code, watch my mentor debug and try some of those strategies myself, write tests and use cases, test and retest, and receive feedback(sometimes from multiple people)! In retrospect, one of the most surprising and important things I discovered was how much effort actually goes into merging a pull request- something I was definitely not aware of before. I had to be patient and learn that just because everything is passing with beautiful, tiny green dots locally, the CI tests have to pass AND there also needs to be time for the community to do another final review. Finally, however, when your PR is finally merged in, it is really, really awesome!
Another important part of working towards committership was to get familiar with the Cordova community, of course! As an outsider, reaching out to a community was and still is difficult, especially when you are new. There are already relationships, Slack channels, and expectations established so I wasn’t always sure how to interact and build a presence. Two things that really helped me to be more vocal was learning to triage on Jira and receiving feedback on my work from various members. These experiences helped me to talk to members in a one-on-one way, get a better understanding of the issues he/she was facing, and slowly start to build new relationships. Learning to be a greater part of the community is something that I’m still working on- however, on a positive note, I always find that when I talk to anyone in the Cordova community, he/she is always welcoming, here for support, or just willing to have a friendly chat, too.
A few things that I am continuing to work on:
While getting my committership was a goal I set for myself, I think it’s important to remember that with that comes responsibility. To me, committership means to show that you want to continue to be a part of open-source development and the Cordova community. I am so excited and proud to be able to do this and I’m really looking forward to what I’ll work on next!
A Security issue was discovered incordova-android
. We are releasing cordova-android@6.1.2
to address this security issue. We recommend that all Android applications built using cordova-android
be upgraded to use version 6.1.2
. Other Cordova platforms such as iOS are unaffected, and do not have an update.
When using the Cordova CLI, update with the following command:
cordova platform update android@6.1.2
The security issue is CVE-2017-3160
For your convenience, the text of this CVE is included here.
New updates of our tools are now available!
To update your cordova CLI:
npm install -g cordova@latest
Please report any issues you find at issues.cordova.io!
We are happy to announce that Cordova Android 6.1.1
has been released!
Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.1.1
To add it explicitly:
cordova platform add android@6.1.1
The following plugins were updated today:
You can update any plugin by removing it, and then re-adding it.
e.g. To update your inappbrowser plugin:
cordova plugin rm cordova-plugin-inappbrowser --save
cordova plugin add cordova-plugin-inappbrowser@latest --save
Changes include:
The following plugins were updated today:
You can update any plugin by removing it, and then re-adding it.
e.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@latest --save
Changes include:
We are happy to announce a patch version of Cordova iOS 4.3.1
has been released!
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.3.1
To add it explicitly:
cordova platform add ios@4.3.1
We are happy to announce that Cordova Android 6.1.0
has been released!
Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.1.0
To add it explicitly:
cordova platform add android@6.1.0
New updates of our tools are now available!
Release Highlights
6.0.0
and iOS to 4.3.0
. Read the Android@6.0.0 release blog and the iOS@4.3.0 release blog.edit-config
support to config.xml
. edit-config
works the same way now in plugin.xml
as well as config.xml
. Read about it at http://cordova.apache.org/docs/en/6.x/plugin_ref/spec.html#edit-configEventListener interface
to Channel.prototype.subscribe
cordova-create
from cordova-lib
. Published cordova-create
to npm
.To update your cordova CLI:
npm install -g cordova@latest
Please report any issues you find at issues.cordova.io!
We are happy to announce the minor version of Cordova iOS 4.3.0
has been released!
This release includes:
CocoaPods
support in <framework>
tags of plugins (static libraries only)--buildFlag
option to send extra xcodebuild
flags when building/running your appNote: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.3.0
To add it explicitly:
cordova platform add ios@4.3.0
We are happy to announce that Cordova Windows 4.4.3
has been released!
This release fixes some major issues with application activation, splashscreen and VS project generation.
See release notes below for more detals and the rest of the changes.
Cordova CLI starting from version 6.3.0 will automatically start using this version of cordova-windows when creating new projects.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.4.3
To add it explicitly:
cordova platform add windows@4.4.3
We are happy to announce a major release forCordova Android 6.0.0
has been released!
Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@6.0.0
To add it explicitly:
cordova platform add android@6.0.0
The following were recently released:
Google recently sent out warnings to everyone who uses cordova-plugin-geolocation
about having to include android.hardware.location.gps
to their AndroidManifest.xml
. We updated cordova-plugin-geolocation
plugin to auto add this setting to your project's AndroidManifest.xml
when installing the plugin. This means that the geolocation plugin will only work on android devices that have a GPS
. Let us know if this restriction affects you negatively.
Release Highlights:
cordova-app-hello-world
: Updated default CSP
to include img-src
and add content:
to it for CB-4078You can update any plugin by removing it, and then re-adding it.
E.g. To update your geolocation plugin:
cordova plugin rm cordova-plugin-geolocation --save
cordova plugin add cordova-plugin-geolocation@latest --save
Changes include:
Currently, all the platforms and plugins require a minimum of node 0.10
to be installed. node 0.10
has been out of LTS for a while now, and its maintenance period (security bug fixes) stops on Oct 31st 2016. node 0.12
will be out of maintenance Jan 1st 2017.
There will be two distinct deprecation periods, one for node 0.x
, and one for node 4.x
.
node 6.x
will be on active LTS Oct 18th 2016 (thus the default and recommended version to download on nodejs.org) and will be the version we recommend users upgrade to, during both deprecation periods.
What does node 6.x
give us? 99% ES2015 (ES6) support, and 100% ES2016 (ES7) support.
JavaScript files in plugins themselves are unaffected, since the JavaScript support for them is dependent on platform browser support. For example, ES6 is supported in iOS 10, while on older iOS platforms only ES5 is supported.
The following plugins were updated today:
Release Highlights:
camera
, contacts
and media-capture
have been updated to work with iOS 10camera
:CB-4078 Fix for orientation/scaling
on Android 4.4+ devices. Adds support for content:
.splashscreen
: CB-8056 Implement splashscreen for Windows platformAndroid Log class
and not Cordova LOG class
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@latest --save
Changes include:
We are happy to announce patch releases forCordova Android 5.2.2
& Cordova iOS 4.2.1
have been released! We have also updated and released Cordova Common 1.4.1
.
These release fixes issues with the new edit-config
functionality in plugin.xml
. Read more about edit-config
at http://cordova.apache.org/docs/en/latest/plugin_ref/spec.html#edit-config.
Note: When updating iOS, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@5.2.2
cordova platform rm ios
cordova platform add ios@4.2.1
To add it explicitly:
cordova platform add android@5.2.2
cordova platform add ios@4.2.1
New updates of cordova
and cordova-lib
are now available!
In this release we've fixed a couple of bugs, including regression that was causing cordova run
and cordova emulate
commands ignore --nobuild
option.
To update your cordova CLI:
npm install -g cordova@latest
Make sure to report any issues you find at issues.cordova.io!
We are happy to announce that Cordova Windows 4.4.2
has been released!
This release fixes some issues we've missed in 4.4.1. In particular, we have fixed build issues experienced with the new install experience in Visual Studio "15" previews. For the rest of changes see release notes below.
Cordova CLI 6.3.0 will automatically start using this version of cordova-windows when creating new projects.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.4.2
To add it explicitly:
cordova platform add windows@4.4.2
New updates of cordova
, cordova-lib
, cordova-common
and cordova-fetch
are now live!
Release Highlights:
Starting from this version app and plugin developers will get the ability to edit XML configuration files from config.xml
and
plugin.xml
files using edit-config
directive. The documentation for this feature is still under development but for now you can refer to this
pull request
Also the cordova-fetch
feature is now available for create
command and you can use it when creating new app from template.
cordova create Foo --template TEMPLATE_NAME --fetch
To update your cordova CLI:
npm install -g cordova@latest
Make sure to report any issues you find at issues.cordova.io!
We are happy to announce that Cordova Windows 4.4.1
has been released!
In this release we have fixed a number of issues, related to application resuming, splash screen functionality and others.
Also we have added an ability to specify location of msbuild
executable to build project.
The next Cordova CLI version will automatically start using this version of Cordova-Windows when creating new projects.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.4.1
To add it explicitly:
cordova platform add windows@4.4.1
We are happy to announce that Cordova Android 5.2.1
has been released!
This release fixes a small yet annoying bug that results in impossibility to deploy app on emulator with API 23 image.
This version will be used by default in next Cordova versions. As for now to install this version of Cordova-android you'll need to specify version explicitly.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@5.2.1
To add it explicitly:
cordova platform add android@5.2.1
We are happy to announce that Cordova Android 5.2.0
has been released!
This release includes many bug fixes. Read below for the full changelog.
A new version of the cordova-cli
will need to be released to pin this version of cordova-android as the default version when creating a new project. If you want to start using this version now, make sure to specify the version when doing a cordova platform add/update
.
Note: When updating, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@5.2.0
To add it explicitly:
cordova platform add android@5.2.0
We are happy to announce that Cordova iOS 4.2.0
has been released!
Along with some bug fixes, this release adds support for node 6 to cordova-ios
!
A new version of the cordova-cli
will need to be released to pin this version of cordova-ios as the default version when creating a new project. If you want to start using this version now, make sure to specify the version when doing a cordova platform add/update
.
Note: When updating, make sure to save your plugins as current unsaved plugins may not be reinstalled otherwise. Run the following command in your project to save your currently installed plugins into config.xml
:
cordova plugin save
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.2.0
To add it explicitly:
cordova platform add ios@4.2.0
Cordova Ubuntu 4.3.4
has been released.
This is a patch release, fixing bugs related to building and debugging Cordova apps targetting Ubuntu devices. See the changelog below for details.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ubuntu@4.3.4
To add it explicitly:
cordova platform add ubuntu@4.3.4
We are happy to announce that Cordova Windows 4.4.0
has been released!
This release adds some significant improvements, such as increased 'prepare' performance due to new 'incremental prepare' feature, embedded splashscreen plugin support and others. See below for full list of changes.
The next Cordova CLI version will automatically start using this version of Cordova-Windows when creating new projects.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.4.0
To add it explicitly:
cordova platform add windows@4.4.0
New updates of cordova
, cordova-lib
, plugman
and cordova-common
are now live! We have also released the first version of cordova-fetch
, a module used by cordova-lib
to fetch plugins and platforms via npm install
.
Release Highlights:
--fetch
optioncordova
to collect data for data driven development. Goal is use data to help guide the development of cordova
. cordova
will issue a prompt on first use providing an option for the user to disable it. Type cordova telemetry -h
for more info. node-xcode
dependency and update tests to past.The new cordova-fetch
feature is behind the --fetch
flag. Use it when adding and removing plugins and platforms.
cordova plugin add/rm PLUGINID --fetch
cordova platform add/rm PLATFORM --fetch
This will fetch the plugin/platform and npm install
it to your application. You should see a new node_modules
directory. This is the first step towards us eventually supporting a package.json
in your cordova applications.
To update your tools:
If you have cordova
installed:
npm install -g cordova@latest
If you have plugman
installed:
npm install -g plugman@latest
Make sure to report any issues you find at issues.cordova.io!
CVE-2015-5207 - Bypass of Access Restrictions in Apache Cordova iOS
Severity: High
Vendor: The Apache Software Foundation
Versions Affected: cordova-ios 3.9.2 and below
Description: Apache Cordova iOS contains 2 methods to bypass the URL access restrictions provided by the whitelist. An attacker can use any of the 2 methods to load malicious resources in an app that uses a whitelist to only load trusted resources.
Upgrade path: Developers who are concerned about this issue should install version 4.0.0 or higher of the cordova-ios platform.
Credit: This issue was discovered by Muneaki Nishimura (nishimunea) of Recruit Technologies Co.,Ltd.
CVE-2015-5208 - Arbitrary plugin execution issue in Apache Cordova iOS
Severity: High
Vendor: The Apache Software Foundation
Versions Affected: cordova-ios 3.9.2 and below
Description: An arbitrary plugin can be executed when a user clicks on a link.
Upgrade path: Developers who are concerned about this issue should install version 4.0.0 or higher of the cordova-ios platform.
Credit: This issue was discovered by Muneaki Nishimura (nishimunea) of Recruit Technologies Co.,Ltd.
The following plugins were updated today:
This release includes a new plugin named cordova-plugin-compat. cordova-plugin-compat
allows backwards compatibility for plugins that had to upgrade to the new permissions model for cordova-android@5+
. Plugin authors can use and depend on cordova-plugin-compat
to continue to support older versions (<5
) of cordova-android
. Checkout the cordova-plugin-compat repo for more information. Previously, we were packaging copies of PermissionHelper.java
with the plugins that needed the permission updates, but have now decided that it would be better to store PermissionHelper.java
in cordova-plugin-compat
.
Plugin authors can also use the new engines element to specify what versions of cordova-android
your plugin supports. Read more about it in our plugin fetching blog post.
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@latest --save
Changes include:
We are happy to announce that Cordova Windows 4.3.2
has been released!
This release fixes a number of bugs including an issue when some of config-file
changes were not applied to appxmanifest files
and the bug with omitted icons, specified using target
attribute (see icons guide
for target
attribute usage). See below for full list of changes.
Cordova CLI 6.1.1 will automatically start using this version of Cordova-Windows when creating new projects.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.3.2
To add it explicitly:
cordova platform add windows@4.3.2
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guide.
New patch update of cordova-cli
and cordova
are now live!
We had to fix a few issues that were discovered with the recent 6.1.0 release.
To update your tools:
If you have cordova
installed:
npm install -g cordova@latest
If you have plugman
installed:
npm install -g plugman@latest
We are happy to announce that Cordova iOS 4.1.1
has been released!
This release addresses issue CB-10773, which was an issue with creating an iOS project on a Windows machine and then building on OSX.
A new version of the cordova-cli
will need to be released to pin this version of cordova-ios as the default version when creating a new project. If you want to start using this version now, make sure to specify the version when doing a cordova platform add/update
.
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.1.1
To add it explicitly:
cordova platform add ios@4.1.1
New versions of cordova tools are now live!
Release Highlights include:
To update your tools:
If you have cordova
installed:
npm install -g cordova@latest
If you have plugman
installed:
npm install -g plugman@latest
The Cordova 6.0.0 release introduced the pinning of core plugin versions in cordova-lib.
We are happy to announce that one of the new features in the upcoming Cordova 6.1.0 release is a general API that allows any plugin to guide the CLI in choosing a compatible plugin release to fetch for a given project. This moves the plugin dependency information out of cordova-lib so that it can update independently of the Cordova tools and support third-party plugins outside of core. Our hope is that this feature will improve Cordova's plugin ecosystem and reduce some of the frustration that Cordova developers face when adding a new plugin to a project.
The following plugins were updated today:
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera@2.1.1 --save
Changes include:
We are happy to announce that Cordova Browser 4.1.0
has been released. It will be the default Browser version after the next cordova-cli
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update browser@4.1.0
To add it explicitly:
cordova platform add browser@4.1.0
We are happy to announce that we have made significant content updates to our documentation.
We are happy to announce that Cordova iOS 4.1.0
has been released!
This release addresses issue CB-10530, which was an issue with your apps periodically freezing directly after starting.
A new version of the cordova-cli
will need to be released to pin this version of cordova-ios as the default version when creating a new project. If you want to start using this version now, make sure to specify the version when doing a cordova platform add/update
.
To upgrade:
npm install -g cordova
cd my_project
cordova platform rm ios
cordova platform add ios@4.1.0
To add it explicitly:
cordova platform add ios@4.1.0
We are happy to announce that Cordova Android 5.1.1
has been released.
Cordova CLI 6.0.0 will automatically start using this version of Cordova-Android when creating new projects.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@5.1.1
To add it explicitly:
cordova platform add android@5.1.1
We are happy to announce that Cordova OSX 4.0.0
has been released! This was a much needed updated to get cordova-osx
working with the cordova-cli
. Try it out!
Add it to your projects via:
cordova platform add osx@4.0.0
The following plugins were updated today:
You can update any plugin by removing it, and then re-adding it.
E.g. To update your media plugin:
cordova plugin rm cordova-plugin-media --save
cordova plugin add cordova-plugin-media@2.2.0 --save
Changes include:
An important regression issue was discovered for cordova-plugin-inappbrowser
version 1.2.0
.
We are releasing version 1.2.1
of cordova-plugin-inappbrowser
to address
CB-10407: InAppBrowser not firing loadstart
event on Android. This release also includes some other improvements for Android, iOS and Windows platforms.
You can update the plugin by removing it, and then re-adding it.
cordova plugin rm cordova-plugin-inappbrowser --save
cordova plugin add cordova-plugin-inappbrowser --save
Changes include:
We are happy to announce that Cordova Windows 4.3.1
has been released!
This is a patch release which fixes a couple of small bugs related to plugins installation, and the significant issue that caused Windows 10 Universal apps to restart instead of resume in some cases.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.3.1
To add it explicitly:
cordova platform add windows@4.3.1
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guide.
New versions of cordova tools are now live!
Release Highlights include:
cordova-android@5
, cordova-ios@4
and cordova-windows@4.3
.
cordova-android@5.1
supports Android 6.X.X (Marshmallow) cordova-ios@4.0
adds iOS9 and WKWebView
supportcordova-windows@4.3
updated the platform to use the new Platform API.create
command. E.g. cordova create --template cordova-app-hello-world
. This can fetch templates via npm, git URL or local paths.cordova
. This means that cordova plugin add cordova-plugin-camera
will fetch the pinned version of the plugin instead of the always grabbing the latest
. Users can still install any version of a plugin via cordova plugin add cordova-plugin-camera@VERSION
.To update your tools:
If you have cordova
installed:
npm install -g cordova@latest
If you have plugman
installed:
npm install -g plugman@latest
We are happy to announce that Cordova Android 5.1.0
has been released.
This update introduces a new API for Android plugin authors. Plugins that launch external activities can now better handle method calls on devices that are low on memory. In that scenario, the Android OS will sometimes kill the Cordova Activity when it is pushed into the background by the external Activity. This causes the plugin to lose any callbacks they have pending in the javascript. The new API allows the results of external Activity calls to be delivered via the resume event that is fired in the javascript after the Cordova Activity is destroyed and recreated. Plugin authors wishing to implement the new API should read the updated plugin guide here.
Two core plugins support this new API and have been updated to fix longstanding bugs:
Application authors are encouraged to update both their plugin and cordova-android versions to take advantage of these bug fixes. Please note that the aforementioned fixes require changes to your application as well. More information can be found in the READMEs of each of those plugins and in the new Android lifecycle guide that has been published to the Cordova documentation. This guide provides explanations and guidance on how to handle low memory scenarios on the Android platform as well as integrate the new resume APIs into your application.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@5.1.0
To add it explicitly:
cordova platform add android@5.1.0
The following plugins were updated today:
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera --save
Changes include:
We are happy to announce that Cordova Windows 4.3.0
has been released!
This release mostly aims to bring support for Platform Api interface and unified message logging for Windows. It will be the default Windows version after the next cordova-cli
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.3.0
To add it explicitly:
cordova platform add windows@4.3.0
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
Cordova Ubuntu 4.3.3
has been released.
This is an important patch release, fixing a critical issue in the runtime. Developers are urged to update the Ubuntu platform support code of their app to this latest release immediately. This will ensure applications will continue to work with the latest Oxide 1.12 release in Ubuntu.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ubuntu@4.3.3
To add it explicitly:
cordova platform add ubuntu@4.3.3
We are happy to announce that Cordova Ubuntu 4.3.2
has been released. This is a patch release, with several usability improvements and an update of the default framework to ubuntu-sdk-15.04
.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ubuntu@4.3.2
To add it explicitly:
cordova platform add ubuntu@4.3.2
We are happy to announce that Cordova iOS 4.0.1
has been released. This is a patch release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ios@4.0.1
To add it explicitly:
cordova platform add ios@4.0.1
The following plugins were updated today:
This release brings cordova-ios@4.0.0
platform compatibility to the cordova-plugin-inappbrowser
plugin, and it is also backwards compatible with cordova-ios@3.
The cordova-plugin-wkwebview-engine
plugin was updated to fix a bug related to loading pages in cordova-plugin-inappbrowser
.
To install:
cordova plugin add cordova-plugin-inappbrowser --save
cordova plugin add cordova-plugin-wkwebview-engine --save
Changes include:
The following plugins were updated today:
This is the initial release of this plugin. This plugin requires cordova-ios@4.0.0
. Please read the iOS 4.0.0 release blog for instructions to update.
To install:
cordova plugin add cordova-plugin-wkwebview-engine --save
If you are thinking of migrating from using the UIWebView on iOS, please read the README and also take note of the limitations of this plugin.
Changes include:
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
New patch update of cordova-cli
and cordova
are now live!
We had to fix a few issues that were discovered with the recent 5.4.0 release.
To update your tools:
If you have cordova
installed:
npm install -g cordova@latest
The following plugins were updated today:
The following plugins now require cordova-android@5.0.0
. Please read the Android 5.0.0 release blog for instructions to update.
Since cordova-android@5.0.0
isn't yet pinned by default in cordova
, you will have to explicitly install these new versions of these five plugins now. The previous released versions of the above five plugins are still set to latest
on npm instead of these newly released versions. These will be set to latest
once we release cordova@6
which will have cordova-android@5.0.0
pinned.
E.g.
cordova plugin add cordova-plugin-camera@2.0.0 --save
To see what versions exist for a plugin, run npm info PLUGINNAME versions
.
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera --save
Changes include:
Updated 02/20/2016
Apache Cordova has re-visited CVE-2015-5256 "Apache Cordova vulnerable to improper application of whitelist restrictions on Android”. Upon further investigation we found that the vulnerability is more limited than was previously understood. We are lowering the severity to Low, and updating the description, affected versions, and upgrade path.
CVE-2015-5257 continues to be a valid vulnerability present in Cordova 3.6.4 and this is fixed in later versions of Cordova, and we want to encourage users to upgrade to 4.1.1 and for users needing to support Marshmallow (API 23+) we recommend to upgrade to Cordova Android 5.1.x.
When using the Cordova CLI, the command to use 4.1.1 or 5.1.0 of Cordova Android is:
cordova platform add android@4.1.0
cordova platform add android@5.1.0
The security issues are CVE-2015-5256 and CVE-2015-5257
For your convenience, the text of the CVEs are included here.
We are happy to announce that Cordova Windows 4.2.0
has been released!
This release adds support for back button handling on Windows 10 and
Windows Phone 8.1 and various other improvements. It will be the default
Windows version after the next cordova-cli
release.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.2.0
To add it explicitly:
cordova platform add windows@4.2.0
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
We are happy to announce that Cordova Android 5.0.0
has been released.
With this release, there is now support for Android Marshmallow permission checking in plugins. Due to the nature of the recent Android changes, the major version has been incremented to reflect the new API changes. Only plugins that use certain permissions as defined by Google are affected by this change. The following core plugins needed to be updated:
cordova-plugin-camera
cordova-plugin-geolocation
cordova-plugin-contacts
cordova-plugin-file
cordova-plugin-media
We are in the process of releasing these plugins to npm. If you decide to update to cordova-android@5.0.0
before we release the plugins, please install these updated plugins via git
for now.
cordova plugin add https://github.com/apache/cordova-plugin-camera.git
Information on how to use the new Android Permission APIs can be found in the Cordova documentation, which can be found here.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@5.0.0
To add it explicitly:
cordova platform add android@5.0.0
New versions of cordova tools are now live!
Release highlights:
cordova plugin add
. This only happens if the old-style plugin ID exists in the registry-mapper, it will be auto converted to the new ID and fetched from npm instead. CLI
will now know if a newer version is available and will prompt users to update.cordova-lib
have been moved into a new module named cordova-common
. cordova-common
is shared among cordova-lib
and cordova platforms.To update your tools:
If you have cordova
installed:
npm install -g cordova@latest
If you have plugman
installed:
npm install -g plugman@latest
We are happy to announce that Cordova iOS 3.9.2
has been released and will be the default iOS version.
This release addresses multiple iOS 9/9.1 and XCode 7/7.1 issues. It also deprecates a number of APIs, which will be removed in Cordova iOS 4.0.0
. For a full list of API changes see API changes in 4.0.md
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ios@3.9.2
Cordova tools 5.3.3 has been released to properly support Node v4.
If you are currently develop for the iOS platform and plan to use Node v4, we recommend you update to this release:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
A medium security issue was discovered for cordova-plugin-file-transfer plugin. We are releasing version 1.3.0
of cordova-plugin-file-transfer
to address this security issue. We recommend that all applications currently using an older version of this plugin to upgrade as soon as possible.
You can update the plugin by removing it, and then re-adding it.
E.g. To update your file-transfer plugin:
cordova plugin rm cordova-plugin-file-transfer --save
cordova plugin add cordova-plugin-file-transfer --save
The security issue is CVE-2015-5204.
For your convenience, the text of the CVE is included here:
New versions of cordova tools are now live!
To update your tools:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
Starting today, plugins.cordova.io has become immutable. Plugin authors are encouraged to move their plugins over to npm if they haven't already. Plugin authors should checkout our guide to transition over to npm here.
Users can start searching for cordova plugins which have moved over to npm on our new cordova npm search page.
Cordova CLI version 5.0.0 or higher is required to fetch plugins from npm. If you want to use the latest releases of plugins, please update your version of Cordova. Alternatively, older cli users can add plugins via git urls. Example:
cordova plugin add https://github.com/apache/cordova-plugin-camera.git
Make sure to checkout our previous blog post about moving plugins to npm if you missed it the first time around.
We are happy to announce that Cordova BlackBerry 3.8.0
has been released and will be the
default BlackBerry version after next cordova-cli
release.
This release adds support for adding blackberry10 platform on any workstation OS, adds subdomain whitelisting and includes several bug fixes.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update blackberry10@3.8.0
To add it explicitly:
cordova platform add blackberry10@3.8.0 --save
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
We are happy to announce that Cordova Windows 4.1.0
has been released and will be the
default Windows version after next cordova-cli
release.
This release aligns with the RTM release of Windows 10, and supports the web platform enhancements that it included, such as hosted apps and a new version of WinJS. It also supports the new .NET Native compilation model for Cordova plugins which include a native or .NET component.
There are also a number of bug fixes, including platform dependency problems and the ability to perform a cordova prepare
for Windows while on a Mac.
Finally, user-configurable packaging parameters are now fully baked, so that Windows code signing requirements don't overwrite code signing requirements for other platforms. Use the windows-packageVersion
attribute of <widget>
in config.xml to specify an independent version for Windows Store submission, and to incorporate the name of the application which is assigned by the Windows Store, set the <preference>
named WindowsStoreIdentityName
.
Now there is support to see console.log messages and exceptions from your app in the console. This can be useful for quick diagnostics. In an admin command prompt, you can run:
platforms\windows\cordova\log
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows@4.1.0
To add it explicitly:
cordova platform add windows@4.1.0 --save
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
New versions of cordova tools are now live!
Release highlights:
Plugman
publish
, unpublish
, addUser
and owner add/rm
commands due to plugins.cordova.io switching to read only. Plugin authors are encouraged to publish to npm instead. Learn more at http://plugins.cordova.io/npm/authors.html.clean
command to cordova-cli
. This cleans the build artifacts for your project. Run cordova clean -h
for more information.config.xml
via --save
flag.plugman platform add
--usegit
flag.--browserify
. EX. cordova run android --browserify
.To update your tools:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
We are happy to announce that Cordova iOS 3.9.0
has been released and will be the
default iOS version after next cordova-cli release.
UPDATE: To deploy to iOS devices, developers will have to update their ios-deploy
dependency to the version 1.4.0 or greater. Run npm install ios-deploy -g
to download
the latest release.
Apart from a number of bug fixes, there is now support for checking system requirements for iOS platform:
$>cordova requirements ios
Requirements check results for ios:
Apple OS X: installed darwin
Xcode: installed 6.3
ios-deploy: installed 1.7.0
ios-sim: installed 4.1.1
and support for Signing the App for iOS platform:
$>/path/to/my/project/cordova/build --codeSignIdentity="iPhone Distribtion" --provisioningProfile="926c2bd6-8de9-4c2f-8407-1016d2d12954"
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ios@3.9.0
We are happy to announce that Cordova Android 4.1.0
has been released.
With this release, there is now support for checking system requirements for Android platform:
$>cordova requirements android
Requirements check results for android:
Java JDK: installed 1.7.0
Android SDK: installed
Android target: installed android-19,android-21,android-22,Google Inc.:Google APIs:19,Google Inc.:Google APIs (x86 System Image):19,Google Inc.:Google APIs:21
Gradle: installed 1.12
Apart from a number of bug fixes, mininumSdkTarget has also been switched to 14 from 7. The minimum supported Android OS for Cordova is now Ice Cream Sandwich.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@4.1.0
To add it explicitly:
cordova platform add android@4.1.0
The following plugins were updated today:
New versions of cordova tools are now live!
Release highlights:
cordova requirements
commandcordova prepare --browserify
now supports 3rd party plugins to build your cordova.js
at run time! Try it out!To update your tools:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
Cordova tools 4.3.1 has been released to pin version 3.7.2 of the Android platform, which includes an important security update.
If you are currently using Cordova 4.x and develop for the Android platform, we recommend you update to this release:
npm install -g cordova@4.3.1
If you have existing projects that use Cordova Android 3.7.1 or earlier, you can update them to 3.7.2:
cordova platform update android@3.7.2
We are happy to announce that Cordova Windows 4.0.0 has been released!
windows-target-version
preference in config.xml set to 8.0, you will see this warning and you should consider changing it to 8.1.windows8
platform keyword is deprecated. For all plugins, use windows
as the platform keyword.A major Security issue were discovered in the Android platform of Cordova. We are releasing version 4.0.2 of Cordova Android to address these security issues. We recommend that all Android applications built using Cordova 4.0.x or higher be upgraded to use version 4.0.2 of Cordova Android. If you are using an older version of Cordova, we have also released 3.7.2 with the same fix, and we recommend that you at upgrade your project to either of these fixed versions. Other Cordova platforms such as iOS are unaffected, and do not have an update.
When using the Cordova CLI, the command to use 4.0.2 of Cordova Android is:
cordova platform add android@4.0.2
and the command to use 3.7.2 is:
cordova platform add android@3.7.2
The security issue is CVE-2015-1835
For your convenience, the text of the CVE is included here.
New versions of cordova tools are now live!
Release highlights:
<feature>
tags have been renamed to <plugin>
tags in your projects config.xml
. Adding a <plugin>
tag to your config.xml
will fetch and install it on cordova prepare
if it isn't already installed.config.xml
. When adding plugins or platforms, use the --save
flag to add them to config.xml
. Ex: cordova platform add android --save
. Existing projects can use cordova plugin save
and cordova platform save
commands to save all previously installed plugins and platforms into your project's config.xml
. Platforms and plugins will be autorestored when cordova prepare
is run. This allows developers to easily manage and share their dependenceis among different development enviroments and with their coworkers. To update your tools:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
The Apache Cordova team is happy to announce a new plugins release that coincides with us moving our core plugins to npm!
With the move over to npm, we have decided to rename our core plugins for improved readability and to better fit within the npm ecosystem.
org.apache.cordova.*
to cordova-plugin-*
.cordova plugin add cordova-plugin-device
.
Using the new ID will fetch the plugin directly from npm.Our current Cordova plugins registry (CPR) will continue to be operational for at least 6 months (October 15th, 2015
) as we help plugin developers transition over to npm.
This will also allow current Cordova developers to upgrade their CLI
to version 5.0.0 or higher.
July 15th, 2015
.To find plugins on npm, search for ecosystem:cordova.
We are working with npm to improve discoverability and will have more to announce later this year.
We encourage all third party plugin developers to add ecosystem:cordova
as a keyword in their plugin's package.json
.
We are happy to announce that Cordova Android 4.0.0
has been released!
This release adds significant functionality, and also introduces a number of breaking changes. Mostly though, it adds first-class support for Crosswalk -- a bundled modern WebView!
cordova-android@4.0.0
will be the default android 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 android@4.0.0
cordova plugin add https://github.com/apache/cordova-plugin-whitelist.git#r1.0.0
# To install Crosswalk (optional):
cordova plugin add https://github.com/MobileChromeApps/cordova-plugin-crosswalk-webview.git#1.0.0
New versions of cordova tools are now live!
To update your tools:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
Release highlights:
iOS-deploy
dependency to launch on iOS devices. Please run npm install -g ios-deploy
to install the latest version 1.4.0
.--save
command when adding platforms and plugins to your project.
Saved platforms and plugins are automagically restored during prepare.
Ex. cordova platform add android --save
.
This should make it easier developing cordova projects among a team.plugman createpackagejson <plugin_path>
to add a package.json
file to their plugins.We are happy to announce that Cordova Windows 3.8.0
has been released!
This release adds support for new Visual Studio 2015 Tools and has various other improvements. It will be the default Windows version when the cordova-cli 4.3.0 is released.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update windows
To add it explicitly:
cordova platform add windows@3.8.0
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
UPDATE: To deploy to iOS devices, developers will have to update their ios-deploy
dependency to the latest release. Run npm install ios-deploy -g
to download the latest release of version 1.4.0
.
We are happy to announce that Cordova iOS 3.8.0
has been released!
This release has various bug fixes, and will be the default iOS version when the cordova-cli 4.3.0 is released. This release also requires Xcode 6.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ios
To add it explicitly:
cordova platform add ios@3.8.0
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
The following plugins were updated today:
The plugins have been updated on our registry at plugins.cordova.io.
You can update any plugin by removing it, and then re-adding it.
E.g. To update your camera plugin:
cordova plugin rm org.apache.cordova.camera
cordova plugin add org.apache.cordova.camera
Changes include:
We are happy to announce that Cordova Android 3.7.1
has been released!
This release has numerous bug fixes, and sets the target-sdk to android-21 (which yields a pretty good graphics speed-up on Lollipop devices!). It will be the default Android version when the cordova-cli 4.1.0 is released.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update android@3.7.1
To add it explicitly:
cordova platform add android@3.7.1
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
New versions of cordova tools are now live!
To update your tools:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
The following plugins were updated today:
The plugins have been updated on our registry at plugins.cordova.io.
You can update any plugin by removing it, and then readding it. E.g. To update your camera plugin:
cordova plugin rm org.apache.cordova.camera
cordova plugin add org.apache.cordova.camera
Changes include:
Apple has recently announced that new and updated apps submitted to the Apple App Store must include 64-bit support for them to be approved. This change will be implemented by the Apple App Store starting February 1, 2015.
This means that starting at that time, Cordova-based apps should be built using a version of Cordova that has 64-bit iOS support.
The first version of Cordova to include 64-bit for iOS is 3.4.1. Therefore, to meet these requirements of the Apple App Store, you should be using at least version 3.4.1 of Cordova before this February deadline.
While developing mobile apps with Cordova, performance is a common concern many developers have. Though recent WebView improvements have made smooth experiences easy to achieve, it is always important to watch out for code in our apps that may make the app janky.
The latest versions of Android and iOS WebViews can connect to and leverage developer tools in browsers for profiling rendering performance of apps. Developer tools provide insights into details like frames rates, repaints, layouts, etc.
Articles (like my performance audit workflow and the runtime performance checklist) articulate the typical workflow for auditing performance of webpages. Similar principles can be applied to apps too.
New versions of cordova tools are now live!
To update your tools:
If you have cordova
installed:
npm install -g cordova
If you have plugman
installed:
npm install -g plugman
A certificate in the Windows platform template has expired on 11/11/2014 and as a result, building Windows using the Cordova CLI currently fails. This affects all existing projects and any new projects created using the command line prior to Cordova versions <= 4.0.0
.
Note that this does not affect the WP8 platform.
When building Cordova for Windows, you may seen an error message that looks something like this
cordova run windows
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage\Microsoft.AppXPackage.Targets(1772,9): error APPX0108: The certificate specified has expired.
For more information about renewing certificates, see http://go.microsoft.com/fwlink/?LinkID=241478.
This issue will be fixed in the next release of the Cordova CLI
However, to ensure that you can continue building your existing Cordova projects for Windows till then, please replace the expired certificate located at yourCordovaProject\platforms\windows\CordovaApp_TemporaryKey.pfx
with a new one from here. Ensure that the downloaded file is renamed to CordovaApp_TemporaryKey.pfx
We are happy to announce that Cordova Windows & WP8 3.7.0
has been released!
This release has various bug fixes.
It will be available in the next cordova-cli release (Cordova CLI 4.1.0), which is expected in a few days.
To upgrade (once CLI update is released):
npm install -g cordova
cd my_project
cordova platform update windows
To add it explicitly (available now):
cordova platform add windows@3.7.0
cordova platform add wp8@3.7.0
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
We are happy to announce that Cordova iOS 3.7.0
has been released!
This release has various bug fixes, and will be the default iOS version when the cordova-cli 4.1.0 is released. This release also requires Xcode 6.
To upgrade:
npm install -g cordova
cd my_project
cordova platform update ios
To add it explicitly:
cordova platform add ios@3.7.0
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
The following plugins were updated today:
Notable changes include:
iPhone 6/6+
support for cordova-splashscreen
pluginMobile
to Cellular
for cordova-network-information
plugin.cordova-media-capture
plugin getPreferredLanguage()
and getLocaleName()
for cordova-globalization
plugin.ms-appdata URIs
for cordova-file-transfer
plugin The plugins have been updated on our registry at plugins.cordova.io.
You can update any plugin by removing it, and then readding it. E.g. To update your camera plugin:
cordova plugin rm org.apache.cordova.camera
cordova plugin add org.apache.cordova.camera
Other changes include:
We are happy to announce that Apache Cordova CLI 4.0
has been released!
We have also released Cordova-Browser 3.6.0
, Cordova-Android 3.6.4
, Cordova-Windows 3.6.4
, and Cordova-WP8 3.6.4
.
Most notable changes include:
4.0.0
to reflect our changes in release policy.--target
flagTo upgrade: (replace android
with the platform you want to update):
npm install -g cordova
cd my_project
cordova platform update android
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
We have recently decided to update our release process to include independent releases for platforms. This means that our platform maintainers can release updates when they need to and not have to wait for other platforms to be ready to release.
The following plugins were updated today:
Notable changes include:
The plugins have been updated on our registry at plugins.cordova.io.
We are happy to announce that Apache Cordova 3.6
has been released!
Most notable changes include:
To upgrade: (replace android
with the platform you want to update):
npm install -g cordova
cd my_project
cordova platform update android
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
While preparing the 3.6.0 release, the release candidates were published to a write-once repository. When it was discovered that the release candidates needed to be updated, we were unable to modify the write-once repository, so we were forced to bump the version number. This is why all the 3.6 cadence release items are labelled as "3.6.3". So 3.6.3 is the first release of the 3.6.x version. Apologies for the confusion.
An updated version of cordova
and cordova-lib
are available starting today.
To update your tools:
npm install -g cordova
These contain only one minor function change, which is related to the recent release of Cordova Android 3.5.1. Before today's update, when adding the Android platform to a project, by default it would use version 3.5.0 of Cordova Android. In order to get the latest 3.5.1 of Cordova Android, you would need to manually specify the 3.5.1 version number on the platform add
command. Today's update changes the default version of Cordova Android used when adding the Android platform to a project, so that you no longer need to manually specify the 3.5.1 version number to get the 3.5.1 version. You'll now get 3.5.1 by default.
The following plugins were updated today:
Notable changes include:
The plugins have been updated on our registry at plugins.cordova.io.
You can update any plugin by removing it, and then readding it. E.g. To update your file plugin:
cordova plugin rm org.apache.cordova.file
cordova plugin add org.apache.cordova.file
Other changes include:
On Monday, we released Cordova Android 3.5.1, to address a couple of security issues. Afterwards, talking with the original researchers, we realized that the text of the security announcement that went out wasn't quite right, so we've amended it.
You can read the amended blog post here.
The issue in CVE-2014-3502 is that Cordova applications would, by default, pass any URLs that they couldn't load to the Android intent system for handling. This lets developers construct URLs that open email applications, maps, or send SMS messages, or even open web pages in the system browser, but it also allowed malicious URLs that could potentially open other applications on the device. This meant that if someone could execute their own JavaScript in your application, that they could use other applications on the device to "phone home" with the user's data. This is why we are recommending that all Android developers upgrade to Cordova 3.5.1.
Updated: 2014-08-06 (The text of CVE-2014-3502 was changed after this post was released, to better explain the cope of the issue and the ways to mitigate the problem)
Security issues were discovered in the Android platform of Cordova. We are releasing version 3.5.1 of Cordova Android to address these security issues. We recommend that all Android applications built using Cordova be upgraded to use version 3.5.1 of Cordova Android. Other Cordova platforms such as iOS are unaffected, and do not have an update.
When using the Cordova CLI, the command to use 3.5.1 of Cordova Android is:
cordova platform add android@3.5.1 --usenpm
The security issues are CVE-2014-3500, CVE-2014-3501, and CVE-2014-3502.
For your convenience, the text of these CVEs is included here.
New versions of plugman
, cordova
and cordova-lib
are now live!
To update your tools:
npm install -g cordova
npm install -g plugman
Most notable changes are:
cordova save plugins --experimental
cordova restore plugins --experimental
browserify
to package our cordova.js
build artifact. This is an internal change to our tooling, and is currently still off-by-default. We would appreciate feedback since we hope to switch to on-by-default in a future release. Try it using plugman as:
plugman (un)install --browserify --project [PROJECT] --plugin [PLUGIN] --platform [ios|android]
Other changes include:
The following plugins were updated today:
Notable changes include:
navigator.contacts.pickContact
API has been added for Android, iOS, Windows Phone 8 and Windows 8 platformsnavigator.contacts.find
API on Android, iOS and Windows Phone 8 now supports desiredFields
which specifies contact fields to be returnedThe plugins have been updated on our registry at plugins.cordova.io.
You can update any plugin by removing it, and then re-adding it. E.g. To update your contacts plugin:
cordova plugin rm org.apache.cordova.contacts
cordova plugin add org.apache.cordova.contacts
Other changes include:
The following plugins were updated today:
Notable changes include:
cordova.file.*
(iOS & Android, refer to docs)CONTRIBUTING.md
)The plugins have been updated on our registry at plugins.cordova.io.
You can update any plugin by removing it, and then readding it. E.g. To update your file plugin:
cordova plugin rm org.apache.cordova.file
cordova plugin add org.apache.cordova.file
Other changes include:
We are happy to announce that Apache Cordova 3.5
has been released!
Most notable changes include:
cordova-cli
& cordova-plugman
has been moved into its own repo named cordova-lib
. package.json
file and has been uploaded to npm
. Future updates to the cordova-cli
will make use of npm
instead of git
for loading platforms.arm64
. New projects are built as a universal binary (64 and 32-bit), and require a minimum deployment target of iOS 6.0.To upgrade: (replace android
with the platform you want to update):
npm install -g cordova
cd my_project
cordova platform update android
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
Other changes include:
The following plugins were updated today:
Many of these are minor, or only relevant to a couple of platforms. However, some notable changes include:
statusbar
is now a core Cordova plugin, and now includes support for Windows Phonesplashscreen
now includes support for Tizenfile
now produces webview-compatible URLs (file:///) URLs by default when calling .toURL
file
includes much of the functionality of the file-system-roots
plugin, and allows access to all files on the device (except those blocked by the OS)clearcache
and clearsessioncache
like Androidmedia-capture
which prevented it from being used with the file
pluginThe plugins have been updated on our registry at plugins.cordova.io.
E.g. To update your file plugin:
cordova plugin rm org.apache.cordova.file
cordova plugin add org.apache.cordova.file
Other changes include:
New versions of plugman
, cordova
and cordova-ios
are now live!
To update your tools:
npm update -g cordova
npm update -g plugman
Cordova iOS 3.4.1 is included with the latest update of cordova
.
Most notable changes include:
.pbxproj
files according to Xcode 5.1 recommendationsarm64
by defaultplugin add
for FirefoxOS.cordova info
command fixed for Windows platformOther changes include:
New versions of plugman
and cordova
are now live!
To update your tools:
npm update -g cordova
npm update -g plugman
Most notable changes include:
plugman create
for generating a plugin template (CB-4886)cordova prepare
after installing a plugin (CB-5647)cordova
now shows output of builds and hook scriptsOther changes include:
The following plugins were updated today:
Notable changes include:
file
pluginfile-transfer
trustAllHosts on iOS (was true, is now false)inappbrowser
on iOS being able to run code within the host UIWebViewThe plugins have been updated on our registry at plugins.cordova.io.
E.g. To update your file plugin:
cordova plugin rm org.apache.cordova.file
cordova plugin add org.apache.cordova.file
Other changes include:
We are happy to announce that Cordova 3.4
has been released!
This release has various bug fixes for all of our supported platforms.
Our friends at Mozilla have put together a blog post about getting started with Cordova Firefox OS. Check it out at https://hacks.mozilla.org/2014/02/building-cordova-apps-for-firefox-os/.
To upgrade: (replace android
with the platform you want to update):
npm install -g cordova
cd my_project
cordova platform update android
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
The following plugins were updated today:
The most noticeable changes in this release are to the File plugin. It has been revamped to use a new URL scheme cdvfile://localhost/<filesystemType>/<path to file>
. These URLs are generated by all file operations, and are passed over the bridge to native code. (This is in contrast to the previous version, which passed around absolute paths on the device filesystem).
Most of these changes are to bring us more in line with the HTML Filesystem standard, although they will also allow us to extend the filesystem abstraction to cover new kinds of storage, both internal and external to devices.
Other changes include:
It's been a long time since our last tools release, but it's certainly no sign of stagnation. Today's release is action packed!
To update your tools:
npm update -g cordova
npm update -g plugman
This release brings with it a plethora of bug fixes as well as some new features! Notably:
config.xml
now lives at the project root by default (instead of within www/
)hooks
now lives at the project root by default (instead of within .cordova
)www/
to use when creating a new project with --link-to
or --copy-from
cordova
and plugman
to search for plugins locally using --searchpath
Full list of release notes:
The following plugins were updated today:
With this release, documentation for plugins have moved from
http://cordova.apache.org/docs to the doc/
directory
within plugins themselves. Eventually, docs will be available online through
plugins.cordova.io. Until then, they will be viewable online
via github.
Aside from documentation, changes include:
On Friday, Cordova 3.3
went live on npm. Woohoo!
This release brings with it initial support for Ubuntu Touch as well as Amazon Fire OS!
To upgrade: (replace android
with the platform you want to update):
npm install -g cordova
cd my_project
cordova platform update android
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
The Apache Cordova team has just released the first release candidate for Cordova 3.3.0! We will be aiming to release the final version near the end of next week! Just in time for some holiday hacking!
Now we ask you, our community, to please download and help us test!
Installing cordova for the first time:
npm install -g cordova@3.3.0-rc.1
Updating your current version of cordova:
npm update -g cordova@3.3.0-rc.1
Example of updating your current cordova android project to the latest version:
cd cordovaApp
cordova platform update android
Issues can be reported at https://issues.apache.org/jira/browse/CB
We will release a changelog with the offical 3.3.0 release when it ships!
Today we are doing a plugins release in preparation for Cordova 3.3.0. Most plugins now have support for our upcoming platform additions, Amazon Fire OS & Ubuntu! Most notable changes include:
The plugins have been updated on our registry at plugins.cordova.io.
The new & improved file plugin did not get released with todays release. It requires more work & testing. We hope to have it out before 3.3.0 lands next week.
The Apache Cordova team has just released Cordova 3.2.0. Woo Hoo! This release has various bug fixes and enhancements for all of the platforms.
To upgrade to a 3.2 project (replace android
with the platform you want to update):
npm install -g cordova
cd my_project
cordova platform update android
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
We are in the process of fixing Android 4.4 (KitKat) related bugs. If you want to develop for KitKat, please read our KitKat blog post.
Two known issues can be found at CB-5398 and CB-5294.
Please report any bugs on our issue tracker.
Android KitKat brings a massive update to the system WebView. This is terrific news for Cordova developers, as initial reviews give it a big thumbs up.
Update: The following is not actually true. It was an issue with a release candidate, but does not manifest in the final version of the WebView.
However, the update introduced a bug in Cordova applications
that were built with Cordova versions prior to 3.1.0
, or 2.9.1
which can cause native bridge callbacks to not be received until another one is made
(e.g. by switching in & out of the app). We strongly encourage all apps to
update their Cordova version,
or to directly apply the fix to
cordova-android and
cordova-js.
The Apache Cordova team has just released the first release candidate for Cordova 3.2.0! Barring no hiccups, we will be aiming to release the final version later this week. Now we ask you, our community, to please download and help us test! We want this to be the most solid release yet!
Installing cordova for the first time:
npm install -g cordova@3.2.0-rc.1
Updating your current version of cordova:
npm update -g cordova@3.2.0-rc.1
Example of updating your current cordova android project to the latest version:
cd cordovaApp
cordova platform update android
Issues can be reported at https://issues.apache.org/jira/browse/CB
We will release a changelog with the offical 3.2.0 release when it ships!
The Apache Cordova team has just released Cordova 2.9.1. Wait what?! You read right! We have backported some bug fixes to the Cordova 2 series for all of you that haven't upgraded to the Cordova 3 series yet. Hurray! Among other fixes, this release backports iOS 7 support.
Users can download the source zip from https://www.apache.org/dist/cordova/cordova-2.9.1-src.zip
We will continue to backport fixes for a few more months, but we highly suggest upgrading to the Cordova 3 series.
Today we are doing a plugins and tooling release in preparation for Cordova 3.2.0. Most notable changes include:
The plugins have been updated on our registry at plugins.cordova.io.
Cordova 3.0 saw a major shift towards plugins. As part of this shift, we're focusing on making plugins easy to use and, equally importantly, easy to discover. App developers want to know what plugins are available to them, and plugin developers want their plugins to be visible to the community.
Our solution, which has been alluded to in previous posts, is the Cordova plugin registry. Using the Cordova CLI, app developers can add plugins to their projects with a single command.
Today we are doing a release for the plugins that have been updated since our last release. We are also excited to announce three new plugins that have recently been added to our registry.
The new plugins include:
The following plugins have been updated for this release:
These plugins have been updated on our registry at plugins.cordova.io.
The Apache Cordova team has just released Cordova 3.1.0. Hurray! Most notable changes include:
To upgrade a 3.0 project (replace android
with the platform you want to update):
npm install -g cordova
cd my_project
cordova platform update android
For non-CLI projects or for pre-3.0 projects, refer to the upgrade guides.
Today we are doing a plugin release in preparation for Apache Cordova 3.1.0, which is scheduled to be released later this week.
The main change for this release is removing 'core' from the plugin ID fields. This was done to make installing plugins simpler in 3.1.0. We are switching over to using plugin IDs and our plugin registry for plugin installation instead of directly installing from the plugin git urls.
These plugins are compatible with Cordova 3.0.0. Feel free to upgrade your current plugins if you can't wait for 3.1.0 next week. Keep in mind that after you install these updated plugins, if you decide to remove these plugins from your project, you will have to reference the new IDs instead of the old ones that our docs show.
E.g. To update your camera plugin:
cordova plugin rm org.apache.cordova.core.camera
cordova plugin add org.apache.cordova.camera
Last week Cordova saw 83 commits come in from 24 different authors. No releases were made, but attention was spent on adding Firefox OS support, translating docs, and fixing bugs.
Last week Cordova saw 39 commits come in, plugman
reached version 0.11.0
, and CLI
reached 3.0.9
.
plugman
now has initial support for Windows Phone, plugin URLs can now
specify a git hash and subdirectory,
and <engine>
tags are now enforced.
There was also good progress made towards launching our Plugin Registry.
Apache Cordova is going global! Apache Cordova is already being used by developers all over the world and now, we are proud to announce, the Apache Cordova documentation will be translated into a number of languages. But we need your help! With the support of Crowdin, a translation and localization management platform, translators can login to the easy-to-use tooling and provide as much or as little translation assistance as they would like. If you know another language please support Cordova and contribute.
http://crowdin.net/project/cordova
Email ldeluca@apache.org for more information.
It went live on Friday! Snapshot available on our download page but before downloading please read on to find out whats new including for more ways to work with Cordova!
Cordova 3 introduces a new unified project structure and ships with a very limited API surface. Developers can now compose a version of Cordova with only the APIs they need. In the past, Cordova shipped with the entire kitchen sink of APIs that most applications only needed a small subset of. This lead to messy, and often not even necessary, upgrading for our community. With the release of Cordova 3 you start with a very light weight core and only add the API surface your application requires. Obviously, this means a performance improvement but the real win here is maintenance and upgrading. We'll continue to maintain "core" APIs which are the same device APIs you've come to know and love.
We're very excited to share two new command line tools: Cordova and Plugman. Both are implemented using NodeJS
and thusly distributed via npm
. The cordova
command line tool has been a long time coming. It unifies all platforms into a single project structure, making it easy to maintain a single codebase for multiple platforms. The cordova
tool builds off of our other new tool: plugman
, which provides automated discovery, installation, and removal of both core and custom plugins.
We've been testing for months but keep in mind both tools are new. Bugs happen, so you if you find one or even just have an idea for a new feature please visit our issue tracker.
Cordova now has a Blog! Look here to stay up-to-date with what's happening with the project. There is a major release 3.0 just around the corner (July 19, 2013), and we are really excited about it!
Be sure to subscribe using RSS