Blog RSS Feed

  • Cordova Electron 4.0.0 Released!

    11 Mar 2024 - by Bryan Ellis

    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
    

    Release Highlights

    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:

    • Chromium 122.0.6261.39
    • Node v20.9.0
    • V8 12.2

    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!

  • Cordova Survey 2023 Results

    12 Jan 2024 - by Niklas Merz

    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.

  • Announcing the Cordova User & Contributor Survey!

    24 Nov 2023 - by Niklas Merz

    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.

    Take survey

    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.

  • Cordova Plugin InAppBrowser 6.0.0 Released!

    23 Nov 2023 - by Niklas Merz

    We are happy to announce that we have just released an update to cordova-plugin-inappbrowser!

    Release Highlights

    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:

    • Permission requests for Android
    • Removal of deprecated code and platforms
    • Make WebView inspectable on iOS
    • Make system open tel, sms, mailto and geo links on iOS

    Please report any issues you find on GitHub!

  • Geolocation Plugin 5.0.0 Released!

    21 Sep 2023 - by Norman Breau

    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
    

    Release Highlights

    Breaking Changes

    • Modern JavaScript

    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:

    • cordova-ios 6 or later
    • cordova-android 10 or later

    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.

    • Cordova Windows Support Drop

    Support for the deprecated cordova-windows platform has been dropped and entirely removed in this release.

    Notable Fixes

    • 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:

      1. Permission request that consists of only COARSE location.
      2. Permission request that consists of both COARSE and FINE (high accuracy) location.
      3. Permission upgrade for when COARSE is granted, but FINE is required.

    For more details on these changes, see the PR.

    • Improved W3C Compliance

    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!

  • Camera 7.0.0, Media 7.0.0 & File-Transfer 2.0.0 Released!

    12 Sep 2023 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova iOS 7.0.1 Released!

    06 Sep 2023 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Android 12.0.1 Released!

    28 Aug 2023 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Media-Capture Plugin 5.0.0 Released!

    18 Aug 2023 - by Bryan Ellis

    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
    

    Release Highlights

    Breaking Changes

    • 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.

    Features & Fixes

    • 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:

      1. Implement an alert dialog to guide users to enable necessary permissions if they had previously denied them. This will occur when users attempt to use the capture feature.
      2. Improve the layout of the audio capture interface to fit and use the entire device screen.
      3. Implement safeguards to prevent application crashes in scenarios where audio data is unavailable ensuring a smoother and more reliable user experience.
      4. Implement measures to maintain the functionality of the capture feature even when users dismiss the capture window by swiping, ensuring consistent and uninterrupted functionality.

    Please report any issues you find by following the this How to File a Bug guide!

  • File Plugin 8.0.0 Released!

    11 Jul 2023 - by Bryan Ellis

    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
    

    Release Highlights

    Breaking Changes

    • 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!

  • Cordova iOS 7.0.0 Released!

    10 Jul 2023 - by Bryan Ellis

    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
    

    Release Highlights

    Breaking Changes

    • 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

    • Remove deprecated API colorFromColorString from CDVViewController
    • Remove the CDVCommandDelegateImpl class from public API

    New Features

    • Added 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!

  • Cordova CLI 12.0.0 & Internal Packages Released!

    22 May 2023 - by Bryan Ellis

    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:

    Release Highlights

    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.

  • Cordova Android 12.0.0 Released!

    22 May 2023 - by Bryan Ellis

    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.

    Release Highlights

    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:

      1. Open Android Studio's SDK Manager:
      2. Click on SDK Platforms tab
      3. Check Android 13.0 (Tiramisu) which has the API Level of 33
      4. Click Apply

      Android SDK Platform

      To install SDK Build Tools 33.0.2:

      1. Open Android Studio's SDK Manager:
      2. Click on SDK Tools tab
      3. Check Show Package Details
      4. Expand Android SDK Build-Tools
      5. Check 33.0.2
      6. Click Apply

      Android SDK Build Tools

    • Project Dependencies

      The following project dependencies were bumpped:

      • Kotlin: 1.7.21
      • Gradle: 7.6
      • Android Gradle Plugin (AGP): 7.4.2
      • Google Services Gradle Plugin: 4.3.15
      • AndroidX App Compat Library: 1.6.1
      • AndroidX WebKit Library: 1.6.0
      • AndroidX SplashScreen Core Library: 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!

  • Cordova Browser 7.0.0 Released!

    13 May 2023 - by Norman Breau

    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.

    Release Highlights

    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!

    Release Notes

    For a more detailed release notes, please see RELEASENOTES.md

  • Cordova iOS 6.3.0 Released!

    15 Apr 2023 - by Niklas Merz

    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.

    Release Highlights

    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!

  • Cordova Common 5.0.0 Released!

    09 Mar 2023 - by Bryan Ellis

    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.

    Release Highlights

    The most notable changes in this major release are:

    • GH-186 feat!: bump package requirement 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.

    • GH-197 feat(android): added monochrome attribute

    In preparation for Cordova-Android's next major release, supporting logic for Android's monochrome icons has been included.

  • Screen Orientation Plugin 3.0.3 Released!

    24 Feb 2023 - by Niklas Merz

    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
    

    Release Highlights

    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!

  • Cordova CLI 11.1.0 Released!

    16 Jan 2023 - by Bryan Ellis

    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:

    Release Highlights

    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!

  • Cordova Common 4.1.0 Released!

    15 Nov 2022 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Media Plugin 6.1.0 Released!

    09 Sep 2022 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova Android 11.0.0 Released!

    12 Jul 2022 - by Bryan Ellis

    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.

    Release Highlights

    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

      • Target SDK (targetSdk): 32
      • SDK Build Tool: 32.0.0
      • Gradle: 7.4.2
      • Kotlin: 1.5.21
      • Android Gradle Plugin (AGP): 7.2.1
      • Google Services Gradle Plugin: 4.3.10
      • AndroidX App Compat Library: 1.4.2
      • AndroidX WebKit Library: 1.4.0
      • AndroidX SplashScreen Core Library: 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!

  • Media Plugin 6.0.0 & Media Capture Plugin 4.0.0 Released!

    30 May 2022 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova Electron 3.1.0 Released!

    30 May 2022 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova Android 10.1.2 Released!

    15 Apr 2022 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • File Plugin 7.0.0 & Device Plugin 2.1.0 Released!

    11 Apr 2022 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Splash Screen Plugin Released!

    06 Apr 2022 - by Niklas Merz

    We are happy to announce that we have just released an update to our Splash Screen plugin!

    Release Highlights

    Splash Screen

    This patch release fixes some bugs on Android, including an issue with the "backbutton" event reported by some users.

    • GH-314 fix: refocus after webview visible (#186)
    • GH-213 fix(android): Fixes nav and title bars still appearing when app is fullscreen GH-180

  • Deprecation of the Cordova OSX Platform

    22 Mar 2022 - by Niklas Merz

    Deprecation of the Cordova OSX Platform

    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!

  • Cordova OSX 7.0.0 released and deprecation notice

    09 Mar 2022 - by Niklas Merz

    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.

    Release Highlights

    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.

    Deprecation Notice

    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!

  • Media Plugin 5.0.4 Released!

    25 Jan 2022 - by Bryan Ellis

    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
    

    Release Highlights

    • 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!

  • Cordova CLI 11.0.0 Released!

    21 Dec 2021 - by Bryan Ellis

    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:

    Release Highlights

    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!

    Greetings

    The Apache Cordova team wishes you Happy Holidays and a good start for the new year.

  • Template 6.0.0 Released!

    31 Oct 2021 - by Bryan Ellis

    We are happy to announce that we have just released a major update to our template!

    Release Highlights

    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.

  • Cordova Lib 10.1.0 Released!

    08 Oct 2021 - by Bryan Ellis

    We are happy to announce that we have just released cordova-lib 10.1.0!

    Release Highlights

    In this minor release, we have introduced various improvements and fixes. The most notable changes within this release are:

    • Updated the platform pinning to the latest minor/patch releases:
      • cordova-ios@^6.2.0
      • cordova-android@^9.1.0
      • cordova-electron@^1.1.1
    • Fixed the restore process to ensure that the correct pinned platform versions in package.json are reinstalled.

    Please report any issues you find at issues.cordova.io!

  • Cordova Android 10.1.1 Released!

    15 Sep 2021 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Electron 3.0.0 Released!

    06 Sep 2021 - by Bryan Ellis

    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.

    Release Highlights

    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:

    • The Electron core dependencies have been updated.
      • Electron: 14.0.0
      • Chromium: 93.0.4577.58
      • Node: v14.17.0
      • V8: v9.3
    • Node.js 10 is no longer supported. This release requires the development environment to have Node.js 12.x or higher. It is recommended to use the current LTS, which is 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!

  • Declaring Translation Bankruptcy

    25 Aug 2021 - by Jesse MacFadyen

    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 all existing translated documentation to a new static archive site
    • remove all translations from the main repo, and update build tooling to only publish the main version

    We 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

  • Camera Plugin 6.0.0 Released!

    23 Aug 2021 - by Bryan Ellis

    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
    

    Release Highlights

    • 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!

  • Cordova Android 10.1.0 Released!

    16 Aug 2021 - by Bryan Ellis

    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
    

    Release Highlights

    In this minor release, we:

    • Bump Core Libraries

      • AndroidX AppCompat@1.3.1
      • Google Services Gradle Plugin@4.3.8
      • Kotlin@1.5.21
    • 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!

  • Cordova Android 10.0.1 Released!

    30 Jul 2021 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova Android 10.0.0 Released!

    20 Jul 2021 - by Bryan Ellis

    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
    

    Release Highlights

    • 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

      • Target SDK (targetSdk): 30
      • SDK Build Tool: 30.0.3
      • Gradle: 7.1.1
      • Kotlin: 1.5.20
      • Android Gradle Plugin (AGP): 4.2.2
      • Google Services Gradle Plugin: 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!

    Notice of Issue

    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.

  • Whitelist Plugin Released!

    28 Jun 2021 - by Pieter Van Poyer

    We are happy to announce that we have just released an update to our Whitelist plugin!

    Release Highlights

    Whitelist

    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.

    • GH-62 Lock next patch release to cordova-android <10
    • GH-59 Deprecate plugin.

  • Network Information Plugin Released!

    03 Jun 2021 - by Pieter Van Poyer

    We are happy to announce that we have just released an update to our Network Information plugin!

    Release Highlights

    Network Information

    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.

    • GH-114 Bugfix issue 110 - online event was firing at unexpected times on Android, due to a missing equals implementation on the Android JSONObject.
    • GH-117 Removes deprecated navigator.network access.

  • Camera Plugin Released!

    11 May 2021 - by Pieter Van Poyer

    We are happy to announce that we have just released an update to our Camera plugin!

    Release Highlights

    Camera

    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.

    • GH-700 Bugfix issue 665 - app crashes after taking a picture due to a bug in the camera plugin when app is resumed

  • Cordova Android 9.1.0 Released!

    13 Apr 2021 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova Plugin InAppBrowser 5.0.0 Released!

    16 Feb 2021 - by Niklas Merz

    We are happy to announce that we have just released an update to cordova-plugin-inappbrowser!

    Release Highlights

    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:

    • The InAppBrowser and main webview now share web resources again (like cookies, sessions etc.).
    • You can now set InAppBrowserStatusBarStyle to 'darkcontent'.
    • The Android part got some code cleanup.

    Please report any issues you find at issues.cordova.io!

  • Deprecate Wkwebview Engine

    07 Feb 2021 - by Norman Breau

    Deprecation of the Cordova WKWebView Engine Plugin

    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!

  • Cordova iOS 6.2.0 Released!

    04 Feb 2021 - by Niklas Merz

    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.

    Release Highlights

    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!

  • WKWebView Engine Plugin Released!

    02 Feb 2021 - by Norman Breau

    We are happy to announce that we have just released an update to our WKWebView Engine plugin!

    Release Highlights

    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.

  • Cordova Fetch 3.0.1 Released!

    02 Feb 2021 - by Darryl Pogue

    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
    

    Release Highlights

    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!

  • Security Advisory CVE-2020-11990

    30 Nov 2020 - by Jesse MacFadyen

    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:

    • Confidentiality is breached.
    • The image file (photo) taken by the Android apps that was developed using the Apache Cordova camera plugin will be disclosed.

    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 ]

    JVN#59779918 (Japanese)

    JVN#59779918 (English)

  • Cordova Electron 2.0.0 Released!

    02 Oct 2020 - by Bryan Ellis

    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.

    Release Highlights

    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:

    • The Electron core dependencies have been updated.
      • Electron: 10.1.2
      • Chromium: 85.0.4183.98
      • Node: v12.16.3
      • V8: v8.5
    • NodeJS 6 and 8 is no longer supported. This release requires the development environment to have NodeJS 10.x or higher. It is recommended to use the current LTS, which is 12.18.4 at the time of this release.
    • DevTool extensions can now be added to debug builds to improve debugging capabilities. GH-160
    • 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" />
      
    • Support passing of Electron arguments to the 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!

  • Security Advisory CVE-2020-6506

    29 Sep 2020 - by Jesse MacFadyen

    Formally Disclosed Advisory:

    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.

    Mitigation

    There are precautions you can take to avoid this vulnerability.

    1. Use a restrictive an allow-list and content security policy (CSP) as possible.
    2. Generally, always load local code into your application's main webview, and use InAppBrowser to display anything remote.
    3. 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.

    Additional References

    edit: fixed links that weren't linking -JM

  • Camera Plugin Released!

    18 Sep 2020 - by Bryan Ellis

    We are happy to announce that we have just released an update to our camera plugin!

    Release Highlights

    In this major release, we have:

    • removed the 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.
    • removed the 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.
    • bumped the project requirement definition. This plugin version requires Cordova CLI >= 9.0.0. If building for Android, this plugin version will also require the Cordova Android platform >= 9.0.0.
    • changed the location of the temporary saved images from external to internal cache.

  • Cordova iOS 6.1.1 Released!

    31 Aug 2020 - by Darryl Pogue

    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
    

    Release Highlights

    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!

  • Goodbye PhoneGap

    14 Aug 2020 - by The Contributors of Apache Cordova

    Goodbye PhoneGap

    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

  • Cordova CLI 10.0.0 Released!

    04 Aug 2020 - by Bryan Ellis

    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
    

    Release Highlights

    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:

    • Removed the plugin save command, which had become the default behaviour since version 7.0.
    • Improved cordova info display.
    • Raised the minimum required NodeJS version for this release to 10.x.

    Please report any issues you find at issues.cordova.io!

  • Cordova Lib 10.0.0 Released!

    28 Jul 2020 - by Bryan Ellis

    We are happy to announce that we have just released cordova-lib 10.0.0!

    Release Highlights

    In addition to various improvements and fixes, this release has:

    • Removed the plugin save command, which had become the default behaviour since version 7.0.
    • Updated the pinned platforms:
      • cordova-android@9.0.0
      • cordova-ios@6.1.0
      • cordova-osx@6.0.0
    • Raised the minimum required NodeJS version for this release to 10.x.

    Please report any issues you find at issues.cordova.io!

  • Splash Screen Plugin Released!

    21 Jul 2020 - by Bryan Ellis

    We are happy to announce that we have just released an update to our Splash Screen plugin!

    Release Highlights

    Splash Screen

    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.

    • GH-263 breaking: remove iOS platform code from plugin repo
    • GH-282 fix: js clobber only on supported platforms

  • UPDATED: How to handle the 'Deprecated API Usage - UIWebView' warning while uploading to the App Store

    18 Jul 2020 - by Niklas Merz

    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.

  • Cordova Common 4.0.2 Released!

    04 Jul 2020 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Android 9.0.0 Released!

    29 Jun 2020 - by Bryan Ellis

    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
    

    Release Highlights

    • 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

      • The default target SDK version is set to 29.
      • The minimum SDK version is set to 22.
      • The minimum supported Android version is 5.1.

      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

      • Cordova has increased the default Gradle version to 6.5.
      • Cordova has increased the Gradle Plugin to version 4.0.0

    Please report any issues you find at issues.cordova.io!

  • Cordova iOS 6.1.0 Released!

    23 Jun 2020 - by Darryl Pogue

    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
    

    Release Highlights

    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!

  • Cordova OSX 6.0.0 Released!

    15 Jun 2020 - by Niklas Merz

    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.

    Release Highlights

    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!

  • Splash Screen and InAppBrowser plugin Released!

    13 Jun 2020 - by Niklas Merz

    We are happy to announce that we have just released an update to some plugins!

    Release Highlights

    InAppBrowser

    The most notable changes in this major release are:

    • The Cordova-iOS 6.x platform removes all UIWebView code and this version also removes the UIWebView code from the InAppBrowser plugin GH-635.
    • For backwards compatibility, this plugin used to hook window.open. However, the plugin-installed hook of window.open could have unintended side effects (especially if this plugin is included only as a dependency of another plugin) and it has been removed in this release. GH-599
    • The InAppBrowser plugin used to implement its own status bar. It has been removed in this release to correctly display the content of the iOS status bar without overlapping the content in the InAppBrowser on different devices. GH-656

    Splash Screen

    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.

    • GH-261 chore: add cordova-ios requirement <6.0.0

  • Cordova Create, Common, and Xcode Released!

    01 Jun 2020 - by Bryan Ellis

    We are happy to announce that we have just released an update to our tools!

    Release Highlights

    cordova-common

    • GH-143 fix: typo in access & allow navigation
    • GH-142 fix(ConfigParser): ImageResources constructor

    xcode

    • GH-109 Add targetName to parameter to getBuildProperty

    cordova-create

    • GH-52 Fix isRemoteUri
    • GH-40 breaking: major usability & maintainability improvements
      • Write package.json with indentation of 2
      • Simplify interface of main export (§1)
      • New logic for setting attributes in package.json & config.xml (§3)
      • Do not copy "missing" files from default template (§5)
      • Reduce number of supported template layouts (§7)
      • Drop support for linking (§8)
      • Use either opts.events or a no-op for logging (§4)

  • Cordova iOS 6.0.0 Released!

    01 Jun 2020 - by Bryan Ellis

    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.

    Release Highlights

    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.

    • Fixed overwriting the bundle identifier when there are multiple Xcode build targets
    • 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!

  • Tools & Template Released!

    13 Apr 2020 - by Bryan Ellis

    We are happy to announce that we have just released an update to our tools and template!

    Release Highlights

    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.

    cordova-fetch

    • GH-78 Work around npm bug when uninstalling old cordova platforms
    • GH-65 Save platforms and plugins to devDependencies
    • GH-65 fix npm install package-name detection when a package has post-install

    cordova-js

    • GH-211 Improve callback error handling
    • GH-215 Do not try to replace window.navigator
    • GH-200 Fix parsing of some parameter formats in argscheck.checkArgs
    • GH-188 Add Electron Support

    xcode

    • GH-106 Update build property by targetname
    • GH-79 feat: add new optional paramter to pbxProject.addTarget

    cordova-serve

    • GH-30 breaking: replace dependency opn w/ open

    cordova-app-hello-world

    • GH-43 feature: dark mode
    • GH-58 chore(index.html): add charset, prevent scaling, use default attributes
    • GH-57 Update index.css, fixes duplicated env right
    • GH-55 Simplify demo app JavaScript
    • GH-52 fix: remove unsupported hooks directory

    Please report any issues you find at issues.cordova.io!

  • Cordova Common 4.0.0 Released!

    30 Mar 2020 - by Bryan Ellis

    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.

    Release Highlights

    The most notable changes in this major release are:

    • GH-94 fix: PluginInfoProvider for scoped plugins
    • GH-90 chore: drop node 6 and 8 support

    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.

  • How To Use 'WKWebViewOnly'

    18 Mar 2020 - by Niklas Merz

    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.

  • Cordova Plugin InAppBrowser 3.2.0 Released!

    08 Jan 2020 - by Niklas Merz

    We are happy to announce that we have just released an update to cordova-plugin-inappbrowser!

    Release Highlights

    The most notable improvements in this minor release are:

    • The support of the WKWebViewOnly preference.
    • A patch for an issue with WKWebView introduced with iOS 13.

    Please report any issues you find at issues.cordova.io!

  • Cordova Windows 7.0.1 Released!

    06 Jan 2020 - by Christopher J. Brody

    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.

    Release Highlights

    To upgrade:

    cordova platform remove windows
    cordova platform add windows@7.0.1
    

    Patch release to resolve issue with path to winjs dependency (#331)

  • Cordova Node Xcode 2.1.0 Released!

    24 Dec 2019 - by Chris Brody

    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.

    Release Highlights

    Minor release with some external contributions

    Please report any issues you find at issues.cordova.io!

  • Cordova iOS 5.1.1 Released!

    02 Dec 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova iOS 5.1.0 Released!

    25 Nov 2019 - by Bryan Ellis

    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.

    Release Highlights

    To upgrade:

    cordova platform remove ios
    cordova platform add ios@5.1.0
    

    The most notable improvements in this minor release are:

    • The ability to disable UIWebView during the compile-time.
    • Avoid locking when adding platforms on a non-synced pods repo. (CocoaPods >=1.8.0)
    • Bumped the minDeploymentTarget to 10.0 in Podfile.

    Please report any issues you find at issues.cordova.io!

  • Cordova Common 3.2.1 Released!

    05 Nov 2019 - by Bryan Ellis

    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.

    Release Highlights

    The most notable changes in this patch release are:

    • Added the .jsproj extension as an XML allowed extension to be editable by the config-file tag.
    • Reverted GH-24 which caused permissions, defined by the plugin's plugin.xml, not to be added.

  • Cordova Android 8.1.0 Released!

    17 Sep 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Electron 1.1.1 Released!

    27 Aug 2019 - by Bryan Ellis

    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.

    Release Highlights

    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:

    • Builds no longer fails when icons with incorrect requirements are defined as long as one of the icons meet the requirements.
    • Prepare no longer fails when 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!

  • Cordova Electron 1.1.0 Released!

    01 Jul 2019 - by Bryan Ellis

    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.

    Release Highlights

    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:

    • Bundle node modules with your Electron app
    • Append overridable/top-level platform and package options
    • Append an installer icon for custom builds
    • Use splash screens

    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!

  • Cordova-Common Release

    14 Jun 2019 - by Chris Brody

    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.

    Release Highlights

    • (ios) plist document not indented with tabs (#69)
    • Update fs-extra to v8 (#70)
    • Add example usage of podspec declarations (#67)
    • implement setPreference and setPlatformPreference (#63)
    • Catch leaked exceptions in superspawn and convert them to rejections (#66)

  • Cordova iOS 5.0.1 Released!

    22 Apr 2019 - by Darryl Pogue

    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
    

  • Node 6.x and 8.x Deprecation Timeline for Apache Cordova

    11 Apr 2019 - by Bryan Ellis

    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.

  • Cordova Plugman 3.0.0 Released!

    22 Mar 2019 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova CLI 9.0.0 Released!

    22 Mar 2019 - by Bryan Ellis

    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
    

    Release Highlights

    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!

  • Cordova Lib 9.0.0 Released!

    18 Mar 2019 - by Bryan Ellis

    We are happy to announce that we have just released cordova-lib 9.0.0!

    Release Highlights

    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!

  • Cordova Electron 1.0.2 Released!

    18 Mar 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Windows 7.0.0 Released!

    08 Mar 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Electron 1.0.0 Released!

    28 Feb 2019 - by Bryan Ellis

    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.

    Release Highlights

    To install:

    Cordova CLI 9.x

    cordova platform add electron@1.0.0
    

    Some of the major key features for this release:

    • Electron v4.0.1
    • Build Support (electron-builder@^20.38.4)
      • Linux, macOS, and Windows
      • Signing for macOS and Windows
    • App and Installer Icon Support
    • Run Support (App Previewing)
    • Plugin Support
      • Plugins with browser support are also usable within 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!

  • Cordova Android 8.0.0 Released!

    16 Feb 2019 - by Bryan Ellis

    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.

    Release Highlights

    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:

    • Bump Gradle to 4.10.3
      • Support Android SDK 28
      • Support Android Studio 3.3.0
    • Added Adaptive Icon Support

    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!

  • Cordova iOS 5.0.0 Released!

    09 Feb 2019 - by Bryan Ellis

    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.

    Release Highlights

    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:

    • GH-409 GH-489 Supports Xcode 10 New Build System
    • GH-405 Improved Cocoapods Support
    • GH-395 Improved Swift Support
    • GH-508 Improved Automatic Provisioning Profile Signing

    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!

  • Cordova OSX 5.0.0 Released!

    04 Feb 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Browser 6.0.0 Released!

    04 Feb 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Node Xcode 2.0.0 Released!

    17 Jan 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova Create 2.0.0 Released!

    10 Jan 2019 - by Bryan Ellis

    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.

    Release Highlights

    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!

  • Cordova-Common Release

    03 Jan 2019 - by Chris Brody

    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.

    Release Highlights

    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:

    • Cordova events singleton object, using a real class (#60)
    • Refactor CordovaLogger to singleton class (#53)

    cordova-common 3.0.0 release highlights

    Here are the major changes from the cordova-common 3.0.0 release which was not announced before:

    • Add PluginInfo.getPodSpecs method (#48)
    • CB-13685 Android: Update ConfigParser for Adaptive Icons (#26)
    • CB-14099 osx: Fixed Resolve Config Path for OSX (#32)
    • CB-14108 fix incorrect count in config_munge in ios.json and android.json (#24)
    • CB-13496 Fix greedy regex in plist_helpers (#45)
    • CB-12016 Removed cordova-registry-mapper dependency (#33)
    • CB-14166 Use cross-spawn for platform-independent spawning (#50)
    • CB-14064 Drop support for Node.js version 4 (#15)

  • Tools Released!

    25 Dec 2018 - by Bryan Ellis

    We are happy to announce that we have just released an update to our tools!

    Release Highlights

    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!

  • Cordova node xcode 1.1.0 Patch Release

    21 Dec 2018 - by Chris Brody

    We are happy to announce that Cordova node xcode 1.1.0 version was released in December 2018.

    Release Highlights

    The purpose of this patch release is to include the following updates:

    • feat: omit objects with empty values (#24)
    • Resolve issue with pbxFile extension (#31)
    • uuid@3 update (#40)
    • move pegjs to devDependencies in package.json (#10)
    • Fixed bug where comment is not removed on removing embedded frameworks. (#5)

    Deprecation Note

    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.

  • Cordova Android 7.1.4 Released!

    23 Nov 2018 - by Chris Brody

    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
    

  • Cordova Android 7.1.3 Released!

    21 Nov 2018 - by Chris Brody

    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
    

  • Cordova Android 7.1.2 Released!

    07 Nov 2018 - by Darryl Pogue

    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
    

  • Cordova-CLI 8.1.2 Patch Release

    07 Oct 2018 - by Chris Brody

    We are happy to announce that Cordova CLI 8.1.2 patch version was released in October 2018.

    Release Highlights

    The purpose of this patch release is to include cordova-lib@8.1.1 bugfix update as follows:

    • Updated 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)

    Deprecation Note

    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.

  • Cordova-lib Release

    05 Oct 2018 - by Chris Brody

    We are happy to announce that cordova-lib 8.1.1 was released in October 2018.

    Release Highlights

    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:

    • GH-708 reintroduce xcode dependency to to avoid breaking plugins such as branch-cordova-sdk before next major release
    • GH-708 reintroduce other dependencies that were dropped in version 8.1.0 to better ensure that any other plugins or applications using requireCordovaModule would not be broken by a minor release upgrade

    Deprecation Note

    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.

  • Cordova Windows 6.0.1 Released!

    04 Oct 2018 - by Chris Brody

    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
    

  • Cordova-CLI Hotfix Release

    27 Sep 2018 - by Chris Brody

    We are happy to announce that Cordova CLI 8.1.1 hotfix was released in September 2018.

    Release Highlights

    The purpose of this hotfix release is to resolve a couple items that were broken in the Cordova CLI 8.1.0 release:

    • GH-339 Fix bin/cordova on Node.js 4
    • GH-337 Revert messing with transitive dependencies in npm-shrinkwrap.json (re-introduces a low-severity npm audit warning)

    Deprecation Note

    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.

  • Cordova-CLI Release

    26 Sep 2018 - by Chris Brody

    We are happy to announce that Cordova CLI 8.1.0 was released in September 2018.

    Release Highlights

    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:

    • README.md fixes
    • GH-333 Update to use cordova-lib@8.1.0
    • GH-295 Proper error code and message when failing
    • GH-296 Remove leftover makeshift benchmarking code
    • GH-296 Use multi-line comment for license headers
    • CB-13772 print version numbers correctly in cordova requirements GH-291
    • GH-307 Remove outdated docs translations
    • GH-306 Remove mentions of 'cordova plugin search' from docs
    • GH-312 Update ESLint and fix linting errors
    • GH-312 Update dependencies
    • GH-300 Update insight to resolve npm audit warning

    Deprecation Note

    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.

  • Cordova-lib Release

    17 Sep 2018 - by Chris Brody

    We are happy to announce that cordova-lib 8.1.0 was released in September 2018.

    Release Highlights

    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:

    • GH-691 update to use cordova-windows@~6.0.x by default
    • GH-646 Update Android platform to latest release
    • CB-14148 remove nonsense "www" platform from Cordova listing (GH-620)
    • CB-14243 change dash to underscore for save-exact key reference (GH-631)
    • GH-630 Improve plugman/uninstall.js messages
    • GH-628 Fix promise handling when removing multiple plugins
    • CB-14033 Support symbolic dir links on Windows (GH-621)
    • CB-13055 Fold all fetch options to true (GH-624)
    • GH-617 Set the fetch option to true in plugman
    • CB-13532 Find plugins in devDependencies
    • GH-611 Fix ElementTree error about unclosed XML tag
    • GH-611 Dependency cleanup - update and remove several dependencies
    • GH-693 Add browser default engine

    Deprecation Note

    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.

  • Cordova-fetch Release

    17 Sep 2018 - by Chris Brody

    We are happy to announce that cordova-fetch 1.3.1 was released in September 2018.

    Release Highlights

    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:

    • GH-20 Fix repo url in package.json
    • CB-13503 fix trimID bug when using file:path/to/plugin (GH-13)

    Deprecation Note

    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.

  • Cordova OSX (macOS) 4.0.2 Released!

    14 Aug 2018 - by Chris Brody

    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
    

  • Cordova browser 5.0.4 Released!

    10 Aug 2018 - by Chris Brody

    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
    

  • Breaking changes coming to the iOS WebView in Apache Cordova

    01 Aug 2018 - by Shazron Abdullah

    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.

    WebView Engine Plugins

    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.

    Figure 1

    Future Cordova iOS with WKWebView

    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.

    Figure 2

  • Cordova iOS 4.5.5 Released!

    26 Jul 2018 - by Chris Brody

    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
    

  • Cordova-Common Release

    23 Jul 2018 - by Chris Brody

    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.

    Release Highlights

    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.x

    Deprecation Note

    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.

  • Cordova Android 7.1.1 Released!

    18 Jul 2018 - by Chris Brody

    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
    

  • Cordova-JS release

    26 Jun 2018 - by Chris Brody

    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.

    Release Highlights

    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:

    • CB-9366 log error.stack data
    • CB-14145 package.json resolve npm audit warnings in devDependencies (for build and test scripts)
    • CB-14155 fix btest build target (by using express instead of connect in devDependencies)
    • Other internal test fixes

  • Cordova-Common Release

    19 Jun 2018 - by Chris Brody

    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.

    Release Highlights

    The purpose of this release is to resolve issues with dependencies on cordova-ios@4. Here are the major changes:

    • Revert change to use strip-bom package to strip BOM
    • Revert change to update dependencies in package.json (needed to resolve issues with cordova-ios@4) but keep using plist@^3.0.1 to avoid npm audit issue

    Deprecation Note

    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.

  • Cordova-Common Release

    04 Jun 2018 - by Darryl Pogue

    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.

    Release Highlights

    The purpose of this release was primarily to bring some dependencies up to date, but there were also a handful of small bugfixes:

    • CB-13979 More consistency for config.xml lookups
    • CB-11691 Fix for modifying binary plists
    • CB-13770 Warn when <edit-config> or <config-file> not found
    • CB-13744 Recognize storyboards as XML files

    Deprecation Note

    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.

  • Plugins Release

    16 Apr 2018 - by Steve Gill

    The following plugins were updated today:

    • cordova-pluin-vibration@3.1.0
    • cordova-plugin-statusbar@2.4.2
    • cordova-plugin-media-capture@3.0.2
    • cordova-plugin-inappbrowser@3.0.0
    • cordova-plugin-globalization@1.11.0
    • cordova-plugin-device@2.0.2
    • cordova-plugin-camera@4.0.3
    • cordova-plugin-battery-status@2.0.2
    • cordova-plugin-device-motion@2.0.1
    • cordova-plugin-device-orientation@2.0.1

    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:

  • Cordova Windows 6.0.0 Released!

    27 Feb 2018 - by Jan Piotrowski

    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:

    Changes

    • Windows 10 / UWP builds are now default, meaning cordova build windows will now build a Windows 10 UWP app by default.
      Windows (Phone) 8.1 is still supported, of course, just use cordova build windows -- --appx=8.1-win, cordova build windows -- --appx=8.1-phone or an equivalent configuration option.
    • You can now build apps with a current installation of Visual Studio 2017 (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.)
    • New ENV variable 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.
      • If you have Visual Studio 2017 and Visual Studio 2015 installed at the same time, the normal logic would always choose Visual Studio 2017's MSBuild 15 - and fail on a Windows (Phone) 8.1 project. If you set the environment variable to MSBuild 14, it can successfully build your 8.1 apps.
      • If the supplied path is invalid or doesn't contain a working MSBuild, the normal MSBuild selection logic will be triggered
    • Fixes several bugs

    Installation

    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
    

    Known limitations

    As it's often the case, the 6.0.0 release of cordova-windows is not perfect and has some known limitations:

    • If you only have Visual Studio 2017 installed on your machine, you can not build Windows (Phone) 8.1 apps.
    • As with earlier versions, Windows 10 Mobile emulators are not supported by the CLI but require Visual Studio to be used to build the app
    • Some build and requirements error messages are not optimal

    Feedback

    If you encounter problems with this new version, you can use the GitHub issues of the cordova-windows repository to do so now.

    The future of 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.

  • Cordova Android 7.1.0 Released!

    26 Feb 2018 - by Steve Gill

    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
    

  • A Better Way to Exercise Cordova Plugins

    02 Feb 2018 - by John M. Wargo

    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.

  • Plugins Release

    29 Jan 2018 - by Suraj Pindoria

    The following plugins were updated today:

    • cordova-plugin-camera@4.0.2
    • cordova-plugin-file-transfer@1.7.1
    • cordova-plugin-inappbrowser@2.0.2
    • cordova-plugin-media@5.0.2
    • cordova-plugin-splashscreen@5.0.2

    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:

  • Plugins Release

    30 Dec 2017 - by Simon MacDonald

    The following plugins were updated today:

    • cordova-plugin-battery-status@2.0.1
    • cordova-plugin-camera@4.0.1
    • cordova-plugin-device@2.0.1
    • cordova-plugin-dialogs@2.0.1
    • cordova-plugin-file@6.0.1
    • cordova-plugin-geolocation@4.0.1
    • cordova-plugin-inappbrowser@2.0.1
    • cordova-plugin-media@5.0.1
    • cordova-plugin-media-capture@3.0.1
    • cordova-plugin-network-information@2.0.1
    • cordova-plugin-screen-orientation@3.0.1
    • cordova-plugin-splashscreen@5.0.1
    • cordova-plugin-statusbar@2.4.1
    • cordova-plugin-vibration@3.0.1

    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:

  • Plugins Release

    20 Dec 2017 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status@2.0.0
    • cordova-plugin-camera@4.0.0
    • cordova-plugin-contacts@3.0.1
    • cordova-plugin-device@2.0.0
    • cordova-plugin-dialogs@2.0.0
    • cordova-plugin-file@6.0.0
    • cordova-plugin-geolocation@4.0.0
    • cordova-plugin-globalization@1.0.9
    • cordova-plugin-inappbrowser@2.0.0
    • cordova-plugin-media@5.0.0
    • cordova-plugin-media-capture@3.0.0
    • cordova-plugin-network-information@2.0.0
    • cordova-plugin-splashscreen@5.0.0
    • cordova-plugin-statusbar@2.4.0
    • cordova-plugin-screen-orientation@3.0.0
    • cordova-plugin-vibration@3.0.0

    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:

  • Tools Released!

    18 Dec 2017 - by Steve Gill

    We just released an update to our tools!

    Release Highlights

    • CB-13056: removed support for WebOS, BlackBerry10, and Ubuntu
    • CB-13057: removed cordova save command. This command isn't needed as cordova auto saves dependencies.
    • CB-13055: removed --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!

  • Cordova Android 7.0.0 Released!

    04 Dec 2017 - by Joe Bowser

    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">
    

    Major Changes include:

    • Support for Java 1.8 language features in Cordova Plugins
    • CordovaInterface now has a Context getter so that contexts can be retrieved without an Activity
    • Cordova can now build for x86_64, arm64 and armeabi architecture when building plugins that use the NDK
    • The minimum Android API version supported is now API Level 19
    • Due to the directory structure change, we no longer support in-line upgrading, bringing us in line with iOS
    • ANT builds are no longer supported and the functionality has been removed.

    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
    

  • Deprecation of the Cordova Contacts Plugin

    27 Nov 2017 - by Vishal Mishra

    Deprecation of the Cordova Contacts Plugin

    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!

  • Cordova iOS 4.5.4

    21 Nov 2017 - by Suraj Pindoria

    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:

    • Added flag for Xcode-managed provisioning
    • Fixed compile error when compile source as objective-c++
    • Adjusted storyboard constraints

    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
    

  • Migrating from the Globalization Plugin

    20 Nov 2017 - by Vishal Mishra

    Migrating from the Cordova Globalization Plugin

    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.

    Migrating from the plugin to the Internationalization API

    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!

  • Plugins Release

    10 Nov 2017 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status@1.2.5
    • cordova-plugin-camera@3.0.0
    • cordova-plugin-contacts@3.0.0
    • cordova-plugin-device@1.1.7
    • cordova-plugin-dialogs@1.3.4
    • cordova-plugin-file-transfer@1.7.0
    • cordova-plugin-file@5.0.0
    • cordova-plugin-geolocation@3.0.0
    • cordova-plugin-globalization@1.0.8
    • cordova-plugin-inappbrowser@1.7.2
    • cordova-plugin-media@4.0.0
    • cordova-plugin-media-capture@2.0.0
    • cordova-plugin-network-information@1.3.4
    • cordova-plugin-splashscreen@4.1.0
    • cordova-plugin-statusbar@2.3.0
    • cordova-plugin-screen-orientation@2.0.2
    • cordova-plugin-vibration@2.1.6
    • cordova-plugin-whitelist@1.3.3
    • cordova-plugin-wkwebview-engine@1.1.4
    • cordova-plugin-test-framework@1.1.6

    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:

  • Cordova Android 6.4.0 Released!

    09 Nov 2017 - by Joe Bowser

    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
    

  • Cordova iOS 4.5.3

    31 Oct 2017 - by Suraj Pindoria

    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:

    • Updated splash screen mapping for new and missing devices
    • Re-added an icon mapping that was accidentally removed

    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
    

  • Cordova-Fetch@1.2.1 Released!

    30 Oct 2017 - by Audrey So

    We just released some changes to cordova-fetch!

    Release Highlights:

    • Added node 8 support to our continuous integration tests.

  • Cordova Browser@5.0.1 Released

    19 Oct 2017 - by Steve Gill

    We just released an update to cordova-browser

    Release Highlights:

    • CB-13228 Fixed issue with Browser not adding with cordova<7.

    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!

  • Transition off of cordova-plugin-file-transfer

    18 Oct 2017 - by Fil Maj

    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:

    • No more work will be done on the file-transfer plugin by the Cordova development community.
    • You can continue to use the file-transfer plugin if you wish - it should work fine as-is for the foreseeable future.
    • We highly suggest Cordova users transition to using the standards-compliant way of sending and receiving binary data.

    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!

    Requirements

    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!

    Platform Support

    Binary types in JavaScript, as well as the extended XHR features, are available on the following Cordova-supported platforms without requiring any additional plugins:

    • Android 4.4 or newer.
    • iOS 10 or newer.
    • Windows UWP (8.1, 10 or newer all work).
    • Windows Phone 8 or newer.

    As always, check caniuse.com for detailed support for the required bits, like Blob, Typed Arrays, and extended XHR features.

    TL;DR

    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!

    The Long Version

    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.

    Binary Types in JavaScript

    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.

    XHR

    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.

    Summary

    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!

  • Cordova iOS 4.5.2

    16 Oct 2017 - by Suraj Pindoria

    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:

    • Fixed a major issue that prevented building binaries when using a build config file
    • Updated the icon mapping to include new iOS 11 icons as well as added Apple Watch icons

    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
    

  • Tools Released!

    10 Oct 2017 - by Steve Gill

    We just released a small update to our tools!

    Release Highlights

    • CB-13303 added --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.
    • CB-13353 added --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
    • This is the first release of 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.
    • CB-13308 fixed issues with restoring plugins and platforms while using npm@5+.
    • CB-12787 Fix plugin installation with --link option.
    • CB-13056 added deprecation notice for WebOS
    • CB-13057 added deprecation warning for cordova platform save
    • CB-12901 Deprecated .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!

  • Cordova Android 6.3.0 Released!

    27 Sep 2017 - by Joe Bowser

    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
    

  • Cordova iOS 4.5.1

    25 Sep 2017 - by Suraj Pindoria

    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:

    • For iPhone X's new screen size, you must use Launch Storyboards to take full advantage of it
    • Current Splash Screen images will result in letterboxing

    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:

    1. Designing Websites for iPhone X
    2. Understanding the WebView Viewport in iOS 11
    3. Removing the White Bars in Safari on iPhone X

    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
    

  • Plugins Release

    22 Sep 2017 - by Steve Gill

    The following plugins were updated today because they are being deprecated:

    • cordova-plugin-console: 1.1.0
    • cordova-plugin-compat: 1.2.0
    • cordova-plugin-device-motion: 2.0.0
    • cordova-plugin-device-orientation: 2.0.0

    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:

  • Cordova iOS 4.5.0

    08 Sep 2017 - by Shazron Abdullah

    We are happy to announce a minor version of Cordova iOS 4.5.0 has been released!

    Three new features were added:

    1. CB-12937 - Plugins can receive handleOpenURLWithApplicationSourceAndAnnotation: now (new selector, that sends the URL with additional metadata)
    2. CB-13164 - Integrated cordova-plugin-console to build in support for window.console.
    3. CB-10916 - Support display name for iOS

    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:

    1. Updated ios-deploy dependency to v1.9.2, which contains a fix for Xcode 9
    2. Updated the bundled ios-sim to v6.0.0 with support for newer iPads (and this fixes some related bugs)
    3. New <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
    

  • Cordova-Common@2.1.0 Released!

    05 Sep 2017 - by Audrey So

    We just released some changes to cordova-common!

    Release Highlights:

    • Support added for <config-file> in config.xml.
    • allows-arbitrary-loads-for-media attribute parsing added for getAccesses.
    • Added variable replacing the framework tag.
    • JSON uses 2 spaces for indentation.

    Watch for this release to start rolling into upcoming platform and cordova-cli releases.

  • Cordova Browser@5 & Cordova Serve@2 Released!

    29 Aug 2017 - by Steve Gill

    We just released an update to cordova-browser and cordova-serve

    Release Highlights:

    • cordova-browser: Added manifest.json to browser projects. This enables basic Progressive Web App support
    • cordova-browser: Implemented PlatformApi.
    • cordova-serve: Removed Q dependency in favor of native javascript promises.
    • cordova-serve: Changed default behavior of which browser is launched during serve. Now the serve command will use the system default browser instead of opening a new instance of chrome. You can still pass in a specific target

    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!

  • Tools Released!

    12 May 2017 - by Steve Gill

    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!

  • Apache Cordova 7.0.0

    04 May 2017 - by Audrey So

    We are happy to announce that Apache Cordova 7.0.0 has been released!

    Most notable changes include:

    • cordova@7.0.0
    • cordova-lib@7.0.0
    • plugman@1.5.0
    • cordova-app-hello-world@3.12.0
    • cordova-common@2.0.3
    • cordova-create@1.1.0
    • cordova-fetch@1.1.0

    • If a package.json does not exist in your project, it will be auto-created for you when cordova prepare is called.
    • When adding a platform or plugin, the previous default behavior of not-saving has changed to saving. Now it will automatically save that platform or plugin to your config.xml and package.json. Details about platform and plugin versions are also automatically saved in config.xml and package.json. The --save flag is no longer required to save. Use --nosave to prevent saving to config.xml or package.json.
    • Fetch is now the default method for fetching platforms. Fetch uses your system npm to npm install modules into your project. The --fetch flag is no longer required. Use the --nofetch flag to revert to pre-Cordova@7.0 behavior (npm install is not used to fetch modules).
    • After cordova prepare is run, package.json and config.xml should contain identical platforms and versions. In case of conflicts, package.json is given precedence over config.xml. For example, suppose package.json contains cordova-android@6.0.0 and config.xml contains cordova-android@4.0.0. After cordova prepare is run, config.xml and package.json will each contain only cordova-android@6.0.0.
    • Platforms and plugins are now required to have a package.json file.
    • We have added support for custom platforms. This will allow future custom platforms, and modified versions of existing platforms. Example:

        cordova platform add custom-platform-name
      
    • A cordova config command has been created to set, get, delete, edit, and list global Cordova options. For example, you can use the following command cordova config set <key> <value> to set the value of autosave or fetch to true or false.
    In the following case, you are turning off autosave as the default setting. autosave is true by default in cordova. Example: ```
    cordova config set autosave false
    ```
    
    
    In the following case, you are turning off `fetch` as the default setting. `fetch` is `true` by default in cordova.  Example:
    
    ```
    cordova config set fetch false
    ```
    
    In addition, the `cordova config` command supports the `browserify` setting, which allows the JavaScript of plugins to be loaded at build time compared to run time. For instance, if the `browserify` value is not explicitly passed in by the user, the `cordova config` command will automatically set the `browserify` value saved in `~/.config/configstore/` to be saved `globally`. Users can get and set `browserify`. `browserify` is `false` by deafult in cordova. Example:
    
    ```
    cordova config get browserify
    cordova config set browserify true
    ```
    
    • Dropped support for node 0.x. Only node versions 4.0 and up are supported.
    • Dropped support for wp8 (windows phone 8).
    • cordova-windows : dropped support for any versions older than 4.0.0.
    • cordova-android : dropped support for any versions older than 5.0.0.
    • cordova-ios : dropped support for any versions older than 4.0.0.
    • cordova-osx : dropped support for any versions older than 4.0.0.

    To upgrade:

    npm install -g cordova@latest
    

    Please report any issues you find at issues.cordova.io!

  • Cordova Android 6.2.3 Released!

    04 May 2017 - by Fil Maj

    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.

  • Plugins Release

    01 May 2017 - by Fil Maj

    The following plugins were updated today:

    • cordova-plugin-battery-status: 1.2.4 (dfec094)
    • cordova-plugin-camera: 2.4.1 (ba9a803)
    • cordova-plugin-console: 1.0.7 (fa26558)
    • cordova-plugin-contacts: 2.3.1 (1c27c9a)
    • cordova-plugin-device-motion: 1.2.5 (04ce0ea)
    • cordova-plugin-device-orientation: 1.0.7 (7af309f)
    • cordova-plugin-device: 1.1.6 (eeb48e8)
    • cordova-plugin-dialogs: 1.3.3 (34cccf6)
    • cordova-plugin-file: 4.3.3 (06ff0eb)
    • cordova-plugin-file-transfer: 1.6.3 (720f314)
    • cordova-plugin-geolocation: 2.4.3 (12fae5b)
    • cordova-plugin-globalization: 1.0.7 (273e5a6)
    • cordova-plugin-inappbrowser: 1.7.1 (ff6a765)
    • cordova-plugin-media: 3.0.1 (2a1ee43)
    • cordova-plugin-media-capture: 1.4.3 (b78a4b2)
    • cordova-plugin-network-information: 1.3.3 (710b53d)
    • cordova-plugin-screen-orientation: 2.0.1 (8699159)
    • cordova-plugin-splashscreen: 4.0.3 (85aa605)
    • cordova-plugin-statusbar: 2.2.3 (77a6ae5)
    • cordova-plugin-vibration: 2.1.5 (96c4ad6)
    • cordova-plugin-wkwebview-engine: 1.1.3 (fce6123)

    Release Highlights:

    • All Plugins: Updated Android 6 build badges, and added a package.json to the tests/ folder in preparation for the Cordova@7 release.
    • Contacts: CB-10496 Android now supports providing base64 encoded data: URIs as a contact's photo field.
    • Device: CB-12105 Proper detection of the Edge browser.
    • InAppBrowser: CB-12266 On the Browser platform, the loadstop event's url is now a string instead of an object, aligning it with the other platforms.
    • Media: CB-12542 On iOS, fix .wav file recording and add .m4a recording support.
    • Screen Orientation: CB-12543 On iOS, when locking the orientation, force a rotation to that orientation.
    • StatusBar: CB-10879 On Android API 21+, enable 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:

  • Cordova Android 6.2.2 Released!

    28 Apr 2017 - by Steve Gill

    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.

  • Cordova iOS 4.4.0

    26 Apr 2017 - by Shazron Abdullah

    We are happy to announce a minor version of Cordova iOS 4.4.0 has been released!

    Three new features were added:

    1. <resource-file> tag support in config.xml
    2. Carthage support
    3. Dynamic framework support through the "embed" attribute of the <framework> tag in plugin.xml (needs cordova-cli@7.0.0, which is coming soon)

    Other notable issues:

    1. Fixed build error on Xcode 8.3.2
    2. Removed iOS 8 Support (only iOS 9 and greater supported now)
    3. Removed node.js 0.x support


    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
    

  • Cordova Android 6.2.1 Released!

    05 Apr 2017 - by Steve Gill

    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.

  • Screen Orientation Plugin

    30 Mar 2017 - by Vishal Mishra

    Originally posted at this PhoneGap blog

    Cordova Screen Orientation Plugin

    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:

    1. Locking/unlocking the screen orientation.
    2. Accessing the current screen orientation.
    3. Addition of 'onchange' event handler to the screen.orientation object.
    4. A Demo App.

    Locking/unlocking the screen orientation

    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.

    Accessing the current screen orientation

    The current screen orientation can be accessed as :

    console.log('Orientation is' + screen.orientation.type);
    

    Addition of 'onchange' attribute to the screen.orientation object

    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

    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.

  • Plugins Release

    07 Mar 2017 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status@1.2.3
    • cordova-plugin-camera@2.4.0
    • cordova-plugin-console@1.0.6
    • cordova-plugin-contacts@2.3.0
    • cordova-plugin-device-motion@1.2.4
    • cordova-plugin-device-orientation@1.0.6
    • cordova-plugin-device@1.1.5
    • cordova-plugin-dialogs@1.3.2
    • cordova-plugin-file-transfer@1.6.2
    • cordova-plugin-file@4.3.2
    • cordova-plugin-geolocation@2.4.2
    • cordova-plugin-globalization@1.0.6
    • cordova-plugin-inappbrowser@1.7.0
    • cordova-plugin-media@3.0.0
    • cordova-plugin-media-capture@1.4.2
    • cordova-plugin-network-information@1.3.2
    • cordova-plugin-splashscreen@4.0.2
    • cordova-plugin-statusbar@2.2.2
    • cordova-plugin-vibration@2.1.4
    • cordova-plugin-whitelist@1.3.2
    • cordova-plugin-wkwebview-engine@1.1.2
    • cordova-plugin-test-framework@1.1.5

    Release Highlights:

    • Camera: CB-12005 Changing the getOrientation method to return the defined enumerated EXIF instead of orientation in degrees for consistency
    • InAppBrowser: CB-9148 Android: Add Support for input[type=file] File Chooser
    • Media: Make the output file of Android an acc file. Major version bump to 3.0.0. Media plugin now requires cordova-android >= 6.1.0
    • WKWebview Engine: CB-12297 Support WKProcessPool for cookie sharing

    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:

  • Apache Cordova Windows 5.0.0

    13 Feb 2017 - by Sergey Shakhnazarov

    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
    

  • Apache Cordova : The Road to Committership

    01 Feb 2017 - by Audrey So

    Apache Cordova : The Road to Committership

    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.

    Technical Stuff

    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!

    Community Stuff

    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.

    The Road Ahead

    A few things that I am continuing to work on:

    • Continue to develop the jargon to ask better questions and communicate more effectively.
    • Make an effort to continue to be a part of the community (slack, jira, channels, blog posts).
    • Contribute to Cordova even though I already have my committership!

    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!

  • Apache Cordova Android 6.1.2 Released

    27 Jan 2017 - by Steve Gill

    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.

  • Tools Released!

    23 Jan 2017 - by Steve Gill

    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!

  • Cordova Android 6.1.1 Released!

    05 Jan 2017 - by Steve Gill

    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
    

  • Plugins Release

    12 Dec 2016 - by Shazron Abdullah

    The following plugins were updated today:

    • cordova-plugin-battery-status: 1.2.2
    • cordova-plugin-inappbrowser: 1.6.1

    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:

  • Plugins Release

    07 Dec 2016 - by Shazron Abdullah

    The following plugins were updated today:

    • cordova-plugin-battery-status: 1.2.1
    • cordova-plugin-camera: 2.3.1
    • cordova-plugin-console: 1.0.5
    • cordova-plugin-contacts: 2.2.1
    • cordova-plugin-device: 1.1.4
    • cordova-plugin-device-motion: 1.2.3
    • cordova-plugin-device-orientation: 1.0.5
    • cordova-plugin-dialogs: 1.3.1
    • cordova-plugin-file: 4.3.1
    • cordova-plugin-file-transfer: 1.6.1
    • cordova-plugin-geolocation: 2.4.1
    • cordova-plugin-globalization: 1.0.5
    • cordova-plugin-legacy-whitelist: 1.1.2
    • cordova-plugin-media: 2.4.1
    • cordova-plugin-media-capture: 1.4.1
    • cordova-plugin-network-information: 1.3.1
    • cordova-plugin-splashscreen: 4.0.1
    • cordova-plugin-statusbar: 2.2.1
    • cordova-plugin-test-framework: 1.1.4
    • cordova-plugin-vibration: 2.1.3
    • cordova-plugin-whitelist: 1.3.1
    • cordova-plugin-wkwebview-engine: 1.1.1

    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:

  • Cordova iOS 4.3.1

    02 Dec 2016 - by Shazron Abdullah

    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
    

  • Cordova Android 6.1.0 Released!

    07 Nov 2016 - by Joe Bowser

    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
    

  • Tools Released!

    25 Oct 2016 - by Steve Gill

    New updates of our tools are now available!

    Release Highlights

    • Updated Platforms CB-12039: updated pinned Android to 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.
    • Deprecation CB-11976: Add deprecated node version warning for 0.x. Lean more about our node deprecation timeline.
    • Deprecation CB-11979: added deprecation warning for installing plugins via subdirectories
    • Security CB-12017: Updated npm dependencies due to security vulnerabilities.
    • New Feature CB-11908: Add 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-config
    • New Feature CB-3785: add support for EventListener interface to Channel.prototype.subscribe
    • New Module CB-11607: split out 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!

  • Cordova iOS 4.3.0

    24 Oct 2016 - by Shazron Abdullah

    We are happy to announce the minor version of Cordova iOS 4.3.0 has been released!

    This release includes:

    1. CocoaPods support in <framework> tags of plugins (static libraries only)
    2. the --buildFlag option to send extra xcodebuild flags when building/running your app
    3. Both Xcode 7 and Xcode 8 support (automatic code signing). Xcode 6 support has been dropped.
    4. Support for the four new App Transport Security (ATS) keys introduced in iOS 10


    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.0
    

    To add it explicitly:

    cordova platform add ios@4.3.0
    

  • Apache Cordova Windows 4.4.3

    24 Oct 2016 - by Sergey Shakhnazarov

    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
    

  • Cordova Android 6.0.0 Released!

    24 Oct 2016 - by Joe Bowser

    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
    

  • Minor Releases

    04 Oct 2016 - by Steve Gill

    The following were recently released:

    • cordova-plugin-geolocation: 2.4.0
    • cordova-create: 1.0.1
    • cordova-app-hello-world: 3.11.0

    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-4078

    You 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:

  • Node 0.x and 4.x Deprecation Timeline for Apache Cordova

    01 Oct 2016 - by Shazron Abdullah

    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.

  • Plugins Release

    14 Sep 2016 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status: 1.2.0
    • cordova-plugin-camera: 2.3.0
    • cordova-plugin-console: 1.0.4
    • cordova-plugin-contacts: 2.2.0
    • cordova-plugin-device: 1.1.3
    • cordova-plugin-device-motion: 1.2.2
    • cordova-plugin-device-orientation: 1.0.4
    • cordova-plugin-dialogs: 1.3.0
    • cordova-plugin-file: 4.3.0
    • cordova-plugin-file-transfer: 1.6.0
    • cordova-plugin-geolocation: 2.3.0
    • cordova-plugin-globalization: 1.0.4
    • cordova-plugin-inappbrowser: 1.5.0
    • cordova-plugin-media: 2.4.0
    • cordova-plugin-media-capture: 1.4.0
    • cordova-plugin-network-information: 1.3.0
    • cordova-plugin-splashscreen: 4.0.0
    • cordova-plugin-statusbar: 2.2.0
    • cordova-plugin-test-framework: 1.1.3
    • cordova-plugin-vibration: 2.1.2
    • cordova-plugin-whitelist: 1.3.0
    • cordova-plugin-wkwebview-engine: 1.1.0

    Release Highlights:

    • camera, contacts and media-capture have been updated to work with iOS 10
    • camera:CB-4078 Fix for orientation/scaling on Android 4.4+ devices. Adds support for content:.
    • splashscreen: CB-8056 Implement splashscreen for Windows platform
    • Various plugins: fixed issue where Plugin was using Android 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:

  • Cordova Android 5.2.2 & Cordova iOS 4.2.1 Released!

    22 Aug 2016 - by Steve Gill

    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
    

  • Tools Release

    12 Aug 2016 - by Vladimir Kotikov

    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!

  • Apache Cordova Windows 4.4.2

    27 Jul 2016 - by Vladimir Kotikov

    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
    

  • Tools Release

    13 Jul 2016 - by Vladimir Kotikov

    New updates of cordova, cordova-lib, cordova-common and cordova-fetch are now live!

    Release Highlights:

    • CB-11023 Add edit-config functionality
    • CB-11412 template support for www folders
    • CB-11349 added --fetch and cordova fetch to create --template
    • CB-11491 Introduce before_deploy hook

    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!

  • Apache Cordova Windows 4.4.1

    13 Jul 2016 - by Vladimir Kotikov

    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
    

  • Cordova Android 5.2.1

    11 Jul 2016 - by Vladimir Kotikov

    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
    

  • Cordova Android 5.2.0

    02 Jul 2016 - by Steve Gill

    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
    

  • Cordova iOS 4.2.0

    23 Jun 2016 - by Steve Gill

    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

    14 Jun 2016 - by David Barth

    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
    

  • Apache Cordova Windows 4.4.0

    03 Jun 2016 - by Vladimir Kotikov

    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
    

  • Tools Release

    24 May 2016 - by Steve Gill

    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:

    • CB-9858 added --fetch option
    • Telemetry Added telemetry to cordova 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.
    • CB-11194 Improve cordova load time
    • Added support for node 6 via CB-11200 Bump 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 announcements for Cordova iOS

    27 Apr 2016 - by Tony Homer

    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.

  • Plugins Release

    20 Apr 2016 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status: 1.1.2
    • cordova-plugin-camera: 2.2.0
    • cordova-plugin-console: 1.0.3
    • cordova-plugin-contacts: 2.1.0
    • cordova-plugin-device: 1.1.2
    • cordova-plugin-device-motion: 1.2.1
    • cordova-plugin-device-orientation:
    • cordova-plugin-dialogs: 1.2.1
    • cordova-plugin-file: 4.2.0
    • cordova-plugin-file-transfer: 1.5.1
    • cordova-plugin-geolocation: 2.2.0
    • cordova-plugin-inappbrowser: 1.4.0
    • cordova-plugin-media: 2.3.0
    • cordova-plugin-media-capture: 1.3.0
    • cordova-plugin-network-information: 1.2.1
    • cordova-plugin-splashscreen: 3.2.2
    • cordova-plugin-statusbar: 2.1.3
    • cordova-plugin-test-framework: 1.1.2
    • cordova-plugin-vibration: 2.1.1
    • cordova-plugin-whitelist: 1.2.2
    • cordova-plugin-wkwebview-engine: 1.0.3
    • cordova-plugin-compat: 1.0.0

    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:

  • Apache Cordova Windows 4.3.2

    05 Apr 2016 - by Vladimir Kotikov

    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.

  • Tools Release

    04 Apr 2016 - by Vladimir Kotikov

    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
      

  • Cordova iOS 4.1.1

    04 Apr 2016 - by Edna Morales

    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
    

  • Cordova 6.1.0 Released!

    23 Mar 2016 - by Steve Gill

    New versions of cordova tools are now live!

    Release Highlights include:

    • CB-10679 implemented new plugin fetching logic. We now allow community plugins to define cordova engine restrictions. Read about it in our new plugin fetching blog post.
    • CB-10880 Removed plugin pinning. Replaced by new plugin fetching logic.

    To update your tools:

    • If you have cordova installed:

      npm install -g cordova@latest
      
    • If you have plugman installed:

      npm install -g plugman@latest
      

  • Upcoming Changes to Plugin Fetching

    22 Mar 2016 - by Richard Knoll

    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.

  • Plugins Release

    12 Mar 2016 - by Carlos Santana

    The following plugins were updated today:

    • cordova-plugin-camera@2.1.1
    • cordova-plugin-statusbar@2.1.2
    • cordova-plugin-globalization@1.0.3
    • cordova-plugin-splashscreen@3.2.1

    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:

  • Cordova Browser 4.1.0

    04 Mar 2016 - by Vladimir Kotikov

    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
    

  • Significant Documentation Updates

    03 Mar 2016 - by Raghav Katyal

    We are happy to announce that we have made significant content updates to our documentation.

  • Cordova iOS 4.1.0

    02 Mar 2016 - by Steve Gill

    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
    

  • Cordova Android 5.1.1

    02 Mar 2016 - by Steve Gill

    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
    

  • Cordova OSX 4.0.0

    16 Feb 2016 - by Steve Gill

    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
    

  • Plugins Release

    09 Feb 2016 - by Vladimir Kotikov

    The following plugins were updated today:

    • cordova-plugin file@4.1.1
    • cordova-plugin-inappbrowser@1.3.0
    • cordova-plugin-media@2.2.0
    • cordova-plugin-statusbar@2.1.1
    • cordova-plugin-splashscreen@3.2.0
    • cordova-plugin-wkwebviewengine@1.0.2

    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:

  • cordova-plugin-inappbrowser Plugin Release

    04 Feb 2016 - by Sergey Grebnov

    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:

  • Apache Cordova Windows 4.3.1

    04 Feb 2016 - by Vladimir Kotikov

    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.

  • Cordova 6.0.0 Released!

    28 Jan 2016 - by Steve Gill

    New versions of cordova tools are now live!

    Release Highlights include:

    • Updated default platform versions to 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 support
      • cordova-windows@4.3 updated the platform to use the new Platform API.
    • Added a new template feature to create command. E.g. cordova create --template cordova-app-hello-world. This can fetch templates via npm, git URL or local paths.
    • Removed support for our old Cordova Plugins Registry. Now plugins can only be installed via npm, git URL or local paths.
    • Added default plugin pinning to 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.
    • Added deprecation notices for amazon-fireos and wp8. We are aiming to remove support for these platforms in 6 months. Target Android and Windows instead.

    To update your tools:

    • If you have cordova installed:

      npm install -g cordova@latest
      
    • If you have plugman installed:

      npm install -g plugman@latest
      

  • Cordova Android 5.1.0

    24 Jan 2016 - by Steve Gill

    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:

    • cordova-plugin-camera@2.1.0 (fixes CB-9189)
    • cordova-plugin-contacts@2.0.1 (fixes CB-10159)

    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
    

  • Plugins Release

    19 Jan 2016 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-camera@2.1.0
    • cordova-plugin-contacts@2.0.1
    • cordova-plugin-device@1.1.1
    • cordova-plugin-file@4.1.0
    • cordova-plugin-file-transfer@1.5.0
    • cordova-plugin-geolocation@2.1.0
    • cordova-plugin-inappbrowser@1.2.0
    • cordova-plugin-media@2.1.0
    • cordova-plugin-media-capture@1.2.0
    • cordova-plugin-network-information@1.2.0
    • cordova-plugin-splashscreen@3.1.0
    • cordova-plugin-statusbar@2.1.0
    • cordova-plugin-test-framework@1.1.1
    • cordova-plugin-vibration@2.1.0
    • cordova-plugin-whitelist@1.2.1

    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:

  • Apache Cordova Windows 4.3.0

    18 Jan 2016 - by Vladimir Kotikov

    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

    08 Jan 2016 - by David Barth

    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
    

  • Cordova Ubuntu 4.3.2

    08 Jan 2016 - by David Barth

    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
    

  • Cordova iOS 4.0.1

    18 Dec 2015 - by Shazron Abdullah

    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
    

  • Plugins Release

    14 Dec 2015 - by Shazron Abdullah

    The following plugins were updated today:

    • cordova-plugin-inappbrowser@1.1.1
    • cordova-plugin-wkwebview-engine@1.0.1

    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:

  • Plugins Release

    08 Dec 2015 - by Shazron Abdullah

    The following plugins were updated today:

    • cordova-plugin-wkwebview-engine@1.0.0

    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:

  • Cordova iOS 4.0.0

    08 Dec 2015 - by Shazron Abdullah

    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
    

  • Tools Release

    24 Nov 2015 - by Steve Gill

    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
      

  • Plugins Release

    24 Nov 2015 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status@1.1.1
    • cordova-plugin-camera@2.0.0
    • cordova-plugin-console@1.0.2
    • cordova-plugin-contacts@2.0.0
    • cordova-plugin-device@1.1.0
    • cordova-plugin-device-motion@1.2.0
    • cordova-plugin-device-orientation@1.0.2
    • cordova-plugin-dialogs@1.2.0
    • cordova-plugin-file@4.0.0
    • cordova-plugin-file-transfer@1.4.0
    • cordova-plugin-geolocation@2.0.0
    • cordova-plugin-globalization@1.0.2
    • cordova-plugin-inappbrowser@1.1.0
    • cordova-plugin-legacy-whitelist@1.1.1
    • cordova-plugin-media@2.0.0
    • cordova-plugin-media-capture@1.1.0
    • cordova-plugin-network-information@1.1.0
    • cordova-plugin-splashscreen@3.0.0
    • cordova-plugin-statusbar@2.0.0
    • cordova-plugin-test-framework@1.1.0
    • cordova-plugin-vibration@2.0.0
    • cordova-plugin-whitelist@1.2.0

    The following plugins now require cordova-android@5.0.0. Please read the Android 5.0.0 release blog for instructions to update.

    • cordova-plugin-camera@2.0.0
    • cordova-plugin-contacts@2.0.0
    • cordova-plugin-file@4.0.0
    • cordova-plugin-geolocation@2.0.0
    • cordova-plugin-media@2.0.0

    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:

  • CVE announcements for Cordova-Android

    20 Nov 2015 - by Joe Bowser

    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.

  • Apache Cordova Windows 4.2.0

    11 Nov 2015 - by Sergey Grebnov

    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.

  • Cordova Android 5.0.0

    09 Nov 2015 - by Joe Bowser

    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
    

  • Tools Release: November 6th, 2015

    06 Nov 2015 - by Steve Gill

    New versions of cordova tools are now live!

    Release highlights:

    • Fixed issues with using Node 4 & 5 and npm 3.
    • Cordova will now auto convert old-style plugin IDs to new style plugin IDs when doing a 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.
    • Cordova CLI will now know if a newer version is available and will prompt users to update.
    • Some core utility methods from 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
      

  • Apache Cordova iOS 3.9.2

    02 Nov 2015 - by Vladimir Kotikov

    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
    

  • Tools Release 5.3.3

    22 Sep 2015 - by Sergey Grebnov

    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
      

  • cordova-plugin-file-transfer release: September 21, 2015

    21 Sep 2015 - by Steve Gill

    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:

  • Tools Release: September 9th, 2015

    09 Sep 2015 - by Steve Gill

    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
      

  • Cordova Plugins Registry becomes immutable

    08 Sep 2015 - by Steve Gill

    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.

  • Apache Cordova BlackBerry 3.8.0

    05 Sep 2015 - by Bryan Higgins

    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.

  • Apache Cordova Windows 4.1.0

    18 Aug 2015 - by Rob Paveza

    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.

  • Tools Release: August 13th, 2015

    13 Aug 2015 - by Steve Gill

    New versions of cordova tools are now live!

    Release highlights:

    • CB-9330 Removed 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.
    • CB-5578 Adds clean command to cordova-cli. This cleans the build artifacts for your project. Run cordova clean -h for more information.
    • CB-9177 Use tilde instead of caret when saving to config.xml via --save flag.
    • CB-9225 Add Windows platform support to plugman platform add
    • CB-9114: Deprecation Warning for --usegit flag.
    • Browserify flag for adding plugins at build time vs run time has all tests passings. Please try it out via --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
      

  • Apache Cordova iOS 3.9.0

    04 Aug 2015 - by Sergey Grebnov

    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
    

  • Apache Cordova Android 4.1.0

    21 Jul 2015 - by Nikhil Khandelwal

    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
    

  • Plugins Release: June 22, 2015

    22 Jun 2015 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status@1.1.0
    • cordova-plugin-camera@1.2.0
    • cordova-plugin-console@1.0.1
    • cordova-plugin-contacts@1.1.0
    • cordova-plugin-device@1.0.1
    • cordova-plugin-device-motion@1.1.1
    • cordova-plugin-device-orientation@1.0.1
    • cordova-plugin-dialogs@1.1.1
    • cordova-plugin-file@2.1.0
    • cordova-plugin-file-transfer@1.2.0
    • cordova-plugin-geolocation@1.0.1
    • cordova-plugin-globalization@1.0.1
    • cordova-plugin-inappbrowser@1.0.1
    • cordova-plugin-legacy-whitelist@1.1.0

  • Tools Release: June 10, 2015

    10 Jun 2015 - by Steve Gill

    New versions of cordova tools are now live!

    Release highlights:

    • CB-8898 Introduced a new cordova requirements command
    • CB-8441 cordova prepare --browserify now supports 3rd party plugins to build your cordova.js at run time! Try it out!
    • CB-9075 pinned platforms will include platform patch updates without requiring a new tools release.

    To update your tools:

    • If you have cordova installed:

      npm install -g cordova
      
    • If you have plugman installed:

      npm install -g plugman
      

  • Tools Release 4.3.1

    04 Jun 2015 - by Tim Barham

    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
    

    Pinned Platform Versions for Cordova CLI 4.3.1

    • Cordova Amazon-FireOS: 3.6.3
    • Cordova Android: 3.7.2
    • Cordova BlackBerry10: 3.7.0
    • Cordova Browser: 3.6.0
    • Cordova FirefoxOS: 3.6.3
    • Cordova iOS: 3.8.0
    • Cordova Ubuntu: 4.0.0
    • Cordova Windows: 3.8.0
    • Cordova WP8: 3.7.1

  • Apache Cordova Windows 4.0.0 release

    03 Jun 2015 - by Nikhil Khandelwal

    We are happy to announce that Cordova Windows 4.0.0 has been released!

    Key features

    • The default Windows target version is now 8.1. Windows 8.0 support is deprecated and a warning will be issued when building for Windows 8.0. The support for Windows 8.0 will be removed in 6 months. If you have 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.
    • Support for Windows 10 Insider Preview and building using Visual Studio 2015 RC. More details can be found below. This support will evolve as Windows 10 release comes along.
    • Support for specifying parameters for signing Windows apps - like signing certificate, publisher identity etc. More details can be found in docs

    What's new in Windows 10

    • Windows 10 Insider Preview introduces the Universal Windows Platform (UWP) which provides a guaranteed core API layer across devices. You can create a single app package that can be installed onto a wide range of devices. A single store makes it easy to publish apps across all device types - desktop, mobile, Xbox, iOT.
    • In Windows 8 and 8.1, the app was loaded in the ms-appx context. In Windows 10 for Cordova, by default the app is loaded in ms-appx-web and have access to most Windows Runtime APIs. This allows you to host remote content in your Windows Cordova app. More details on how to customize this behavior can be found here.
    • Some JavaScript libraries could not run in Windows 8/8.1 due to the safeHTML restriction and we needed to use winstore-jscompat. In Windows 10 Cordova apps, the security can be applied using Content Security Policies.

  • Apache Cordova Android 4.0.2 and 3.7.2 released

    26 May 2015 - by Joe Bowser

    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.

  • Tools Release: April 21, 2015

    21 Apr 2015 - by Steve Gill

    New versions of cordova tools are now live!

    Release highlights:

    • Plugins have been renamed and the Cordova-CLI now supports fetching plugins from npm. We highly recommend reading about it in the plugins release blog post.
    • <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.
    • Cordova Android@4.0.0 has been released and pinned as the default version for new projects. This includes support for pluggable WebViews! Read about it in the Android 4.0.0 release blog post.
    • Our template app, Cordova App Hello World, has been moved to npm.
    • Added the ability to manage your plugin and platform dependencies in your project's 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
      

  • Plugins Release and Moving plugins to npm: April 21, 2015

    21 Apr 2015 - by Steve Gill

    The Apache Cordova team is happy to announce a new plugins release that coincides with us moving our core plugins to npm!

    • We are also encouraging third party plugin developers to start publishing their plugins to npm!
    • To start using plugins from npm, developers will have to update their Cordova CLI to version 5.0.0 or higher. Read about Cordova CLI 5.0.0 in its release blog post.

    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.

    • All of our core plugins have changed their IDs from org.apache.cordova.* to cordova-plugin-*.
    • Developers can now install a plugin with the command 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.

    • We will be switching CPR to read-only on 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.

  • Apache Cordova Android 4.0.0

    15 Apr 2015 - by Andrew Grieve

    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
    

  • Tools Release: March 02, 2015

    02 Mar 2015 - by Steve Gill

    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:

    • Cordova-iOS developers will need to update their iOS-deploy dependency to launch on iOS devices. Please run npm install -g ios-deploy to install the latest version 1.4.0.
    • You can now save your list of installed plugins and platforms using the --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.
    • Plugin authors can use the new command plugman createpackagejson <plugin_path> to add a package.json file to their plugins.
    • We are preparing to transition our plugin hosting over to npm. We will be doing a detailed blog post soon. Stay tuned.

  • Apache Cordova Windows 3.8.0

    27 Feb 2015 - by Sergey Grebnov

    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.

  • Apache Cordova iOS 3.8.0

    25 Feb 2015 - by Shazron Abdullah

    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.

  • Plugins Release: February 10, 2015

    10 Feb 2015 - by Andrew Grieve

    The following plugins were updated today:

    • cordova-plugin-battery-status@0.2.12
    • cordova-plugin-camera@0.3.5
    • cordova-plugin-console@0.2.13
    • cordova-plugin-contacts@0.2.16
    • cordova-plugin-device-motion@0.2.11
    • cordova-plugin-device-orientation@0.3.11
    • cordova-plugin-device@0.3.0
    • cordova-plugin-dialogs@0.3.0
    • cordova-plugin-file-transfer@0.5.0
    • cordova-plugin-file@1.3.3
    • cordova-plugin-geolocation@0.3.12
    • cordova-plugin-globalization@0.3.4
    • cordova-plugin-inappbrowser@0.6.0
    • cordova-plugin-media@0.2.16
    • cordova-plugin-media-capture@0.3.6
    • cordova-plugin-network-information@0.2.15
    • cordova-plugin-splashscreen@1.0.0
    • cordova-plugin-vibration@0.3.13
    • cordova-plugin-statusbar@0.1.10
    • cordova-plugins@file-system-roots-0.1.0
    • cordova-plugin-test-framework@0.0.1

    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:

  • Apache Cordova Android 3.7.1

    06 Feb 2015 - by Joe Bowser

    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.

  • Tools Release: January 09, 2015

    09 Jan 2015 - by Steve Gill

    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
      

  • Plugins Release: December 9, 2014

    09 Dec 2014 - by Steve Gill

    The following plugins were updated today:

    • org.apache.cordova.battery-status@0.2.12
    • org.apache.cordova.camera@0.3.4
    • org.apache.cordova.console@0.2.12
    • org.apache.cordova.contacts@0.2.15
    • org.apache.cordova.device@0.2.13
    • org.apache.cordova.device-motion@0.2.11
    • org.apache.cordova.device-orientation@0.3.10
    • org.apache.cordova.dialogs@0.2.11
    • org.apache.cordova.file@1.3.2
    • org.apache.cordova.file-transfer@0.4.8
    • org.apache.cordova.geolocation@0.3.11
    • org.apache.cordova.globalization@0.3.3
    • org.apache.cordova.inappbrowser@0.5.4
    • org.apache.cordova.media@0.2.15
    • org.apache.cordova.media-capture@0.3.5
    • org.apache.cordova.network-information@0.2.14
    • org.apache.cordova.splashscreen@0.3.5
    • org.apache.cordova.statusbar@0.1.9
    • org.apache.cordova.vibration@0.3.12

    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:

  • iOS 64-bit apps in Cordova

    25 Nov 2014 - by Marcel Kinard

    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.

  • Automating Performance Audits for Cordova apps

    18 Nov 2014 - by Parashuram

    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.

    Measuring Performance

    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.

    Chrome Developer tools - profiling

    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.

  • Tools Release: November 13, 2014

    13 Nov 2014 - by Mark Koudritsky

    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
      

  • Critical Update: Windows 3.7.1. Release

    11 Nov 2014 - by Parashuram

    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.

    Error Message

    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.

    Workaround

    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

  • Apache Cordova Windows & Windows Phone 3.7.0

    06 Nov 2014 - by Steve Gill

    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.

  • Apache Cordova iOS 3.7.0

    06 Nov 2014 - by Shazron Abdullah

    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.

  • Plugins Release: October 17, 2014

    17 Oct 2014 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-camera: 0.3.3
    • cordova-plugin-contacts: 0.2.14
    • cordova-plugin-file-transfer: 0.4.7
    • cordova-plugin-globalization: 0.3.2
    • cordova-plugin-inappbrowser: 0.5.3
    • cordova-plugin-media: 0.2.14
    • cordova-plugin-media-capture: 0.3.4
    • cordova-plugin-network-information: 0.2.13
    • cordova-plugin-splashscreen: 0.3.4

    Notable changes include:

    • CB-7633 - Add iPhone 6/6+ support for cordova-splashscreen plugin
    • CB-7595: Android L changes the type from Mobile to Cellular for cordova-network-information plugin.
    • CB-7429 Added Windows support for cordova-media-capture plugin
    • CB-7548 BlackBerry10 Re-implement getPreferredLanguage() and getLocaleName() for cordova-globalization plugin.
    • CB-7529 Windows Adds support for ms-appdata URIs for cordova-file-transfer plugin

    The plugins have been updated on our registry at plugins.cordova.io.


    You can update any plugin by removing it, and then readding it. E.g. To update your camera plugin:

    cordova plugin rm org.apache.cordova.camera
    cordova plugin add org.apache.cordova.camera
    

    Other changes include:

  • Apache Cordova CLI 4.0 Release

    16 Oct 2014 - by Steve Gill

    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:

    • Cordova CLI version bump to 4.0.0 to reflect our changes in release policy.
    • WP8 and Windows both implemented support for --target flag
    • Initial support for Cordova-Browser platform.
    • CB-5390 Uninstall - recursively remove dependencies of dependencies

    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.

    Cordova CLI bumped to version 4.0

    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.

  • Plugins Release: September 22, 2014

    22 Sep 2014 - by Marcel Kinard

    The following plugins were updated today:

    • cordova-plugin-battery-status: 0.2.11
    • cordova-plugin-camera: 0.3.2
    • cordova-plugin-console: 0.2.11
    • cordova-plugin-contacts: 0.2.13
    • cordova-plugin-device: 0.2.12
    • cordova-plugin-device-motion: 0.2.10
    • cordova-plugin-device-orientation: 0.3.9
    • cordova-plugin-dialogs: 0.2.10
    • cordova-plugin-file: 1.3.1
    • cordova-plugin-file-transfer: 0.4.6
    • cordova-plugin-geolocation: 0.3.10
    • cordova-plugin-globalization: 0.3.1
    • cordova-plugin-inappbrowser: 0.5.2
    • cordova-plugin-media: 0.2.13
    • cordova-plugin-media-capture: 0.3.3
    • cordova-plugin-network-information: 0.2.12
    • cordova-plugin-splashscreen: 0.3.3
    • cordova-plugin-statusbar: 0.1.8
    • cordova-plugin-vibration: 0.3.11

    Notable changes include:

    • There is a new framework for testing the plugins. This affects plugin developers, not plugin users.
    • Many fixes have been made to the file plugin and other plugins that use it.
    • Globalization plugin has been cleaned up.
    • Brought the vibration plugin API into alignment with the W3C specification.

    The plugins have been updated on our registry at plugins.cordova.io.

  • Apache Cordova 3.6

    08 Sep 2014 - by Steve Gill

    We are happy to announce that Apache Cordova 3.6 has been released!

    Most notable changes include:

    • Android and Amazon FireOS platforms include a new whitelist for controlling the launch of external applications via intents. Also support for gradle was added.
    • CB-6761 Android: Fix native->JS bridge ceasing to fire when page changes and online is set to false and the JS loads quickly
    • Windows8 platform is now called Windows to indicate the support for windows universal apps. The windows8/windows platform now supports building apps targeting Windows 8.1 and Windows Phone 8.1 in addition to Windows 8 which was originally supported (see documentation for new --win and --phone Command Line switches).
    • For targeting Windows Phone 8.0, the wp8 is still supported.
    • Support for Windows Universal Apps is being added.

    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.

    If this is 3.6.3, where are 3.6.0, 3.6.1, and 3.6.2?

    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.

    What's new in Android

  • Tools Release: August 13, 2014

    13 Aug 2014 - by Marcel Kinard

    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.

  • Plugins Release: August 11, 2014

    11 Aug 2014 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-battery-status: 0.2.10
    • cordova-plugin-camera: 0.3.1
    • cordova-plugin-console: 0.2.10
    • cordova-plugin-contacts: 0.2.12
    • cordova-plugin-device: 0.2.11
    • cordova-plugin-device-motion: 0.2.9
    • cordova-plugin-device-orientation: 0.3.8
    • cordova-plugin-dialogs: 0.2.9
    • cordova-plugin-file: 1.3.0
    • cordova-plugin-file-transfer: 0.4.5
    • cordova-plugin-geolocation: 0.3.9
    • cordova-plugin-globalization: 0.3.0
    • cordova-plugin-inappbrowser: 0.5.1
    • cordova-plugin-media: 0.2.12
    • cordova-plugin-media-capture: 0.3.2
    • cordova-plugin-network-information: 0.2.11
    • cordova-plugin-splashscreen: 0.3.2
    • cordova-plugin-statusbar: 0.1.7
    • cordova-plugin-vibration: 0.3.10

    Notable changes include:

    • Most of the plugins docs are now translated into other languages.
    • FirefoxOS has updated many of their proxies for plugins
    • FirefoxOS support added to device motion plugin
    • Many updates to file plugin for BlackBerry10, FirefoxOS and Windows
    • BlackBerry10 & FirefoxOS support added to globalization plugin

    The plugins have been updated on our registry at plugins.cordova.io.


    You can update any plugin by removing it, and then readding it. E.g. To update your file plugin:

    cordova plugin rm org.apache.cordova.file
    cordova plugin add org.apache.cordova.file
    

    Other changes include:

  • Apache Cordova Android 3.5.1 Update

    06 Aug 2014 - by Ian Clelland

    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.

  • Apache Cordova Android 3.5.1

    04 Aug 2014 - by Marcel Kinard

    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.

  • Tools Release: July 10, 2014

    10 Jul 2014 - by Mark Koudritsky

    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:

    • Support for splash screens
    • Drop wp7 as platform
    • An experimental feature that allows to persist the currently added plugins to config.xml. Try it out as:
      • cordova save plugins --experimental
      • and later when you check out the project without a plugins folder:
      • cordova restore plugins --experimental
      • Read Gorkem Ercan's post for details.
    • We are experimenting with using 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:

  • Plugins Release: July 8, 2014

    08 Jul 2014 - by Ian Clelland

    The following plugins were updated today:

    • cordova-plugin-contacts: 0.2.11
    • cordova-plugin-network-information: 0.2.10

    Notable changes include:

    • The network-information plugin no longer crashes immediately if no network is available
    • navigator.contacts.pickContact API has been added for Android, iOS, Windows Phone 8 and Windows 8 platforms
    • navigator.contacts.find API on Android, iOS and Windows Phone 8 now supports desiredFields which specifies contact fields to be returned
    • Contacts on Firefox OS no longer requires manual change of the application permissions

    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 contacts plugin:

    cordova plugin rm org.apache.cordova.contacts
    cordova plugin add org.apache.cordova.contacts
    

    Other changes include:

  • Plugins Release: June 12, 2014

    12 Jun 2014 - by Steve Gill

    The following plugins were updated today:

    • cordova-plugin-camera: 0.3.0
    • cordova-plugin-console: 0.2.9
    • cordova-plugin-device: 0.2.10
    • cordova-plugin-device-motion: 0.2.8
    • cordova-plugin-device-orientation: 0.3.7
    • cordova-plugin-dialogs: 0.2.8
    • cordova-plugin-file: 1.2.0
    • cordova-plugin-file-transfer: 0.4.4
    • cordova-plugin-geolocation: 0.3.8
    • cordova-plugin-globalization: 0.2.8
    • cordova-plugin-inappbrowser: 0.5.0
    • cordova-plugin-media: 0.2.11
    • cordova-plugin-media-capture: 0.3.1
    • cordova-plugin-network-information: 0.2.9
    • cordova-plugin-splashscreen: 0.3.1
    • cordova-plugin-statusbar: 0.1.6
    • cordova-plugin-vibration: 0.3.9

    Notable changes include:

    • Several File plugin changes:
      • Initial implementation for Firefox OS
      • Important platform-specific paths now exposed as properties on cordova.file.* (iOS & Android, refer to docs)
      • Several bug fixes (across most platforms)
      • Updated support for BlackBerry 10, Ubuntu & Windows 8
    • Every plugin now has its own license file and how to contribute document (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:

  • Apache Cordova 3.5.0

    23 May 2014 - by Steve Gill

    We are happy to announce that Apache Cordova 3.5 has been released!

    Most notable changes include:

    • Common code between cordova-cli & cordova-plugman has been moved into its own repo named cordova-lib.
    • Each platform now has a 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.
    • CB-4863 - Drop iOS 5.0 support, and support arm64. New projects are built as a universal binary (64 and 32-bit), and require a minimum deployment target of iOS 6.0.
    • This is the last release with support for WP7
    • Added Chrome devtools support for debug builds for amazon-fireos

    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:

  • Plugins Release: April 23, 2014

    23 Apr 2014 - by Ian Clelland

    The following plugins were updated today:

    • org.cordova.battery-status@0.2.8
    • org.cordova.camera@0.2.9
    • org.cordova.console@0.2.8
    • org.cordova.contacts@0.2.10
    • org.cordova.device@0.2.9
    • org.cordova.device-motion@0.2.7
    • org.cordova.device-orientation@0.3.6
    • org.cordova.dialogs@0.2.7
    • org.cordova.file@1.1.0
    • org.cordova.file-transfer@0.4.3
    • org.cordova.geolocation@0.3.7
    • org.cordova.globalization@0.2.7
    • org.cordova.inappbrowser@0.4.0
    • org.cordova.media@0.2.10
    • org.cordova.media-capture@0.3.0
    • org.cordova.network-information@0.2.8
    • org.cordova.splashscreen@0.3.0
    • org.cordova.statusbar@0.1.5
    • org.cordova.vibration@0.3.8

    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 Phone
    • splashscreen now includes support for Tizen
    • file 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)
    • iOS In-App-Browser now supports clearcache and clearsessioncache like Android
    • Fixed several issues in media-capture which prevented it from being used with the file plugin
    • iOS warnings have been fixed when compiling for 64-bit ARM
    • Windows8 uses the built-in cordova exec proxy for all plugins, rather than a custom proxy.

    The 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:

  • Tools Release: April 9, 2014

    09 Apr 2014 - by Steve Gill

    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:

    • Update Xcode .pbxproj files according to Xcode 5.1 recommendations
    • CB-4863 Drop iOS 5.0 support
    • CB-4863 supporting iOS arm64 by default
    • CB-6160 Fix plugin add for FirefoxOS.
    • Fix to never remove top-level plugins that are dependencies + tests.
    • CB-6211 cordova info command fixed for Windows platform

    Other changes include:

  • Tools Release: March 5, 2014

    05 Mar 2014 - by Andrew Grieve

    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:

    • New command plugman create for generating a plugin template (CB-4886)
    • No longer necessary to run cordova prepare after installing a plugin (CB-5647)
    • cordova now shows output of builds and hook scripts
    • Installing multiple plugins at once is now faster (CB-5885)

    Other changes include:

  • Plugins Release: March 3, 2014

    03 Mar 2014 - by Andrew Grieve

    The following plugins were updated today:

    • org.apache.cordova.camera@0.2.8
    • org.apache.cordova.contacts@0.2.9
    • org.apache.cordova.file@1.0.1
    • org.apache.cordova.file-transfer@0.4.2
    • org.apache.cordova.inappbrowser@0.3.2
    • org.apache.cordova.media@0.2.9
    • org.apache.cordova.media-capture@0.2.8

    Notable changes include:

    • Several bugfixes to the recently overhauled file plugin
    • Fixed the default value of file-transfer trustAllHosts on iOS (was true, is now false)
    • Prevent malicious code within an inappbrowser on iOS being able to run code within the host UIWebView

    The 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:

  • Apache Cordova 3.4.0

    20 Feb 2014 - by Steve Gill

    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.

  • Plugins Release: Feb 10, 2014

    10 Feb 2014 - by Steve Gill

    The following plugins were updated today:

    • org.apache.cordova.battery-status@0.2.7
    • org.apache.cordova.camera@0.2.7
    • org.apache.cordova.console@0.2.7
    • org.apache.cordova.contacts@0.2.8
    • org.apache.cordova.device@0.2.8
    • org.apache.cordova.device-motion@0.2.6
    • org.apache.cordova.device-orientation@0.3.5
    • org.apache.cordova.dialogs@0.2.6
    • org.apache.cordova.file@1.0.0
    • org.apache.cordova.file-transfer@0.4.1
    • org.apache.cordova.geolocation@0.3.6
    • org.apache.cordova.globalization@0.2.6
    • org.apache.cordova.inappbrowser@0.3.1
    • org.apache.cordova.media@0.2.8
    • org.apache.cordova.media-capture@0.2.7
    • org.apache.cordova.network-information@0.2.7
    • org.apache.cordova.vibration@0.3.7

    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:

  • Tools Release: Jan 31, 2014

    31 Jan 2014 - by Andrew Grieve

    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!

    • plugman@0.19.0
    • cordova@3.3.1-0.3.1

    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)
    • Specify a www/ to use when creating a new project with --link-to or --copy-from
    • When installing by plugin ID, tell cordova and plugman to search for plugins locally using --searchpath

    Full list of release notes:

  • Plugins Release: Jan 2, 2014

    02 Jan 2014 - by Andrew Grieve

    The following plugins were updated today:

    • org.apache.cordova.battery-status@0.2.6
    • org.apache.cordova.camera@0.2.6
    • org.apache.cordova.console@0.2.6
    • org.apache.cordova.contacts@0.2.7
    • org.apache.cordova.device-motion@0.2.5
    • org.apache.cordova.device-orientation@0.3.4
    • org.apache.cordova.device@0.2.6
    • org.apache.cordova.dialogs@0.2.5
    • org.apache.cordova.geolocation@0.3.5
    • org.apache.cordova.globalization@0.2.5
    • org.apache.cordova.inappbrowser@0.3.0
    • org.apache.cordova.media@0.2.7
    • org.apache.cordova.media-capture@0.2.6
    • org.apache.cordova.network-information@0.2.6
    • org.apache.cordova.splashscreen@0.2.6
    • org.apache.cordova.vibration@0.3.6

    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:

  • Apache Cordova 3.3.0

    16 Dec 2013 - by Andrew Grieve

    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.

  • Apache Cordova 3.3.0 RC1

    06 Dec 2013 - by Steve Gill

    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!

  • Plugins Release: Dec 4, 2013

    04 Dec 2013 - by Steve Gill

    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:

    • Ubuntu support for most plugins
    • Amazon Fire OS support for most plugins
    • WP8 add support for battery-level
    • Camera Plugin now supports Firefox OS
    • Geolocation Plugin now supports Firefox OS
    • CB-3420 WP feature hidden=yes implemented for inappbrowser
    • CB-4724 WP8 - Fixed UriFormatException for inappbrowser
    • CB-5291 iOS - Media Capture Audio - status bar issues under iOS 7
    • CB-5275 Fixed media-capture's ability to select images & videos on Android
    • CB-4747 Fixed BlackBerry background vibrate

    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.

  • Apache Cordova 3.2.0

    22 Nov 2013 - by Steve Gill

    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.

  • Action Required: Android KitKat Compatibility

    15 Nov 2013 - by Andrew Grieve

    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.

  • Apache Cordova 3.2.0 RC1

    13 Nov 2013 - by Steve Gill

    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!

  • Apache Cordova 2.9.1

    06 Nov 2013 - by Steve Gill

    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.

  • CLI, Plugman & Plugins Release: Oct 28, 2013

    28 Oct 2013 - by Steve Gill

    Today we are doing a plugins and tooling release in preparation for Cordova 3.2.0. Most notable changes include:

    • Cordova CLI & Plugman have been refactored to use promises instead of callbacks
    • CB-5125 Replace shell.exec with child process spawn
    • CB-2234 Added cordova info command
    • CB-5128 Repo & Issue tags have been added to all of our core plugins plugin.xml file. This will allow us to display issue tracker and repo information on our registry.
    • CB-5184 Fix uninstall logic being too aggressive (plugman)
    • Overhauled dependency uninstallation in regards to plugins (plugman)
    • FirefoxOS support for device-motion, device-orientation and dialogs plugins.

    The plugins have been updated on our registry at plugins.cordova.io.

  • Cordova's Plugin Registry

    21 Oct 2013 - by Max Woghiren

    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.

  • Plugins Release: October 10th, 2013

    10 Oct 2013 - by Steve Gill

    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:

    • websql for Android
    • keyboard for iOS
    • statusbar for iOS

    The following plugins have been updated for this release:

    • cordova-plugin-contacts
    • cordova-plugin-file
    • cordova-plugin-file-transfer
    • cordova-plugin-inappbrowser
    • cordova-plugin-media
    • cordova-plugin-media-capture
    • cordova-plugin-splashscreen
    • cordova-plugin-vibration


    These plugins have been updated on our registry at plugins.cordova.io.


  • Apache Cordova 3.1

    02 Oct 2013 - by Andrew Grieve

    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.

  • Plugins Release: October 1st, 2013

    01 Oct 2013 - by Steve Gill

    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 in Cordova: FirefoxOS, Translations, bug fixes

    13 Sep 2013 - by Andrew Grieve

    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 in Cordova

    06 Sep 2013 - by Andrew Grieve

    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 Looking for a Few Good Translators

    12 Aug 2013 - by Lisa Seacat DeLuca

    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.

  • Apache Cordova 3.0

    23 Jul 2013 - by Brian LeRoux

    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!

    Light Weight Core

    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.

    New Command Line Tooling

    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.

  • Apache Cordova Gets an Official Blog

    11 Jul 2013 - by Carlos Santana

    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