Skip to content

Encryption

This documentation explains how to migrate to the encryption v2 system. Learn more about the encryption v2 system in the blog post.

Terminal window
npx @capgo/cli key create

Store the private key securely. Never commit it to source control or share it with untrusted parties.

This command:

  • Creates a new key pair in your app
  • Removes the old key from your Capacitor config
  • Keeps old key files for backward compatibility

When prompted “Do you want to setup encryption with the new channel in order to support old apps and facilitate the migration?”, select yes. This adds a new defaultChannel option to your Capacitor config.

capacitor.config.ts
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'Example App',
plugins: {
CapacitorUpdater: {
// ... other options
defaultChannel: 'encryption_v2' // New apps will use this channel
}
}
};
export default config;
Terminal window
npx @capgo/cli bundle upload --channel encryption_v2
Terminal window
npx @capgo/cli channel set encryption_v2 --self-assign
Terminal window
npx @capgo/cli bundle upload --channel production

Once all users have updated their apps:

  1. Remove defaultChannel from your Capacitor config
  2. Delete the old channel:
Terminal window
npx @capgo/cli channel delete encryption_v2