Capawesome January 2026 Update¶
The Capawesome January update is here! This update includes new features and improvements for Capawesome Cloud and our Plugins. Let's take a look at the most important changes.
Cloud¶
App Store Connect API Key¶
You can now authenticate with App Store Connect using an API Key when configuring an Apple App Store destination in Capawesome Cloud. Previously, authentication was only available via Apple ID and app-specific password. The new API Key method lets you upload a .p8 private key file along with the Key ID and Issuer ID from App Store Connect, providing a more robust and streamlined way to submit your iOS builds to TestFlight.
To get started, navigate to the Destinations page in the Capawesome Cloud Console and select API Key as the authentication method. Check out the Apple App Store documentation for instructions on obtaining the required credentials.
Play Store Release Status¶
When configuring a Google Play Store destination, you can now choose the release status for your app submissions. Two options are available:
- Draft: For initial releases that require manual review before publishing. This is useful for the very first release on a track where additional setup may be needed in Google Play Console.
- Completed: For releases that should be automatically published to the selected track, which is the typical choice for subsequent releases.
Check out the Google Play Store documentation to learn more.
Protected Channels¶
Channels can now be marked as "protected" to enhance the security of your live updates. When a channel is protected, all builds associated with that channel must be code-signed before they can be distributed to users. This ensures that only authorized builds are delivered through the protected channel. Check out the Protected Channels documentation to learn more.
Pause and Resume Channels¶
You can now pause and resume live update channels directly from the Capawesome Cloud Console or via the Capawesome CLI. When a channel is paused, devices stop receiving new live updates from that channel until you resume it. This is useful for temporary holds during maintenance windows, controlling production deployments while testing new bundles, or quickly halting problematic updates without deleting the channel. Check out the blog post for more details.
Enforce 2FA for Organization Members¶
Organizations can now enforce two-factor authentication (2FA) for all members. When 2FA enforcement is enabled, new members must have 2FA enabled on their account before they can join the organization. Members who are already part of the organization retain access, but they cannot disable 2FA while they remain a member. This gives organizations better control over account security across their teams. Check out the Two-Factor Authentication documentation to learn more.
Plugins¶
Android Edge-to-Edge Support¶
The Android Edge-to-Edge Support plugin has received important bug fixes and improvements. The plugin manages edge-to-edge display support on Android by applying proper insets to the webview, preventing Android's edge-to-edge changes from affecting apps that haven't been designed to support it. If you're targeting recent Android versions, make sure to update to the latest version of the plugin.
Audio Player¶
The Audio Player plugin now supports adjustable playback rate with pitch preservation. You can control the playback speed using the setRate(...) method, with values between 0.5 and 2.0 recommended for consistent behavior across devices:
import { AudioPlayer } from '@capawesome/capacitor-audio-player';
const setPlaybackRate = async () => {
await AudioPlayer.setRate({ rate: 1.5 });
};
This feature is available on Android (SDK 23+), iOS, and Web.
Biometrics¶
The Biometrics plugin now includes a new getBiometricType() method that returns the type of biometric authentication available on the device. If multiple biometric types are available, the method prioritizes them in the order Face > Iris > Fingerprint:
import { Biometrics } from '@capawesome-team/capacitor-biometrics';
const getBiometricType = async () => {
const result = await Biometrics.getBiometricType();
console.log('Biometric type:', result.type);
};
This method is available on Android and iOS.
Purchases¶
The Purchases plugin has received several new features this month.
A new productCategory property is now available on Android to filter product queries. You can specify either ProductCategory.InApp for consumables and non-consumables or ProductCategory.Subscription for subscription products, giving you more control over which products are returned.
The new getProductsByIds(...) method allows you to retrieve details for multiple products in a single call:
import { Purchases } from '@capawesome-team/capacitor-purchases';
const getProducts = async () => {
const result = await Purchases.getProductsByIds({
productIds: ['com.example.premium', 'com.example.pro']
});
for (const product of result.products) {
console.log('Product:', product.displayName);
console.log('Price:', product.price);
}
};
Transactions now include platform-specific verification data for server-side IAP validation. On iOS, transactions provide a JWS (JSON Web Signature) representation, while on Android they include the purchase token, original JSON data, and RSA signature.
A new isIntroOfferAvailableForProduct(...) method has been added to check whether a user is eligible for introductory offers on subscriptions. This leverages StoreKit 2's eligibility checks on iOS and examines available pricing phases on Android.
Square Mobile Payments¶
We are excited to announce the initial release of the Square Mobile Payments plugin! This unofficial Capacitor plugin integrates Square's Mobile Payments SDK, enabling you to accept in-person card payments through Square readers in your Android and iOS applications.
The plugin supports multiple card entry methods including contactless (tap), chip insertion, swipe, and manual keying. It also includes reader management for pairing and monitoring, real-time event listeners for reader status and payment completion, and both online and offline payment processing with automatic synchronization. Check out the documentation to learn more about getting started with the Square Mobile Payments plugin.