---
description: The Capawesome November update is here! This update includes new features and improvements for Capawesome Cloud and our Plugins.
title: Capawesome November 2024 Update - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/2024-november-update.png
---

<!doctype html> 

[Skip to content ](#capawesome-november-2024-update) 

[🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode. ](/blog/announcing-the-capacitor-vault-plugin/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ Plugins ](#plugins)

# Capawesome November 2024 Update[¶](#capawesome-november-2024-update "Permanent link")

The Capawesome November update is here! This update includes new features and improvements for [Capawesome Cloud](/docs/cloud/) and our [Plugins](/docs/sdks/capacitor/). Let's take a look at the most important changes.

[ ![Build and deploy your Capacitor app with Capawesome Cloud](https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1) ](/) 

## Cloud[¶](#cloud "Permanent link")

### Automatically delete old bundles[¶](#automatically-delete-old-bundles "Permanent link")

There are now two new options available for automatically deleting old bundles so that you don't have to worry about the storage limit:

1. **Set a bundle limit**: You can set a limit for the number of bundles that can be assigned to a channel. If this limit is reached, the oldest bundle will be deleted automatically. For example, this is how you can set a bundle limit of 5 using the [Capawesome CLI](/docs/cloud/cli/) when creating a channel:  
`[](#%5F%5Fcodelineno-0-1)npx @capawesome/cli apps:channels:create --bundle-limit 5  
`
2. **Set an expiration date**: You can set an expiration date for a bundle. If this date is reached, the bundle will be deleted automatically. For example, this is how you can automatically delete a bundle after 30 days using the [Capawesome CLI](/docs/cloud/cli/) when creating a bundle:  
`[](#%5F%5Fcodelineno-1-1)npx @capawesome/cli apps:bundles:create --expires-in-days 30  
`

Both options are also available via the [Capawesome Cloud Console](https://console.cloud.capawesome.io).

### Delete multiple items at once[¶](#delete-multiple-items-at-once "Permanent link")

You can now finally delete multiple Bundles, Channels, Devices and Tokens at once via the [Capawesome Cloud Console](https://console.cloud.capawesome.io). Simply select the items you want to delete and click the `Delete` button.

## Plugins[¶](#plugins "Permanent link")

### Android Foreground Service[¶](#android-foreground-service "Permanent link")

The [Capacitor Android Foreground Service plugin](/docs/sdks/capacitor/android-foreground-service/) now has three new methods that allow you to update the foreground service notification and create/delete notification channels:

`[](#%5F%5Fcodelineno-2-1)import { ForegroundService, Importance } from '@capawesome-team/capacitor-android-foreground-service';
[](#%5F%5Fcodelineno-2-2)
[](#%5F%5Fcodelineno-2-3)/**
[](#%5F%5Fcodelineno-2-4) * Update the foreground service notification.
[](#%5F%5Fcodelineno-2-5) */
[](#%5F%5Fcodelineno-2-6)const updateForegroundService = async () => {
[](#%5F%5Fcodelineno-2-7)  await ForegroundService.updateForegroundService({
[](#%5F%5Fcodelineno-2-8)    id: 1,
[](#%5F%5Fcodelineno-2-9)    title: 'Title',
[](#%5F%5Fcodelineno-2-10)    body: 'Body',
[](#%5F%5Fcodelineno-2-11)    smallIcon: 'ic_stat_icon_config_sample',
[](#%5F%5Fcodelineno-2-12)  });
[](#%5F%5Fcodelineno-2-13)};
[](#%5F%5Fcodelineno-2-14)
[](#%5F%5Fcodelineno-2-15)/**
[](#%5F%5Fcodelineno-2-16) * Create a notification channel.
[](#%5F%5Fcodelineno-2-17) */
[](#%5F%5Fcodelineno-2-18)const createNotificationChannel = async () => {
[](#%5F%5Fcodelineno-2-19)  await ForegroundService.createNotificationChannel({
[](#%5F%5Fcodelineno-2-20)    id: 'default',
[](#%5F%5Fcodelineno-2-21)    name: 'Default',
[](#%5F%5Fcodelineno-2-22)    description: 'Default channel',
[](#%5F%5Fcodelineno-2-23)    importance: Importance.Default,
[](#%5F%5Fcodelineno-2-24)  });
[](#%5F%5Fcodelineno-2-25)};
[](#%5F%5Fcodelineno-2-26)
[](#%5F%5Fcodelineno-2-27)/**
[](#%5F%5Fcodelineno-2-28) * Delete a notification channel.
[](#%5F%5Fcodelineno-2-29) */
[](#%5F%5Fcodelineno-2-30)const deleteNotificationChannel = async () => {
[](#%5F%5Fcodelineno-2-31)  await ForegroundService.deleteNotificationChannel({
[](#%5F%5Fcodelineno-2-32)    id: 'default',
[](#%5F%5Fcodelineno-2-33)  });
[](#%5F%5Fcodelineno-2-34)};
`

Thanks to [@xsorifc28](https://github.com/xsorifc28) and [@ebarooni](https://github.com/ebarooni) for the contributions!

### App Review[¶](#app-review "Permanent link")

Say hi to our brand new [Capacitor App Review plugin](/docs/sdks/capacitor/app-review/) for Android and iOS! This plugin not only allows you to request in-app reviews but also to open the app store page of your app and, if possible, open the dialog to leave a review. Here is an example of how you can use this plugin:

`[](#%5F%5Fcodelineno-3-1)import { AppReview } from '@capawesome/capacitor-app-review';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const openAppStore = async () => {
[](#%5F%5Fcodelineno-3-4)  await AppReview.openAppStore({
[](#%5F%5Fcodelineno-3-5)    appId: '123456789'
[](#%5F%5Fcodelineno-3-6)  });
[](#%5F%5Fcodelineno-3-7)};
[](#%5F%5Fcodelineno-3-8)
[](#%5F%5Fcodelineno-3-9)const requestReview = async () => {
[](#%5F%5Fcodelineno-3-10)  await AppReview.requestReview();
[](#%5F%5Fcodelineno-3-11)};
`

Thanks to [@mertyldrr](https://github.com/mertyldrr) for the contribution!

### App Update[¶](#app-update "Permanent link")

The [Capacitor App Update plugin](/docs/sdks/capacitor/app-update/) now has a new `appId` property that allows you to specify the app ID of your app:

`[](#%5F%5Fcodelineno-4-1)import { AppUpdate } from '@capawesome/capacitor-app-update';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const openAppStore = async () => {
[](#%5F%5Fcodelineno-4-4)  await AppUpdate.openAppStore({
[](#%5F%5Fcodelineno-4-5)    appId: '123456789'
[](#%5F%5Fcodelineno-4-6)  });
[](#%5F%5Fcodelineno-4-7)};
`

This solves the problem where the app was not always found in the App Store and speeds up the entire plugin call.

### File Picker[¶](#file-picker "Permanent link")

The [Capacitor File Picker plugin](/docs/sdks/capacitor/file-picker/) now has a new `pickDirectory` method that allows you to pick a directory:

`[](#%5F%5Fcodelineno-5-1)import { FilePicker } from '@capawesome/capacitor-file-picker';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const pickDirectory = async () => {
[](#%5F%5Fcodelineno-5-4)  const result = await FilePicker.pickDirectory();
[](#%5F%5Fcodelineno-5-5)  console.log('Picked directory path:', result.path);
[](#%5F%5Fcodelineno-5-6)};
`

In combination with the [Filesystem](https://capacitorjs.com/docs/apis/filesystem) plugin, you can now easily access multiple files in a directory at once without having to select each file individually.

Thanks to [@ebarooni](https://github.com/ebarooni) for the contribution!

### ML Kit Barcode Scanning[¶](#ml-kit-barcode-scanning "Permanent link")

The [ML Kit Barcode Scanning](/docs/sdks/capacitor/mlkit/barcode-scanning/) plugin got two new features this month.

##### Compatibility with Torch Plugin[¶](#compatibility-with-torch-plugin "Permanent link")

The plugin is now compatible with the [Capacitor Torch plugin](/docs/sdks/capacitor/torch/) which means that you no longer have to use the deprecated torch methods of the ML Kit Barcode Scanning plugin.

##### Barcode Value Types[¶](#barcode-value-types "Permanent link")

The plugin now returns the value types of the scanned barcodes. The following value types are available:

* [BarcodeCalendarEvent](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodecalendarevent)
* [BarcodeContactInfo](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodecontactinfo)
* [BarcodeDriverLicense](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodedriverlicense)
* [BarcodeEmail](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodeemail)
* [BarcodeGeoPoint](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodegeopoint)
* [BarcodePhone](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodephone)
* [BarcodeSms](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodesms)
* [BarcodeUrlBookmark](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodeurlbookmark)
* [BarcodeWifi](/docs/sdks/capacitor/mlkit/barcode-scanning/#barcodewifi)

Thanks to [@mertyldrr](https://github.com/mertyldrr) for the contribution!

### NFC[¶](#nfc "Permanent link")

The [Capacitor NFC plugin](/docs/sdks/capacitor/nfc/) now has a new `compatibilityMode` flag that can help reading some special NDEF tags:

`[](#%5F%5Fcodelineno-6-1)import { Nfc } from '@capawesome-team/capacitor-nfc';
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)const startScanSession = async () => {
[](#%5F%5Fcodelineno-6-4)  await Nfc.startScanSession({ 
[](#%5F%5Fcodelineno-6-5)    compatibilityMode: true 
[](#%5F%5Fcodelineno-6-6)  });
[](#%5F%5Fcodelineno-6-7)};
`

Please be aware that this mode only supports reading NDEF tags and is only available on iOS.

### Torch[¶](#torch "Permanent link")

The [Capacitor Torch plugin](/docs/sdks/capacitor/torch/) has also been updated to be compatible with the [ML Kit Barcode Scanning](/docs/sdks/capacitor/mlkit/barcode-scanning/) plugin. This means that you can now use the Torch plugin to toggle the flashlight even when scanning barcodes.

### Wifi[¶](#wifi "Permanent link")

The [Capacitor Wifi plugin](/docs/sdks/capacitor/wifi/) now returns the security types and signal strength for scanned networks:

`[](#%5F%5Fcodelineno-7-1)import { Wifi } from '@capawesome-team/capacitor-wifi';
[](#%5F%5Fcodelineno-7-2)
[](#%5F%5Fcodelineno-7-3)const scan = async () => {
[](#%5F%5Fcodelineno-7-4)  await Wifi.addListener('networksScanned', (event) => {
[](#%5F%5Fcodelineno-7-5)    const firstNetwork = event.networks[0];
[](#%5F%5Fcodelineno-7-6)    console.log('First network security types:', firstNetwork.securityTypes);
[](#%5F%5Fcodelineno-7-7)    console.log('First network signal strength:', firstNetwork.rssi);
[](#%5F%5Fcodelineno-7-8)  });
[](#%5F%5Fcodelineno-7-9)  await Wifi.startScan();
[](#%5F%5Fcodelineno-7-10)};
`

June 10, 2026 

Back to top

```json
{
      "@context": "https://schema.org",
      "@type": "BlogPosting",
      "headline": "Capawesome November 2024 Update",
      "description": "The Capawesome November update is here! This update includes new features and improvements for Capawesome Cloud and our Plugins.",
      "image": "https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png",
      "datePublished": "2024-11-30T00:00:00+00:00",
      "dateModified": "2024-11-30T00:00:00+00:00",
      "author": [
        {
          "@type": "Person",
          "name": "Robin Genz",
          "url": "https://github.com/robingenz"
        }
      ],
      "publisher": {
        "@type": "Organization",
        "name": "Capawesome",
        "url": "https://capawesome.io",
        "logo": {
          "@type": "ImageObject",
          "url": "https://capawesome.io/assets/images/logo.svg"
        }
      },
      "articleSection": "Updates",
      "keywords": ["Updates"],
      "mainEntityOfPage": "https://capawesome.io/blog/2024-november-update/",
      "url": "https://capawesome.io/blog/2024-november-update/"
    }
{
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://capawesome.io/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://capawesome.io/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Capawesome November 2024 Update",
          "item": "https://capawesome.io/blog/2024-november-update/"
        }
      ]
    }
```
