The beginning of a new year is always a good opportunity for a project to reflect on the past year and make plans for the one ahead. As we wrapped up 2024, we had an idea that we’re excited to share: hosting another community meetup for Cordova.
This meetup will be an excellent chance to recap the recent releases and highlight some upcoming tasks. 2024 saw some promising contributions from new developers, and we’ve noticed growing interest in our project. This makes the meetup the perfect time to onboard new contributors and strengthen our community.
Without more committers, it will become increasingly challenging to maintain a steady release cycle and address the needs of our users. By bringing together experienced contributors and newcomers, we aim to foster collaboration and make future releases smoother. The release process is vital but can often feel overwhelming within the ASF framework. To address this, we are exploring ways to simplify it and provide clearer guidance to our community, making participation more accessible for everyone. Stay tuned!
The meetup will be held virtually on Jitsi for participants worldwide. After signing up on our meetup page, you’ll receive detailed instructions on how to join. Whether you’re a seasoned contributor or just starting to explore Cordova, we encourage you to participate.
Let’s kick off 2025 with a strong sense of community and a shared vision for Cordova’s future. We’re looking forward to seeing you there!
We are happy to announce that we have just released an update for cordova-plugin-file
!
To upgrade:
cordova plugin remove cordova-plugin-file
cordova plugin add cordova-plugin-file@8.1.3
This patch fixes an issue with FileEntry.toURL()
on iOS devices when the app
is hosted through schemes. The intent for this API is to produce a URL that
can be used in the DOM, like image tags for example. However, iOS devices always
produced file://
URIs which is not usable when the webview is configured to
use schemes.
Starting with 8.1.3, FileEntry.toURL()
will produce an app-scheme URI if the
iOS webview is configured to use app schemes, or a file://
uri otherwise.
This brings the behaviour closer to Android's implementation.
Please report any issues you find by following the How to File a Bug guide!
We are happy to announce that we have just released a major update for cordova-plugin-camera
!
To upgrade:
cordova plugin remove cordova-plugin-camera
cordova plugin add cordova-plugin-camera@8.0.0
This is a major update as it includes some breaking public API mechanisms, for the better!
The breaking changes includes:
Additionally the allowEdit
feature is now deprecated. See more details.
The Camera plugin previously was very inconsistent with the return paths when
using getPicture
API. Sometimes it was file://
uri, sometimes it was a raw
file path. Applications would have to check and usually prefix the path
themselves to make any use of them. So we've streamlined the returned data as
URIs.
All platforms consistently return a <scheme>:...
now.
For all platforms, when using the DATA_URL
option, the returned base64 encoded
image used to return just the base64 encoded part. As of v8.0.0, the returned
string now includes the data:
uri header, including the MIME type that the
base64 data represents.
For iOS, file://
uris were always previously returned consistently therefore,
no changes were made here.
For Android, the API behaved consistently depending on the underlying source of
the content. Most of the time a raw file path was returned. It will now always
return a URI of some sort, though unlike iOS, it is unsafe to assume it will be
a file://
uri.
If you were testing and prefixing your file paths, you are no longer required to.
All URIs returned when using FILE_URI
option is resolvable by
cordova-plugin-file@8.1.2` and later.
For examples on how to use the results, see the Camera Plugin Documentation
For all platforms using FILE_URI
option, the returned URI is temporarily access only.
When sourcing content from the camera, the file is stored in the app's temporary directory, which the OS may clear out at any time when disk space is sparse.
When sourcing content from the user's gallery, the returned URI has a temporarily read permission provided by the OS which expires typically once the application exits.
This means that the URI returned by getPicture
should not be stored. The
application should decide what to do with it depending on their needs and
requirements.
Example 1: The application is receiving an image for the user's profile picture and it will require persistent access to that content.
Solution: The application should copy the content to the app's data directory and store and use the copied URI instead.
Example 2: The application is receiving an image to edit or make manipulations. It just needs one-time read to load into memory to put the data in an image editor.
Solution: The application can safely use the temporarily URI to read and display the content and save the manipulated data later.
For Android 7 - 12, this plugin used to always include the WRITE_EXTERNAL_STORAGE
permission, and for implementation reasons it was required to operate.
As of v8.0.0, the Camera plugin no longer automatically includes the permission declaration, as in most cases it is no longer required.
If your application enables the saveToPhotoAlbum
option, then you'll need to
add the following to the config.xml
file:
<platform name="android">
<config-file target="AndroidManifest.xml" parent="/*" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
</config-file>
</platform>
If your application does not use saveToPhotoAlbum
, then your application does
not require any permissions to operate both the camera, or picking from the
user's gallery.
Attempting to use saveToPhotoAlbum
without declaring the WRITE_EXTERNAL_STORAGE
will result in an error being returned on Android 7, Android 8, and Android 9 devices.
The allowEdit
feature when capturing images from the camera, or selecting
images from the gallery is now deprecated. Behaviour of this feature was
inconsistent across platforms, and often times is unreliable as it was dependent
on support of the underlying Camera application which was not standard.
The feature still exists for the time being and should work as-is given it's
documented caveats, but Apache Cordova will no longer provide support for issues
arising from using the feature. The allowEdit
option is scheduled to be
completely removed at a later date with no direct replacement.
Users using the allowEdit
feature should move to a dedicated image
manipulation library.
The FileEntry.toURL
method on iOS does not produce a DOM-usable uri while
the application is configured to use schemes. A fix
for this will be available at an later date. In the meantime, the following can
be used as a workaround:
// TODO: Remove when https://github.com/apache/cordova-plugin-file/pull/642 is released
function toDomURL(fileEntry) {
if (cordova.platform === "ios") {
return window.WkWebView.convertFilePath(fileEntry.nativeUrl);
}
else {
return fileEntry.toURL();
}
}
If your app is still hosted on the file://
protocol on iOS, then the
workaround is not necessary.
Android will start returning content://
instead of file://
URIs when
selecting images from the user's gallery in order to make use of the underlying
MediaStore APIs. In order for these paths to be resolvable to a DOM-usable URL,
the AndroidInsecureFileModeEnabled
preference must be "false"
(the default value).
Please report any issues you find by following the How to File a Bug guide!
We are excited to announce the release of cordova-lib
.
To upgrade:
If Cordova CLI is installed globally:
npm uninstall -g cordova
npm install -g cordova@latest
If Cordova CLI is installed locally within your project:
npm uninstall cordova
npm install cordova@latest
In this patch release, we have introduced several fixes. The most notable changes are:
Please report any issues you find by following the How to File a Bug guide!
We are happy to announce that we have just released an update for cordova-plugin-file
!
To upgrade:
cordova plugin remove cordova-plugin-file
cordova plugin add cordova-plugin-file@8.1.2
This patch is a regression fix. See 8.1.1 release blog post for more details.
In 8.1.1, the FileEntry.toURL()
method broke when used on any file://
that didn't lead to the app's internal assets on Android. This is now corrected.
This bug didn't effect iOS devices.
Please report any issues you find by following the How to File a Bug guide!
We are happy to announce that we have just released an update for cordova-plugin-file
!
To upgrade:
cordova plugin remove cordova-plugin-file
cordova plugin add cordova-plugin-file@8.1.1
For Android, we corrected an issue that prevented .toURL()
to be used on content://
file entries. Now .toURL()
will return a DOM-usable url on both file://
and content://
file entries.
This will be important for upcoming releases planned for the Camera plugin.
Note that the AndroidInsecureFileModeEnabled
preference must be off. If AndroidInsecureFileModeEnabled
preference is turned on, then .toURL()
will return the underlying URL and modern Android devices will reject content://
file paths. If your project is still using AndroidInsecureFileModeEnabled
it is time to strongly consider migrating to schemes by turning the AndroidInsecureFileModeEnabled
preference off.
By default, the AndroidInsecureFileModeEnabled
preference is disabled. If your project does not explicitly enable it, then no action is required.
For iOS, there are no changes.
Edit (2024-10-28): This patch introduces a regression on Android platforms when resolving .toURL()
on some file://
URIs. Please use upgrade to cordova-plugin-file@8.1.2
instead.
Please report any issues you find by following the this How to File a Bug guide!
We are happy to announce that we have just released a beta for the next Cordova iOS version. This is Cordova iOS 8.0.0-beta.1!
This is a developer preview of Cordova's supported platforms for building iOS applications. The intention of this beta release is for plugin authors and app developers to test their plugins and projects and provide feedback and bug reports before the final release of Cordova iOS 8.0.0. This version includes several breaking API changes and project structure changes, which is why we are providing this beta release for testing purposes.
This beta is not intended to be used for production App Store submissions.
For plugin authors, we've written a guide about Upgrading Plugins to Cordova iOS 8.x.
To test an upgrade in your projects:
cordova platform remove ios
cordova platform add ios@8.0.0-beta.1
To install for testing:
cordova platform add ios@8.0.0-beta.1
App
.The full changelog is available to read here. Please report any issues you find on our Cordova-iOS GitHub issue tracker!
We are happy to announce that we have just released Cordova iOS 7.1.1
! This is one of Cordova's supported platforms for building iOS applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@7.1.1
To install:
cordova platform add ios@7.1.1
Properly uninstall plugins with asset tags
Fixed issues where plugins were not uninstalling properly if the plugin had <asset>
tags defined in plugin.xml
.
Version warnings during plugin add
Fixed an issue that displayed version check failure warnings when installing plugins.
Moved CODE_SIGN_ENTITLEMENTS
to the target settings of the application target within the Xcode project.
Please report any issues you find on our Cordova-iOS GitHub issue tracker!
We are happy to announce that we have just released Cordova Android 13.0.0
! This is one of Cordova's supported platforms for building Android applications.
To upgrade:
cordova platform remove android
cordova platform add android@13.0.0
To install:
cordova platform add android@13.0.0
Increased Target SDK
This release has increased the target SDK to 34 (Android 14).
Increased Android Studio Requirement
Android Studio Jellyfish is required if building and running from Android Studio.
Required Build Tools
To use cordova-android@13
, SDK Platform 34
and SDK Build Tools 34.0.0
must be installed. Older build tools version can be uninstalled if older versions of cordova-android is no longer used in your projects.
To install SDK Platform 34:
SDK Platforms
tabAndroid 14.0 ("UpsideDownCake")
which has the API Level
of 34
Apply
To install SDK Build Tools 34.0.0:
SDK Tools
tabShow Package Details
Android SDK Build-Tools
34.0.0
Apply
Project Dependencies
The following project dependencies were bumpped:
1.9.24
8.7
8.3.0
If you or a plugin has made changes to any of the following configuration preferences, the build results might not match the expected outcomes with this release:
Preference | Default Value |
---|---|
android-minSdkVersion |
24 |
android-maxSdkVersion |
Not set |
android-targetSdkVersion |
34 |
android-compileSdkVersion |
android-targetSdkVersion configured value |
android-buildToolsVersion |
34.0.0 |
GradleVersion |
8.7 |
AndroidGradlePluginVersion |
8.3.0 |
GradlePluginKotlinVersion |
1.9.24 |
Please take note of the versions that have been updated in this release. If you have manually modified any of these values, it is recommended to review and update the preference values accordingly.
Increased Java Requirement
The Java Development Kit (JDK) requirement has been increased to version 17 due to the new versions of dependencies and tooling previously described.
Removed kotlin-android-extensions
kotlin-android-extensions
will no longer be checked out when kotlin is greater than or equal to version 1.8.0
.
Added SplashScreenBackgroundColor
Preference Support
Added support for a general preference to be consistent across platforms for setting the splash screen background color.
The following order of priority is applied when it comes to the Cordova Android platform:
AndroidWindowSplashScreenBackground
preferenceSplashScreenBackgroundColor
preferenceBackgroundColor
preference#ffffff
hardcodedAdd Camera Intent Support for File Input Capture
Allows user to access and use the camera when the HTML file input
tag contains the capture
flag.
Example:
<input type="file" capture />
Added ResolveServiceWorkerRequests
Preference Support
Added a preference that makes it possible for service worker requests to go through the asset loader. By default this is enabled.
This can be disabled with the following preference.
<preference name="ResolveServiceWorkerRequests" value="false" />
Please report any issues you find on our Cordova-android GitHub issue tracker!
We are happy to announce that we have just released Cordova iOS 7.1.0
! This is one of Cordova's supported platforms for building iOS applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@7.1.0
To install:
cordova platform add ios@7.1.0
SplashScreenBackgroundColor
preference support
This preference allows you to set the splashscreen's background colour. If no SplashScreenBackgroundColor
is provided, it will fall back to the BackgroundColor
, which is the current behavior, and then fallback to the system background colour when nothing is defined.
privacy-manifest
Support
This release supplies the templated blank privacy manifest file, PrivacyInfo.xcprivacy
which can be configured from config.xml
.
This release focuses specifically on providing support for app developers to set this configuration, while a later release will introduce support for plugin developers.
It is recommended that plugin developers help app developers by providing in their plugin documentation the necessary configuration setup.
Below is an example config.xml entry that app developers can define to configure the privacy manifest file.
<platform name="ios">
<privacy-manifest>
<key>NSPrivacyTracking</key>
<true/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array/>
<key>NSPrivacyTrackingDomains</key>
<array/>
</privacy-manifest>
</platform>
The contents and values of NSPrivacyTracking
, NSPrivacyCollectedDataTypes
, NSPrivacyAccessedAPITypes
, and NSPrivacyTrackingDomains
will depend on the specific native APIs being utilized.
It is recommended to read the Apple Developer documentation to better understand these parameters.
Use PROVISIONING_PROFILE_SPECIFIER
for manual codesigning
Allows you to use either the UUID or name value from the provisioning profile for the build flag provisioningProfile
in either the build.json
configuration file or via the CLI command.
WASM MIME type error
Enables WebAssembly support in Cordova WebView.
Please report any issues you find on our Cordova-iOS GitHub issue tracker!
We are happy to announce that we have just released Cordova Electron 4.0.0
! This is one of Cordova's supported platforms for building Electron applications.
To upgrade:
cordova platform remove electron
cordova platform add electron@4.0.0
To install:
cordova platform add electron@4.0.0
Some of the notable breaking changes in this release are:
Node.js Requirement:
This release requires the environment to have Node.js 18.0.0
or higher. It is recommended to use the current LTS, which is 20.11.1
at the time of this release.
Electron Update:
The Electron core dependencies have been updated to 29.0.0
. This version of Electron comes with the following app stack:
More information about Electron 29.0.0 can be read on their blog post here.
Removed Plugin Argument's Accidental Multidimensional Array Wrapping:
In Cordova-Electron 3.0.0, plugin support was introduced, but an unintentional multidimensional array wrapping of the plugin arguments occurred. This wrapping may not have been noticeable to app developers, but it affected plugin developers.
Typically, a plugin includes a set of APIs that may accept arguments, and these arguments are forwarded to the native side of the plugin. Due to improper argument spreading, plugin developers had to consistently access index 0 at the first level to retrieve the actual arguments, as in args[0][0]
. There was never an args[n+1]
scenario.
This release corrected this issue. Plugin developers will need to update their plugins if the plugins are designed to read passed-in arguments.
For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documentation!
Please report any issues you find at issues.cordova.io!
Thank you very much for taking part in our user & contributor survey. We received 228 submissions. Let's dive straight into the data.
This survey got over 200 responses and considering only a fraction of people who actually see the survey will respond, there are probably quite a lot of happy Cordova users and new and long-running app projects out there. We got some good feedback of the most requested improvements and biggest pain points.
The Apache Cordova projects wants to understand the users and contributors better. Therefore, we invite you take part in a short survey for app developers and contributors of Cordova plugins.
The survey questions are designed to not contain any personal information and can be answered anonymously. Please take note that the survey is using Google Forms to process the responses. The Google privacy policy is applicable for the data processed.
Thank you very much for taking part in this survey. The goal of this survey is to identify areas that can be improved by the Cordova community together. The survey is open from now on to December 24, 2023. The results will be shared on the Cordova blog.
We are happy to announce that we have just released an update to cordova-plugin-inappbrowser
!
This is a new major version with breaking changes which requires at least cordova-android@10.0.0
and cordova-ios@6.0.0
. Make sure to check and update your platforms.
The most notable improvements in this major release are:
Please report any issues you find on GitHub!
We are happy to announce that we have just released an update for cordova-plugin-geolocation
!
To upgrade:
cordova plugin remove cordova-plugin-geolocation
cordova plugin add cordova-plugin-geolocation@5.0.0
The JavaScript of the plugin has been upgraded to use ES6 features, such as let
and const
.
NOTE: This release has failed to upgrade required engines. Despite the declared requirement on cordova-android
>= 6.3.0 and no declared requirement on iOS, the new minimum requirements will be:
Earlier versions of these platforms may not work as expected. As always, it will be recommended to use the latest version available. The engines may be corrected in a patch release at a later date.
Support for the deprecated cordova-windows platform has been dropped and entirely removed in this release.
Sanity check on Geolocation serialization on iOS
A rare occurrence of Infinity
values would cause a crash during JSON serialization on iOS. This is now caught and will now produce a Position Unavailable error gracefully.
Improved Android Permission Handling
Android has received fixes for when handling coarse vs fine location permissions for improved compatibility on Android 12+ devices. Android will now handle the following situations:
COARSE
location.COARSE
and FINE
(high accuracy) location.COARSE
is granted, but FINE
is required.For more details on these changes, see the PR.
Fixes has been made to the heading
and speed
to better conform to the W3C Geolocation API specification. If either of these values are not determined to be expected valid range, they will now return null
to provide better consistency between Cordova and other web environments.
Please report any issues you find by following the this How to File a Bug guide!
We are happy to announce that we have just released an update for the following plugins!
To upgrade:
cordova plugin remove cordova-plugin-camera
cordova plugin add cordova-plugin-camera@7.0.0
cordova plugin remove cordova-plugin-media
cordova plugin add cordova-plugin-media@7.0.0
cordova plugin remove cordova-plugin-file-transfer
cordova plugin add cordova-plugin-file-transfer@2.0.0
cordova-plugin-camera
Android 13 Support
In this release of the camera
plugin, the maxSdkTarget
for the WRITE_EXTERNAL_STORAGE
permission has been set to 32
. This change was made as the permission has been deprecated and replaced by Android 13's more granular permissions, READ_MEDIA_IMAGES
and READ_MEDIA_VIDEO
. Additionally, the getPermissions
method has been improved to accurately fetch the required permissions based on the Android version. If Android 13 and above, it will also fetch based on media type.
Furthermore, to support the new granular permissions on Android 13 (SDK 33), we have raised the minimum requirement for cordova-android
to version 12.0.0
. This version of Cordova-Android specifically includes the necessary updates to handle Android 13 and compile your project with the new permissions successfully.
Removed Deprecated Platforms
As the Cordova-Windows and Cordova-OSX platform has been deprecated, the supporting logic for these platforms has been removed from this plugin.
Retain Image Exif Data from Photo Library (iOS)
This release contains a fix to preserve image's EXIF data for iOS.
cordova-plugin-media
Android 13 Support
In this release of the media
plugin, the dependency of the file plugin has been bumped to 8.0.0
which introduced Android 13 support. This support includes the Android 13's more granular permissions READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
, and READ_MEDIA_AUDIO
.
Additionally we have raised the minimum requirement for cordova-android
to version 12.0.0
.
For more information, check out the Cordova's File Plugin 8.0.0 release blog post.
Removed Deprecated Windows Platforms
As the Cordova-Windows platform has been deprecated, the supporting logic for that platform has been removed from this plugin.
Ability to load files from custom scheme and leading slash directory paths
The file plugin can now accept URL constructed with a custom scheme or a leading slash.
Custom Scheme Example:
By default, iOS uses the following custom scheme app://localhost/
. You can now pass in app://localhost/file.mp4
to prepresent a media file located in the root directory of which the app content is loaded from, www
.
Leading Slash Example:
It can also load the same file file.mp4
from the above example if the provided URL was /file.mp4
. It will navigate from the root directory of which the app content is loaded from, www
.
Increased Android's Audio Quality
From this plugin's version and onward, the Android's captured audio quality has been increased significantly. This was achieved by increasing the bit rate to 96 Kbps and the sampling rate to 44.1 kHz.
PR's Note: This plugin uses the AAC encoder, which generally provides better quality audio at a lower bitrate compared against MP3 encoder. While researching acceptable bitrate of AAC compared against MP3, some suggest using 96 Kbps for AAC while MP3 would be 128 Kbps. But this does not mean it is identical. In terms of quality, it will always depend on the source and underlying equipment.
cordova-plugin-file-transfer
Bumped File Dependecy for Android 13 Support
In this release of the file-transfer
plugin, the dependency on the file plugin has been updated to version 8.0.0
, enabling Android 13 support. Consequently, the minimum requirement for cordova-android
has been raised to version 12.0.0
to align with the updated file plugin.
For more information, check out the Cordova's File Plugin 8.0.0 release blog post.
Removed Deprecated Platforms
As the Cordova Windows/WP8, OSX, Amazon Fire OS, Blackberry 10, Windows Phone & Firefox OS platform has been deprecated, the supporting logic for these platforms has been removed from this plugin.
Removed Deprecated whitelist
Plugin
The legacy whitelist
plugin has been deprecated for a long time and is no longer needed in the file-transfer
plugin. This plugin will continue call and check against the shouldAllowRequest
method which is apart of the platform core coding.
Refer to the Allow List page of the Cordova Documentation for more information in how to configure the list.
Fixed Download Functionality for Android Q+
Removed Hardcoded X-Requested-With
Header
This hardcoded header was removed from the Android platform. This header was also not set in any other platform. It is up to the app developer to set the header if it is desired to 'disguise' the HTTP call as an XMLHttpRequest.
Fixed Missing Headers on File Upload
In iOS, header data was not properly being set during file upload. In this release, the applyRequestHeaders
method was updated to ensure that the headers were being applied.
Re-implemented UserAgent Overwrites
In iOS, the ability to overwrite the UserAgent using the navigator.userAgent
value from the WebView was re-implemented.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova iOS 7.0.1
! This is one of Cordova's supported platforms for building iOS applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@7.0.1
To install:
cordova platform add ios@7.0.1
Fixes:
Building on Xcode 11
Cordova-iOS 7 is documented to support Xcode 11 and later. However, due to recent changes to support LimitsNavigationsToAppBoundDomains
, builds fail on Xcode 11. To address this issue, we have added conditional checks to ensure that the app can be built with Xcode 11. Please note that the LimitsNavigationsToAppBoundDomains
feature will not be available when building with Xcode 11.
Fix paths in the Xcode pbxproj
Cordova-iOS 7.0.0's Xcode project file was missing path information for some files. While this worked fine within the Xcode app, it caused problems for plugins and hooks that were attempting to modify the project file programmatically. We've fixed this issue by ensuring that all files in the Xcode project include a path property.
Please report any issues you find on our Cordova-iOS GitHub issue tracker!
We are happy to announce that we have just released Cordova Android 12.0.1
! This is one of Cordova's supported platforms for building Android applications.
To upgrade:
cordova platform remove android
cordova platform add android@12.0.1
To install:
cordova platform add android@12.0.1
Fixes:
Adaptive Icon Fix
In Cordova-Android 12.0.0, an issue arose with the introduction of Android 13's Themed Icons support. This issue resulted in adaptive icons not being generated due to an incorrect validation check.
In this release, the problematic validation check was rectified. As a result, the adaptive icon will be generated even when monochrome attributes are not provided.
Please report any issues you find on our Cordova-Android GitHub issue tracker!
We are happy to announce that we have just released an update for cordova-plugin-media-capture
!
To upgrade:
cordova plugin remove cordova-plugin-media-capture
cordova plugin add cordova-plugin-media-capture@5.0.0
Android 13+ Support
Beginning from Android 13 (SDK 33), the READ_EXTERNAL_STORAGE
permission no longer has any effect. Instead, this permission has been replaced with more granular permissions: READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
, and READ_MEDIA_AUDIO
. Also the WRITE_EXTERNAL_STORAGE
has stopped providing write access starting from API level 30 and above.
To adapt to this change, we have introduced these three new permissions. This ensures that the existing functionality and behavior related to reading various media file are maintained for Android 13 and higher versions.
The READ_EXTERNAL_STORAGE
and WRITE_EXTERNAL_STORAGE
permissions are still defined but has declared the maxSdkVersion
attribute with the value of 32
to ensure that the are not used in API 33 of higher.
Furthermore, to support the new granular permissions on Android 13 (SDK 33), we have raised the minimum requirement for cordova-android
to version 12.0.0
. This version of Cordova-Android specifically includes the necessary updates to handle Android 13 and compile your project with the new permissions successfully.
Added video quality
option for iOS
You can now change the quality of the video that is being captured for iOS. By default, it will capture the highest quality.
Fixes for various iOS crashes
Various fixes were implemented to enhance stability and user experience on iOS. Here are some example changes:
Please report any issues you find by following the this How to File a Bug guide!
We are happy to announce that we have just released an update for cordova-plugin-file
!
To upgrade:
cordova plugin remove cordova-plugin-file
cordova plugin add cordova-plugin-file@8.0.0
Removed WRITE_EXTERNAL_STORAGE
permission
According to the official documentation on Storage updates in Android 11, the WRITE_EXTERNAL_STORAGE
permission is no longer operational and does not grant access to write to external storage.
If this permission is not allowlisted for an app that targets an API level before
Build.VERSION_CODES.Q
(SDK 29) this permission cannot be granted to apps.
Although Cordova has removed this permission from the plugin by default, you can still add it back if needed by using the config-file
tag in your project's config.xml
file.
Example:
<config-file target="AndroidManifest.xml" parent="/*" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
</config-file>
It's important to note that other plugins used in your Cordova project may still include the WRITE_EXTERNAL_STORAGE
permission. To verify whether the permission is added by other plugins, you can check the merged AndroidManifest.xml
file.
The merged AndroidManifest.xml
file can be found at the following location:
platforms/android/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml
Please keep in mind that the example file path provided above is specific to debug builds. For release builds or different build variants, the file path may vary slightly.
Android 13+ Support
Beginning from Android 13 (SDK 33), the READ_EXTERNAL_STORAGE
permission no longer has any effect. Instead, this permission has been replaced with more granular permissions: READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
, and READ_MEDIA_AUDIO
.
To adapt to this change, we have introduced these three new permissions. This ensures that the existing functionality and behavior related to reading various media file are maintained for Android 13 and higher versions.
Furthermore, to support the new granular permissions and Android 13 (SDK 33), we have raised the minimum requirement for cordova-android
to version 12.0.0
. This version of Cordova-Android specifically includes the necessary updates to handle Android 13 and compile your project with the new permissions successfully.
Please report any issues you find by following the this How to File a Bug guide!
We are happy to announce that we have just released Cordova iOS 7.0.0
! This is one of Cordova's supported platforms for building iOS applications.
Upgrade steps:
cordova platform remove ios
cordova platform add ios@7.0.0
New install steps:
cordova platform add ios@7.0.0
Removal of podspec
type from framework
tag
Since Cordova-iOS 5.0.0, the new podspec
tag was added to improve the readability and support of features that CocoaPods provided.
This release officially removes the old type="podspec"
implementation of the framework
tag. If you maintain plugins and still using the framework
tag to load pod specs, it is recommended to migrate to the newer implementation.
For implementation specifications, please see our Apache Cordova - Podspec docs.
Removed default CONFIGURATION_BUILD_DIR
overrides
This will change the location of where the output files are generated.
build/emulator
will become build/Debug-iphonesimulator
build/device
will become build/Release-iphoneos
This will help ensure that debug and release files are never mixed up in the same directory and improves support for macOS maccatalyst
builds.
Update supported NodeJS versions
We have dropped support for NodeJS 14.x and increase the minimum NodeJS requirement to greater than or equal to 16.13.0.
Dropped Platform Binaries
We no longer supply or package platform-centric workflow binaries in the cordova-ios
npm package or GitHub repository.
Please use the cordova
CLI tool for managing your Cordova project plugins and platform configuration.
Rename Images.xcassets
to Assets.xcassets
colorFromColorString
from CDVViewController
CDVCommandDelegateImpl
class from public APIAdded LimitsNavigationsToAppBoundDomains
preference configuration
This preference allows you to use cookie authentication or browser APIs but requires the value to be set to YES
. The default value is NO
.
Support Apple Cloud Distribution Signing
Apple Cloud Distribution Signing allows using AppStore Connect API keys to automatically manage the distribution signing certificate and provisioning profiles. With Cordova-iOS 7.0.0, you can specify AppStore Connect API credentials in build.json
or as command-line parameters to the cordova
tool.
These options are authenticationKeyPath
, authenticationKeyID
, and authenticationKeyIssuerID
, and they work in combination with the existing automaticProvisioning
option.
Enable Mac Catalyst Support
Apps built with Cordova-iOS can now target macOS using the Catalyst runtime. This can be enabled by checking the "macOS - Catalyst" checkbox in the Xcode project settings and then building for the macOS target in Xcode.
Currently, building for Catalyst from Cordova's command-line tool is not supported.
Please report any issues you find on our Cordova-iOS GitHub issue tracker!
We are happy to announce that we have just released a major update to our Cordova CLI!
In this CLI release, it also includes the latest internal libraries:
This release drops Nodejs 14 support. The minimum supported version that Cordova requires is greater than or equal to 16.13.0.
In all releases, we have updated all npm packages to the possible latest release that Cordova can support.
BREAKING CHANGES:
We have removed the deprecated platforms OSX and Windows from the platform listing. While you can still install these platforms, you will need to use the full npm package names cordova-osx
and cordova-windows
. Please note that these platforms are no longer actively maintained, and there is a possibility that they may not function as expected and could break in the future. As a result, they will not receive any further support.
Additionally, we have removed all internal platform pinnings. When running the cordova platform add <PLATFORM>
command, it will always fetch the latest available platform from the npm registry. This allows for immediate access to newly released platforms. If you require the command to consistently fetch a specific version, you will need to update your command to include the version pinning, like this: cordova platform add <PLATFORM>@<VERSION>
.
Please report any issues you find on our GitHub issue tracker! Please select below the appropriate repo when submitting.
We are happy to announce that we have just released Cordova Android 12.0.0
! This is one of Cordova's supported platforms for building Android applications.
To upgrade:
cordova platform remove android
cordova platform add android@12.0.0
To install:
cordova platform add android@12.0.0
BREAKING CHANGES:
Increased Minimum & Target SDK
This release has increased the minimum supported SDK version to 24 which is Android 7.0. It also has increased the target SDK to 33, Android 13.
Build Tools
To use cordova-android@12
, SDK Platform 33
and SDK Build Tools 33.0.2
must be installed. Older build tools version can be uninstalled if older versions of cordova-android is no longer used in your projects.
To install SDK Platform 33:
SDK Platforms
tabAndroid 13.0 (Tiramisu)
which has the API Level
of 33
Apply
To install SDK Build Tools 33.0.2:
SDK Tools
tabShow Package Details
Android SDK Build-Tools
33.0.2
Apply
Project Dependencies
The following project dependencies were bumpped:
1.7.21
7.6
7.4.2
4.3.15
1.6.1
1.6.0
1.0.0
If you or a plugin has made changes to any of the following configuration preferences, the build results might not match the expected outcomes with this release:
android-minSdkVersion
android-maxSdkVersion
android-targetSdkVersion
android-compileSdkVersion
android-buildToolsVersion
GradleVersion
AndroidGradlePluginVersion
GradlePluginKotlinVersion
AndroidXAppCompatVersion
AndroidXWebKitVersion
GradlePluginGoogleServicesVersion
Please take note of the versions that have been updated in this release. If you have manually modified any of these values, it is recommended to review and update the preference values accordingly.
Node Support
We have dropped support for Node 14.x and increase the minimum Node requirement to greater than or equal to 16.13.0.
New Features:
Monochrome Support
Android 13 has added Themed Icons support which is also known as Monochrome. This release has introduced support for Themed icons.
Please report any issues you find on our Cordova-Android GitHub issue tracker!
We are happy to announce that we have just released Cordova Browser 7.0.0
! This is one of Cordova's supported platforms for building browser targeted applications.
This release contains updates for more modern NodeJS runtimes and contains a ShellJS security fix.
To upgrade:
cordova platform remove browser
cordova platform add browser@7
Please report any issues you find at GitHub Issues!
For a more detailed release notes, please see RELEASENOTES.md
We are happy to announce that we have just released Cordova iOS 6.3.0
! This is Cordova's official platform for building iOS mobile applications. This minor release contains three important fixes in preparation for the upcoming major release.
This release contains a fix to allow inspecting of WebView content with the latest iOS and Xcode versions. It also fixes an iOS 16 bug and issues with NodeJS 18.
This release adds the preference InspectableWebview
for iOS 16.4 or later. Please check out the Pull request for the documentation.
To upgrade:
cordova platform remove ios
cordova platform add ios@6.3.0
Please report any issues you find at issues.cordova.io!
We are happy to announce that cordova-common@5.0.0
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 most notable changes in this major release are:
node>=16
As Node.js 14 nears the end-of-life (April 2023), we have bumped the minimum requirement to 16.0.0. This update has also increased the minimum npm requirement to 7.10.0.
monochrome
attributeIn preparation for Cordova-Android's next major release, supporting logic for Android's monochrome icons has been included.
We are happy to announce that we have just released an update for cordova-plugin-screen-orientation
!
To upgrade:
cordova plugin remove cordova-plugin-screen-orientation
cordova plugin add cordova-plugin-screen-orientation@3.0.3
This release improves compatibility with newer iOS versions (see (#107)) and contains miscellaneous version updates.
Please report any issues you find by following this How to File a Bug guide!
We are happy to announce that we have just released a minor update to our Cordova CLI!
This release also pins our internal libraries to the latest releases:
This release officially appends the deprecation flag to the Windows & OSX platforms on the available platforms output screen.
We have updated our internal process to pass all of the XML attribute values in config.xml
to the platform packages so we can easily update the platforms without updating tooling and CLI.
We have updated all possible npm packages to the latest non-major release that Cordova can support.
Please report any issues you find at issues.cordova.io!
We are happy to announce that cordova-common@4.1.0
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 most notable improvement in this minor release is the ability to pass nearly all XML DOM element attributes to the platform's JS tooling. By passing down all attribute data, Cordova-Common no longer needs to be updated for adding and supporting new platform attributes.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update for cordova-plugin-media
!
To upgrade:
cordova plugin remove cordova-plugin-media
cordova plugin add cordova-plugin-media@6.1.0
For Android, we updated the media error response object to include the "message" property. This property will provide additional information about the error. It also syncs in line with the media error response object that iOS returns.
For iOS, file scheme support has been implemented. Two fixes were applied to prevent crashes that occured when fetching the position while the time was not defined and to ensured that the category was defined after the recording was released.
Please report any issues you find by following the this How to File a Bug guide!
We are happy to announce that we have just released Cordova Android 11.0.0
! This is one of Cordova's supported platforms for building Android applications.
To upgrade:
cordova platform remove android
cordova platform add android@11.0.0
To install:
cordova platform add android@11.0.0
Android 12 SplashScreen API Integration
As of Android 12, all Android 12 or higher devices display the new app launch animation. Google has applied this requirement to bring a standard design to all app launch screens.
Due to this requirement, users have seen and reported the display of multiple SplashScreens during the app launch. Since the new SplashScreen API can not be disabled, the old SplashScreen plugin is deprecated for Cordova-Android 11+.
We have integrated the Android 12 SplashScreen API including the compatibility library into the core of the Cordova-Android platform to provide support for Android API 22+.
For more information, please refer to the PR and Cordova Docs.
Tooling and Default Support Bump
targetSdk
): 32
32.0.0
7.4.2
1.5.21
7.2.1
4.3.10
1.4.2
1.4.0
1.0.0-rc01
Environment Variable ANDROID_HOME
As of April 27, 2022, It appears Google has reversed its statement and declared that ANDROID_HOME
is now the correct environment variable to set with the path of the SDK installation directory. It also notes that ANDROID_SDK_ROOT
that also points to the SDK installation directory is deprecated.
Custom Compile SDK
We added back the ability to set a custom compileSdk value with the preference flag android-compileSdkVersion
.
Example:
<preference name="android-compileSdkVersion" value="31" />
Node Support
Since Node 12 is no longer being supported by the Node.js team, we have dropped support for Node 12.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update for cordova-plugin-media
& cordova-plugin-media-capture
!
To upgrade:
cordova plugin remove cordova-plugin-media
cordova plugin add cordova-plugin-media@6.0.0
cordova plugin remove cordova-plugin-media-capture
cordova plugin add cordova-plugin-media-capture@4.0.0
cordova-plugin-media
For Android, the WRITE_EXTERNAL_STORAGE
and READ_PHONE_STATE
permissions have a protection level of dangerous. Because of this, we removed the declaration of these permissions.
The cordova-plugin-file
dependency was updated to use version ^7.0.0
.
The setRate
functionality, which was previously only supported on the iOS platform, is now supported on the Android platform. There was also a fix around this functionality for iOS.
cordova-plugin-media-capture
For Android, the RECORD_VIDEO
permission definition was removed as it was never used and appears to never exist.
The cordova-plugin-file
dependency was updated to use version ^7.0.0
.
Permission checks, for Android, has been unified to fix inconsistencies between the different capture methods.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Electron 3.1.0
! This is one of Cordova's supported platforms for building Electron applications.
To upgrade:
cordova platform remove electron
cordova platform add electron@3.1.0
To install:
cordova platform add electron@3.1.0
Some of the notable changes & new features in this release are:
Electron Update:
The Electron core dependencies have been updated to 14.2.9
.
Defining & Pinning Electron Version
The ability to define and pin specific Electron versions has been added. This feature leveraged the usage of npm's overrides
property, which was introduced in npm 8.
Example:
In the Cordova app's package.json
file, add the following:
"overrides": {
"cordova-electron": {
"electron": "14.2.9",
}
}
If you already have the platform added to the project, you will need to remove the platform or delete the platforms
directory before running cordova prepare electron
to recheckout the pinned version. If you also have in your project director the package-lock.json
file, this will also need to be removed.
For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documentation!
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Android 10.1.2
! This is one of Cordova's supported platforms for building Android applications.
To upgrade:
cordova platform remove android
cordova platform add android@10.1.2
To install:
cordova platform add android@10.1.2
The notable fixes in this release are to detect the JAVA_HOME
environment variable with Java 11, properly escape the app's name, and explicitly define the android:exported
attribute on the activity
.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update for cordova-plugin-file
& cordova-plugin-device
!
To upgrade:
cordova plugin remove cordova-plugin-file
cordova plugin add cordova-plugin-file@7.0.0
cordova plugin remove cordova-plugin-device
cordova plugin add cordova-plugin-device@2.1.0
cordova-plugin-file
For Android, a WebViewAssetLoader
proxy handler has been added to support loading cdvfile
URLs while using a custom scheme. It is recommended to use the toURL
method to fetch the consumable URL. When the app is served from the http
or https
protocol, the toURL
will return the appropriate consumable cdvfile
URL. If the app is used from the file
protocol, toURL
will return the native file
URL.
cordova-plugin-device
Electron native support has been added.
For Android, the sdkVersion
property is now included on the window.device
object, and returned within the getInfo
response object.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to our Splash Screen plugin!
This patch release fixes some bugs on Android, including an issue with the "backbutton" event reported by some users.
We are hereby announcing the deprecation of cordova-osx.
This means that the Cordova development community will not be doing any more work on this platform. Please migrate to the cordova-electron
platform or try Mac Catalyst with the cordova-ios
platform.
The usage and activity around the osx platform have been quite low for a long time. Cordova's other solutions for building apps for macOS are actively maintained and especially cordova-ios offers better plugin support.
Your feedback is graciously accepted and appreciated!
We are happy to announce that we have just released Cordova OSX 7.0.0
! This is one of Cordova's supported platforms for building macOS desktop applications.
This version includes various dependency updates and makes the platform run on AppleSilicon Macs.
We have raised the minimum required NodeJS version for this release to 12.x.
We are planning to deprecate the cordova-osx
platform soon. Please migrate to the cordova-electron
platform or try Mac Catalyst with the cordova-ios
platform.
Feel free to check out the discussions on the mailing list 1 2 for more information and leave a comment if you have anything to add.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update for Cordova Media Plugin (5.0.4)
!
To upgrade:
cordova plugin remove cordova-plugin-media
cordova plugin add cordova-plugin-media@5.0.4
Resolved Mounted Storage for Android 11
Android 11 had deprecated the Environment.getExternalStorageDirectory()
API that caused issues with fetching and mounting to the external directory. In this release, we changed the API with context.getExternalFilesDir(null)
, the alternative suggested API for fetching and mounting with the external storage directory.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released a major update to our Cordova CLI!
In this CLI release, it will also be using the latest internal libraries and template:
This release drops Nodejs 10 support. The minimum supported version which Cordova requires is 12.x.
In all releases, we have updated all npm packages to the possible latest release in which Cordova can support.
Cordova CLI 11.0.0:
In this release, we fixed an issue where users were unable to use Cordova CLI after upgrading their macOS environment to macOS Monterey. This issue was caused by one of the package dependencies, insight
. The previous workaround was to reinstall Cordova CLI, but now this is no longer required with this release.
Cordova Lib 11.0.0:
We have bumped all platform pinnings to use the latest released platforms. This means new Cordova app projects will now use the latest major versions of the supported platforms.
cordova-android@^10.1.1
cordova-electron@^3.0.0
cordova-ios@^6.2.0
Cordova Create 4.0.0:
All new projects will now start with the newest App Hello World template.
Cordova App Hello World Template 6.0.0:
Please refer to the App Hello World Release Blog post for more details.
Please report any issues you find at issues.cordova.io!
The Apache Cordova team wishes you Happy Holidays and a good start for the new year.
We are happy to announce that we have just released a major update to our template!
In this release, we have removed the deprecated cordova-plugin-whitelist
from the default template. The functionality of the plugin was integrated into the core of Cordova Android since version 10.0.0.
If you create a new Cordova project and use an older version of Cordova Android (<10), you will need to add the cordova-plugin-whitelist
plugin.
Additionally, Cordova has removed the excessive access
and allow-intent
settings from the default config.xml
file. Previously, the default template assumed what defaults users needed, but not all user apps required these settings.
Removing these excessive defaults will help promote a more secure application by default, reduce the default project configurations to a bare minimum, and promote an opt-in approach for defining access permissions.
Existing projects are not affected by these changes. The default template is used only during the initial project creation.
We are happy to announce that we have just released cordova-lib 10.1.0
!
In this minor release, we have introduced various improvements and fixes. The most notable changes within this release are:
cordova-ios@^6.2.0
cordova-android@^9.1.0
cordova-electron@^1.1.1
package.json
are reinstalled.Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Android 10.1.1
! This is one of Cordova's supported platforms for building Android applications.
To upgrade:
cordova platform remove android
cordova platform add android@10.1.1
To install:
cordova platform add android@10.1.1
The notable fixes in this release are around the handling of the default policy for the Allow Navigation & Allow Bridge Access, which also covers the scheme & hostname use cases.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Electron 3.0.0
! This is one of Cordova's supported platforms for building Electron applications.
To upgrade:
cordova platform remove electron
cordova platform add electron@3.0.0
To install:
cordova platform add electron@3.0.0
Some of the notable breaking changes & new features in this release are:
14.17.6
at the time of this release.Cordova Plugin Support
In the earlier releases of Cordova Electron, we didn't have a proper plugin system in place.
There was a temporary workaround solution, nodeIntegration
, that allowed app developers and plugin developers to have access to node modules. This was meant to be temporary and is not highly recommended because it can lead to security issues.
With the new support, the plugin will be preloaded and runs in a separate context from the web app. This feature is known as Context Isolation.
Additionally, this system follows our pre-existing plugin structure. This means the app code does not need to make any special calls for Electron vs any other platform.
For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documentation!
Please report any issues you find at issues.cordova.io!
It has been talked about for years, and even though we agreed to do it, we never really moved on it. Taking things away is always harder than adding things.
Back in the day, we had active contributions from the community to translate our documentation, and we had a pretty robust system to pull them all together and publish the static HTML site. This system has run flawlessly for years, however, the community translations slowed, then stopped, while the system still carefully churned through it all. We have been providing translated docs since Cordova CLI 3.1.0 while the maintenance of these translated docs started to diverge around Cordova CLI 6.x
Over the next few weeks we will be making aggessive changes to the documentation system.
Including:
archive
siteWe would like to thank the people who took the initiative in creating the translated docs and those who put time and effort into maintaining them.
We welcome your feedback and comments.
~ Apache Cordova Committers
We are happy to announce that we have just released an update to our Camera plugin!
We are happy to announce that we have just released an update for Cordova Camera Plugin (6.0.0)
!
To upgrade:
cordova plugin remove cordova-plugin-camera
cordova plugin add cordova-plugin-camera@6.0.0
Requires Cordova-Android
10.x of higher
This major release has bumped the minimum Cordova-Android requirement to 10.x or higher. This requirement change was made for the AndroidX Only Support initiative.
If your project is using an older Cordova-Android release, please upgrade the Android platform before using it.
cordova platform remove android
cordova platform add android@10.x
AndroidX
Only Support
In this release, we have completely migrated to the AndroidX library and no longer support the Android Support Library.
If you were using the cordova-plugin-androidx-adapter plugin to migrate the Camera's legacy Android Support Library references to the new AndroidX references, it can be removed unless your project is using other third-party plugins that have not migrated to AndroidX.
HEIC Support
We introduced support to encode the HEIC file formats to the defined EncodingType
for WebView display.
Package Visibility Support
We have updated this plugin to support the breaking changes that were introduced in Android 11 around package visibility.
For more information on package visibility, please check out the following Google's resources:
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released a minor update for Cordova Android (10.1.0)
! This is one of Cordova's supported platforms for building Android mobile applications.
To upgrade:
cordova platform remove android
cordova platform add android@10.1.0
In this minor release, we:
Bump Core Libraries
Added HTTP
Scheme Support
In the Cordova-Android 10.0.0 release, we introduced support for the WebViewAssetLoader
. By default, we only supported the https
scheme. Some users requested http
scheme support; as not all users were able to loading resources through a secure protocol.
Users are now able to use either https
(default) or http
by setting the scheme
preference
flag.
<preference name="scheme" value="http" />
The default scheme
will remain as https
, as we believe apps should be secure.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released a bugfix update for Cordova Android (10.0.1)
! This is one of Cordova's supported platforms for building Android mobile applications.
To upgrade:
cordova platform remove android
cordova platform add android@10.0.1
In this patch release, we had fixed three reported issues that caused build issues.
Fixed GradlePluginGoogleServicesEnabled
Invalid Version Error
Projects that set the GradlePluginGoogleServicesEnabled
config flag to true
saw an invalid version error. The error was caused by the build process reading a bad variable reference.
Fixed Incorrect Fetching of Latest Build Tools
Users who have installed build tools 31.x noticed Cordova attempting to use the newer build tools by default.
By default, Cordova-Android 10.x tries to fetch the latest installed build tools, but it should be only selecting within the supported major release range.
For example, Cordova-Android 10.x supports SDK build tools 30.0.3. If a newer version of build tools within 30.x was released and installed, Cordova should fetch and use it. If the environment has 31.x or higher, those should be ignored.
Newer major release versions are not tested and may not be compatible with Cordova.
Only within the supported major range are now being discovered and used.
Fixed Building with Pinned Build Tools
This issue was also noticed by users who have installed the latest Android build tools SDK 31.
Since SDK 31 contains breaking that makes it incompatible with Cordova, users tried to pin the build tools version to 30.0.3.
Because of the above issue Fixed Incorrect Fetching of Latest Build Tools, the provided pinned version was being ignored.
Pinned versions now take higher priority over the fetched the latest version functionality.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Android 10.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@10.0.0
AndroidX
Only Support
In this release, we have completely migrated to the AndroidX library and no longer support the Android Support Library. All plugins that continue to use the Android Support Library will need to be updated to reference the new AndroidX library.
If plugins have not been updated, you can still use the cordova-plugin-androidx-adapter plugin, which can be used to migrate the legacy references to the new AndroidX references.
WebViewAssetLoader
Support
By default, the WebViewAssetLoader
is enabled and allows apps to serve their content from a 'proper' origin. This will makes routing work easily for frameworks like Angular.
With no additional configurations, the app content is served from https://localhost/
. You can configure the hostname by setting the preference option hostname
.
<preference name="hostname" value="localhost" />
The scheme, https
, is not configurable by nature.
Please note that this is a breaking change that will cause data associated with the file://
scheme, such as cookies, local storage, local cache, and web-based databases, to be lost. You will need to handle the migration of data. If you are unable to migrate the data at this time, you can revert this setting by setting the AndroidInsecureFileModeEnabled
preference flag.
<preference name="AndroidInsecureFileModeEnabled" value="true" />
Setting this flag will keep the content on the file://
scheme, which Google reports to be insecure.
Android App Bundles aab
Support
By default, release builds will now generate an aab
formatted package type for release.
By nature, aab
packages can not be deployed or pushed manually to a device for testing. If you need to test a release build, you will need to change the package type back to apk
with the packageType
flag.
Debug builds will continue to create an apk
formatted package.
Tooling and Default Support Bump
targetSdk
): 30
30.0.3
7.1.1
1.5.20
4.2.2
4.3.5
Node Support
Since Node 10 is no longer being supported by the Node.js team, we have dropped support for Node 10.
Java 11 Support
With the current release of Android Studio 4.2, the Android tooling can now support running on Java 11. Please note that this does not mean you can start compiling Java 11 source code.
Please report any issues you find at issues.cordova.io!
There is a known issue for users or plugins that enable the Google Services Gradle plugin.
https://github.com/apache/cordova-android/issues/1284
We are preparing and aiming for a patch release vote within the next three days.
We are happy to announce that we have just released an update to our Whitelist plugin!
The 1.3.5 patches release is the final release of the Whitelist plugin.
The Whitelist plugin will be moved to the cordova-android
repo.
We are happy to announce that we have just released an update to our Network Information plugin!
The 3.0.0 major release fixes behaviour on Android.
The online
event was running at unexpected times.
All references of the deprecated navigator.network
are removed.
We are happy to announce that we have just released an update to our Camera plugin!
The 5.0.2 patch release fixes a bug on Android. After taking a picture with the camera plugin on Android, the app could occasionally crash. This crash did occur when the main activity was destroyed by the Android OS to free up memory, when the app would resume afterwards with a PendingIntent the restoring of the state was not correctly handled.
We are happy to announce that we have just released Cordova Android 9.1.0
! This is one of Cordova's supported platforms for building Android mobile applications.
To upgrade:
cordova platform remove android
cordova platform add android@9.1.0
In this minor release, there are various refactoring and bug fixes. Additionally, there were a few new features.
Some of the new feature highlights are:
Added Custom Gradle Repositories Support
Sometimes there are third-party libraries that do not exist in the repositories that we have defined. With this feature, developers now have an easier way to override the default repository list that we have defined in the Gradle build scripts.
Additionally, as JFrog is sunsetting the JCenter repository, developers can remove it, at their own risk. Since this a minor release, we have not removed JCenter as one of the default repositories as it would be considered a breaking change.
Support webp
Images for SplashScreen
Previously we only supported png
file formats for splash screens as webp
support was only introduced starting from API 17. Since cordova-android@9.x
minimum SDK version was raised to 22, the introduction of webp
support became possible.
webp
file formats are known to support transparency and provide the same or similar quality as png
files, but its greatest benefit is that it can reduce the image file size by around 25%.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to cordova-plugin-inappbrowser
!
This is a new major version with breaking changes which requires at least cordova-android@9.0.0
and cordova-ios@6.0.0
. Make sure to check and update your platforms.
The most notable improvements in this major release are:
InAppBrowserStatusBarStyle
to 'darkcontent'.Please report any issues you find at issues.cordova.io!
We are hereby annoucing the deprecation of cordova-plugin-wkwebview-engine.
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 running cordova-ios@5.1.1
or earlier but any further issues will not be fixed by the Cordova team.
The WKWebView implementation has been moved to the core iOS platform as of cordova-ios@6
. We encourage everyone to update to cordova-ios@6
and to remove cordova-plugin-wkwebview-engine
.
Your feedback is graciously accepted and appreciated!
We are happy to announce that we have just released Cordova iOS 6.2.0
! This is Cordova's official platform for building iOS mobile applications.
This release contains small bug fixes, dependency updates and resolves some splashscreen issues. Plugin developers can now hook into the WKURLSchemeHandler
(learn more).
To upgrade:
cordova platform remove ios
cordova platform add ios@6.2.0
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to our WKWebView Engine plugin!
This plugin does not support cordova-ios@6
because the iOS platform now has WKWebView Engine built in. Therefore this patch release updates the plugin to not install when cordova-ios@6
or later is installed. It is safe to remove this plugin if running cordova-ios@6
or later.
We are happy to announce that cordova-fetch@3.0.1
was released in February 2021. This module is responsible for installing platforms and plugins from the npm package registry, and this release adds compatibility for npm version 7.
To upgrade:
Because cordova-fetch
is a dependency of the cordova
command-line tool, you'll need to reinstall the cordova
package to update:
npm uninstall -g cordova
npm install -g cordova
The most notable fix in this patch release is a fix for plugin and platform installation with the newest version of npm. More details can be found in the pull request and original bug ticket. Thanks Raphael for implementing this fix.
Please report any issues you find at issues.cordova.io!
We have resolved a security issue in the camera plugin that could have affected certain Cordova (Android) applications.
CVE-2020-11990: Apache Cordova Plugin camera vulnerable to information disclosure
Type of Vulnerability:
CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
Severity: Low
Vendor: The Apache Software Foundation
Possible attackers condition:
An attacker who can install (or lead the victim to install) the specially crafted (or malicious) Android application. Android documentation describes the external cache location as application specific, however, "There is no security enforced with these files. For example, any application holding Manifest.permission.WRITE_EXTERNAL_STORAGE can write to these files." ( and thereby read )
Possible victims:
Android users that take pictures with an Apache Cordova based application and attached removable storage.
Possible Impacts:
Versions Affected:
Cordova Android applications using the Camera plugin
( cordova-plugin-camera version 4.1.0 and below )
Upgrade path:
Developers who are concerned about this issue should install version 5.0.0 or higher of cordova-plugin-camera
Mitigation Steps:
Upgrade plugin and rebuild application, update deployments.
Credit:
[Edit: Changed credit to individual]
Akihiro Matsumura of Saison Information Systems Co., Ltd. reported this vulnerability to IPA.
JPCERT/CC coordinated with the developer under Information Security Early Warning Partnership.
[Edit: Added links to JPCERT/CC advisory ]
We are happy to announce that we have just released Cordova Electron 2.0.0
! This is one of Cordova's supported platforms for building Electron applications.
To upgrade:
cordova platform remove electron
cordova platform add electron@2.0.0
To install:
cordova platform add electron@2.0.0
Some of the notable breaking changes & new features in this release are:
12.18.4
at the time of this release.Support for using the custom scheme
and hostname
preference
flags is now available. It can be easily configured in your Cordova project by setting the preference options scheme
and hostname
in the config.xml
file.
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
cordova run
command. This is useful to pass the inspect flag to debug the main process.For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documentation!
Please report any issues you find at issues.cordova.io!
This vulnerability is a universal cross-site scripting (UXSS) vulnerability in Android WebView which allows cross-origin iframes to execute arbitrary JavaScript in the top-level document. Apache Cordova apps built for Android devices which allow the loading of http content from domains they do not control could be affected. Theoretically this would be either in an iframe, or by use of the InAppBrowser plugin (cordova-plugin-inappbrowser).
If your app loads a local page (e.g. index.html within Cordova app loads iframe from malicious-example.com), no user interaction is required for this exploit.
This vulnerability has been fixed in Android WebView as of version 83.0.4103.106. Users must update their Android WebView from the Google Play Store themselves.
There are precautions you can take to avoid this vulnerability.
_system
)Do not use iframes, and if you must, never do so in your application's main webview. Using the sandbox
attribute will mitigate this vulnerability ( preferably with an empty value. ) Avoid using these sandbox attributes together allow-popups allow-top-navigation allow-scripts
because they do NOT mitigate this vulnerability.
<iframe sandbox='' src='http://untrusted-source' />
Most of these precautions have always been gentle recommendations of Apache Cordova, but were not reflected in the default values which were typically left open. The Apache Cordova committers are investigating preventing this vulnerability at the framework level, as well as tightening the default values to prevent inadvertant exposure. In the meantime, if you suspect your app is vulnerable, please follow the precautions above.
Credit ( and thanks ) go to Alesandro Ortiz for discovering this vulnerability and bringing it to our attention.
edit: fixed links that weren't linking -JM
We are happy to announce that we have just released an update to our camera plugin!
In this major release, we have:
DestinationType
of NATIVE_URI
that was used only in the iOS and Windows platform. For iOS, the NATIVE_URI
returned an ALAssetsLibrary
that had been deprecated and does not work with the WKWevView
.CordovaUri
class helper that used fuzzy logic to guess the image path from the content URL. This process was not necessary as we know the file path beforehand.We are happy to announce that we have just released Cordova iOS 6.1.1
! This is Cordova's official platform for building iOS mobile applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@6.1.1
This release contains primarily a fix for deploying to devices, as well as an update to the cordova-common library which we hope will address several issues around Info.plist
modifications.
Resolve deploying to a connected device (since 6.0.0)
The Cordova iOS 6.0.0 release was unable to deploy apps to connected iPhone and iPad devices. Thanks to first-time contributor imgos for tracking down the source of the problem and providing a fix.
Fix for identifying the correct Info.plist
file
This has been a long-standing pain point for Cordova iOS users, particularly when plugins attempt to use edit-config
or config-file
to add directives to the Info.plist
file. In some cases, depending on which plugins and CocoaPods were installed, those config changes would end up in the wrong plist file.
This issue was fixed in Cordova Common 4.0.2, and we've pulled that dependency into this release. More details can be found in the pull request and original bug ticket.
Append startURL
to the initial URL when using custom schemes (since 6.0.0)
When using a custom scheme in Cordova iOS 6.0.0 and a config.xml
content
path that pointed to a subfolder of www
, that subfolder would be treated as the root of the custom scheme. While this is not a common situation, it turns out that is how the mobilespec test suite is implemented.
The fix here is that the root of the custom scheme will always map to the www
folder. More details can be found in the pull request.
Please report any issues you find at issues.cordova.io!
Adobe recently announced that PhoneGap is shutting down. How is Cordova affected? In short: not much.
Rest assured, Apache Cordova is still active and maintained!
We want to take this opportunity to thank Adobe and the PhoneGap team for all the blood, sweat, and tears they have put forward into designing and building these tools, services, and community. Without them, hybrid mobile apps would not be the same.
Today, we are in the fortunate position that Cordova is an Open Source Software, which is entirely maintained by the community. PhoneGap originally started as an open-source project by Nitobi Software in 2008. Nitobi Software was acquired by Adobe in 2011 and shortly after donated PhoneGap to the Apache Software Foundation as Cordova. Apache Cordova, which was a core tool of Adobe PhoneGap and PhoneGap Build for the past nine years, will continue to thrive as long as the health of the community remains strong and contributions are made. If you use, have used, or looking to start using Cordova, also consider contributing and taking part in this awesome community to help it grow.
We, the community, and contributors of Apache Cordova would like to sincerely thank Adobe and all of the PhoneGap team members for everything you have put into this hybrid mobile community and sharing Cordova to the Apache Software Foundation so it can continue to grow and prosper.
The Contributors of Apache Cordova
We are happy to announce that we have just released cordova 10.0.0
!
To upgrade:
npm uninstall -g cordova
npm install -g cordova@10.0.0
In addition to various improvements and fixes, this release has updated its core library.
The follow platforms have been updated to the latest pinning.
cordova-android@^9.0.0
cordova-ios@^6.1.0
cordova-osx@^6.0.0
In addition, this release has also:
plugin save
command, which had become the default behaviour since version 7.0.cordova info
display.Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released cordova-lib 10.0.0
!
In addition to various improvements and fixes, this release has:
plugin save
command, which had become the default behaviour since version 7.0.Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to our Splash Screen plugin!
In this major release, the iOS related source code has been completely removed since it has been integrated into the core of the Cordova-iOS 6.x platform.
We recently posted instructions how to update your apps to remove all UIWebView
references, because Apple now rejects all apps using UIWebView
.
We are talking about this warning:
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs.
Some things have changed and new versions of cordova-ios have been released since the last post.
We are happy to announce that cordova-common@4.0.2
was released in July 2020. 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 most notable fix in this patch release is the ability to update the correct app's plist
file when multiple plist
files are present within the project. More details can be found in the pull request and original bug ticket.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Android 9.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@9.0.0
Added Kotlin Support
Kotlin is one of the newest statically typed languages for developing Android apps. It is designed to work fully with the existing language, Java.
By default, Cordova has Kotlin disabled but it can be enabled with the GradlePluginKotlinEnabled
preference in config.xml
.
Additionally, Kotlin’s coding style and version are configurable. By default, Cordova sets the coding style as official
and uses version 1.3.50
.
Below is an example config.xml
for enabling and configuring Kotlin.
<preference name="GradlePluginKotlinEnabled" value="true" />
<preference name="GradlePluginKotlinCodeStyle" value="official" />
<preference name="GradlePluginKotlinVersion" value="1.3.50" />
For plugin developers, it is recommended to ensure that the Kotlin files are placed into the platforms src/main/kotlin
directory.
Added AndroidX Support
AndroidX is the new and improved namespace for the Android Support Libraries. The original support libraries are no longer maintained.
It is recommended to use AndroidX so that your app is running the latest support libraries but, by default, Cordova has AndroidX support disabled for compatibility with existing plugins.
A lot of the Android supported plugins are still using the old support libraries which can not build when using the AndroidX support libraries. It is recommended to research each plugin to see if they support AndroidX before enabling this feature.
It is recommended for plugin developers to start migrating to support AndroidX. App developers could also use Jetifier to automatically migrates their existing third-party libraries to use AndroidX.
You can enable this feature by setting the AndroidXEnabled
preference to true
in config.xml
.
<preference name="AndroidXEnabled" value="true" />
If you were previously using the cordova-plugin-androidx plugin to enable AndroidX support, this plugin is no longer needed with this preference flag.
The cordova-plugin-androidx-adapter plugin can be used to migrate the legacy references to the new AndroidX references.
Added Google Services Support
To use Google APIs or Firebase services, the Gradle plugin Google Services is required to be enabled when building your Android application.
For plugin developers, this can be enabled by setting to the app's config.xml
the GradlePluginGoogleServicesEnabled
preference
flag. From the plugin.xml
file, you can do this by adding the following lines:
<config-file target="config.xml" parent="/*">
<preference name="GradlePluginGoogleServicesEnabled" value="true" />
<preference name="GradlePluginGoogleServicesVersion" value="4.2.0" />
</config-file>
Android Version Support Update
NOTE: because Cordova has increased the minimum SDK version to 22, we no longer support or test with Android 5.0 or lower.
Gradle and Gradle Plugin Version Support Update
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova iOS 6.1.0
! This is Cordova's official platform for building iOS mobile applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@6.1.0
This release contains primarily fixes for issues with the 6.0.0 release.
Resolve CocoaPods publishing issues (since 6.0.0)
The Cordova iOS 6.0.0 release was unable to be published to CocoaPods due to issues with the Pod spec. These have been addressed and Cordova iOS 6.1.0 is available.
Fix landscape orientation defaults (since 6.0.0)
A change made in Cordova iOS 6.0.0 had the side effect of disabling landscape orientation for any apps that didn't specify an Orientation
preference in config.xml
. We've reverted that change and new apps will match Xcode defaults (allowing both portrait and landscape orientations).
To ensure your app properly supports the orientations you want, we encourage setting the Orientation
preference.
Fix invisible SplashScreen bugs (since 6.0.0)
A bug in Cordova iOS 6.0.0 would cause the splashscreen to be invisible unless a BackgroundColor
preference was set in config.xml
. This was not the intended behaviour, and caused a lot of confusion about not being able to interact with the webview behind the splashscreen.
In Cordova iOS 6.1.0, we've fixed the splashscreen so that it will always have a background colour (defaulting to the system background colour) and so that the launch storyboard image should remain visible.
To customize the background colour of your app and its splashscreen, use the BackgroundColor
preference in config.xml
.
Add support for dark mode splashscreens (New Feature)
It is now possible to use optionally different splashscreen images when your app is running in dark mode. You can configure these images in config.xml
with the ~dark
suffix (and ~light
is also supported).
<!-- Default image to be used for all modes -->
<splash src="res/screen/ios/Default@2x~universal~anyany.png" />
<!-- Image to use specifically for dark mode devices -->
<splash src="res/screen/ios/Default@2x~universal~anyany~dark.png" />
<!-- Image to use specifically for light mode devices -->
<splash src="res/screen/ios/Default@2x~universal~anyany~light.png" />
Add preference for iPad desktop layout behaviour (New Feature)
iPadOS 13 defaults to using a desktop layout in webviews rather than a mobile layout. You can now control this behaviour in your apps with the PreferredContentMode
preference in config.xml
. Valid options are mobile
and desktop
.
Add preference for webview window handling (New Feature)
Historically, Cordova iOS has not supported the creation of new webview windows with APIs like window.open
or links with target="_blank"
. The default behaviour was inconsistent, with some links opening externally in Safari and some links being unclickable. There is now an AllowNewWindows
preference in config.xml
to control the behaviour of new windows within the application.
When false (the default behaviour), links that would open a new window are instead opened in the same webview as if they had not requested a new window.
When true, links that would open a new window will create a new webview overtop of the app. This new webview provides no controls, so you must include a way to dismiss it with window.close()
.
Links that are outside the list of allow-navigation
URLs will continue to open in Safari.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova OSX 6.0.0
! This is one of Cordova's supported platforms for building macOS desktop applications.
This version includes various dependency updates.
We have raised the minimum required NodeJS version for this release to 10.x.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to some plugins!
The most notable changes in this major release are:
UIWebView
code and this version also removes the UIWebView
code from the InAppBrowser plugin GH-635.In the Cordova-iOS 6.x platform, the splash screen feature has been integrated into its core and no longer needs this plugin. This release prevents the plugin from being added to the iOS 6.x platform.
cordova-ios
requirement <6.0.0We are happy to announce that we have just released an update to our tools!
targetName
to parameter to getBuildProperty
isRemoteUri
package.json
with indentation of 2package.json
& config.xml
(§3)opts.events
or a no-op for logging (§4)We are happy to announce that we have just released Cordova iOS 6.0.0
! This is Cordova's official platform for building iOS mobile applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@6.0.0
The most notable changes in this major release are:
Added Xcode 11 compatibility and bumped minimum iOS version to 11.0
As of April 2020, Apple requires all app store submissions to be built with Xcode 11 and target the iOS 13 SDK.
Apple has deprecated the mediaPlaybackRequiresUserAction
property in iOS 8.0–9.0 and replaced it with mediaTypesRequiringUserActionForPlayback
.
Apple has also deprecated the mediaPlaybackAllowsAirPlay
property in iOS iOS 8.0-9.0 and replaced it with allowsAirPlayForMediaPlayback
.
If you have configured any of these properties in your project's config.xml
file, it is recommended that you update with the new preferences options MediaTypesRequiringUserActionForPlayback
or AllowsAirPlayForMediaPlayback
.
Additionally, the values for MediaTypesRequiringUserActionForPlayback
has changed. It use to be a boolean
value but is now a string
value of either all
, audio
, video
, or none
.
Moved WKWebView
support into Cordova-iOS and removed UIWebView
code
Due to this change, the cordova-plugin-wkwebview-engine
plugin is obsolete and will not work with this release. If you have this plugin installed, it is safe to remove with cordova plugin remove cordova-plugin-wkwebview-engine
.
Additionaly, WKURLSchemeHandler
support has been introduced with this release. Using a custom scheme to serve your app content through fixes CORS issues that exist because of the strict security policies that WKWebView
has applied to the file
scheme. You can easily configure your Cordova project to use a custom scheme by setting the preference options scheme
and hostname
in the config.xml
file.
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
It is important to know that with the introduction of WKURLSchemeHandler
, iOS 10 support has been dropped.
Integrated SplashScreen
plugin code & replaced Launch Images with Launch Storyboards
If you're migrating from launch images, details on how to set up images for Launch Storyboards can be found in the SplashScreen documentation.
Bumped minimum CocoaPods version requirements to 1.8.0
Since CocoaPods 1.7.0, CDN support was introduced. It was later finalized in 1.7.2 but was not configured as the default until 1.8.0. Using CDN to fetch podspecs over the traditional GitHub repo provides a huge performance enhancement. With CDN, Cordova users no longer need to wait for the CocoaPod's GH repo to be synced. Building a project with pods and a fresh CocoaPods installation takes under a minute now.
You can take a look at their demonstration video here to see how fast CocoaPods has become with CDN.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released an update to our tools and template!
We have raised the minimum required Node.js version for all of our packages to 10.x and begun to modernize the node JavaScript to use supported ES6.
window.navigator
argscheck.checkArgs
targetname
pbxProject.addTarget
opn
w/ open
index.css
, fixes duplicated env
rightPlease report any issues you find at issues.cordova.io!
We are happy to announce that cordova-common@4.0.0
was released in March 2020. 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 most notable changes in this major release are:
As Node.js 6.x and 8.x support has been dropped, we have raised the minimum required Node.js version for this release to 10.x.
Apple started to reject apps with UIWebView
references. You will need to update your app to fix this and this post sums up the required steps.
This should solve the warning after uploading the app to App Store connect:
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs.
A new preference
flag WKWebViewOnly
was introduced to remove all UIWebView
references from Cordova's code during compile-time. It is recommended to upgrade the cordova-ios
platform to version 5.1.1
.
We are happy to announce that we have just released an update to cordova-plugin-inappbrowser
!
The most notable improvements in this minor release are:
WKWebViewOnly
preference.Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Windows version 7.0.1
! This is one of Cordova's supported platforms for building Windows applications.
To upgrade:
cordova platform remove windows
cordova platform add windows@7.0.1
Patch release to resolve issue with path to winjs
dependency (#331)
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.
Minor release with some external contributions
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova iOS 5.1.1
! This is Cordova's official platform for building iOS mobile applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@5.1.1
The most notable fix in this patch release was to make the prepare step to wait for the platform add step to finish. This resolved the bug that was seen when setting the WKWebViewOnly
flag before adding the platform.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova iOS 5.1.0
! This is Cordova's official platform for building iOS mobile applications.
To upgrade:
cordova platform remove ios
cordova platform add ios@5.1.0
The most notable improvements in this minor release are:
UIWebView
during the compile-time.minDeploymentTarget
to 10.0
in Podfile.Please report any issues you find at issues.cordova.io!
We are happy to announce that cordova-common 3.2.1
was released in November 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.
The most notable changes in this patch release are:
.jsproj
extension as an XML allowed extension to be editable by the config-file
tag.plugin.xml
, not to be added.We are happy to announce that we have just released Cordova Android 8.1.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.1.0
The most notable improvement in this minor release is the support to build .aab
bundle packages.
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Electron 1.1.1
! This is one of Cordova's supported platforms for building Electron applications.
To upgrade:
cordova platform remove electron
cordova platform add electron@1.1.1
To install:
cordova platform add electron@1.1.1
Some of the notable fixes in this patch releae are:
package.json
is missing the dependencies
property.For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documentation!
Please report any issues you find at issues.cordova.io!
We are happy to announce that we have just released Cordova Electron 1.1.0
! This is one of Cordova's supported platforms for building Electron applications.
To upgrade:
cordova platform remove electron
cordova platform add electron@1.1.0
To install:
cordova platform add electron@1.1.0
Some of the notable features that were introduced in this release are the ability to:
As well, we have bumped the cordova-common@^3.2.0
and fs-extra@^8.0.1
dependencies to resolve an fs-extra
defect that caused random build failures on the Windows environment. Read More
For a quick start guide and in-depth configuration setup, please check out our Cordova Electron Documentation!
Please report any issues you find at issues.cordova.io!
We are happy to announce that cordova-common 3.2.0
was released in June 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.
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:
package.json
does not exist in your project, it will be auto-created for you when cordova prepare
is called.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
.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).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
.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
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
.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
```
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
plugingetPreferredLanguage()
and getLocaleName()
for cordova-globalization
plugin.ms-appdata URIs
for cordova-file-transfer
pluginThe 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