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

[ 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 or Yarn ](/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](../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](/) 

## 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 8, 2026 

 Back to top 