October 26, 2022
  • All
  • Announcements
  • Product
  • Appflow
  • Live Updates
  • Mobile CI/CD

Self-hosted Live Updates are here!

Conner Simmons

Product Team

Long gone are the days of waiting for the app store to approve updates to your applications. With Live Updates from Appflow, Ionic’s mobile DevOps platform, developers can push live app updates directly to users and testers instantly. Live Updates lets companies seamlessly integrate their codebase, generate web build artifacts, and push real-time app changes to their users’ devices. Appflow’s secure pipeline has facilitated hundreds of millions of Live Updates, saving organizations time, money, and countless headaches.

We’ve also heard time and time again – large enterprises want to use Live Updates, but strict compliance standards get in the way. Until now.

→ We’re excited to announce Self-hosted Live Updates, the next iteration of Appflow’s Live Updates!

While many enterprises leverage the Live Updates SDK to pull down the latest JavaScript, HTML, and CSS changes into their applications, others are hampered by corporate policy, industry regulations, or other geographical restrictions. With Self-hosted Live Updates, you are now able to distribute web build artifacts through your own infrastructure. That means no more app store delays, quicker bug fixes and content changes, and ensuring your users are always on the app’s latest version.

How do self-hosted live updates work?

Appflow-hosted Live Updates can be configured and deployed easily in Appflow with the Appflow SDK. For Self-hosted Live Updates, we’ve added functionality to the Ionic Cloud CLI and built a new Capacitor-based Live Updates plugin for configuration on your own infrastructure.

In order for Appflow to ensure a securely coordinated delivery of the newly updated web build artifacts to end-users, the Capacitor Live Updates plugin now utilizes a public/private key pairing. The additional handshake when using Self-hosted Live Updates adds peace of mind that the artifacts delivered by the enterprise’s infrastructure and pulled down via the plugin have remained unmodified.

The following walks through the steps to set up the key pairing as well as the workflow that ultimately brings the updated experience to end users.

One-time key pair setup

To generate a public/private key pair, enterprises can utilize the following Ionic Cloud CLI command:

ionic-cloud live-update generate-signing-key

The resulting private key is stored within the organization’s CI/CD platform. On the app side, the Live Updates plugin must be installed:

npm install @capacitor/live-updates
npx cap sync

Once installed, the public key file path can be added to the Capacitor configuration file (capacitor.config.ts or capacitor.config.json) inside a “LiveUpdates” section under plugins. It should look as follows:

import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
  appId: 'com.company.appname',
  appName: 'My Capacitor App',
  webDir: 'www',
  plugins: {
    LiveUpdates: {
      appId: '042a1261',
      channel: 'production',
      autoUpdateMethod: 'background',
      maxVersions: 2,
      key: 'public_key.pem',
    },
  },
};
export default config;

With the remaining “LiveUpdates” properties set to your preferences and the ability to handshake the public and private keys, Appflow can safely exchange live updates.

Self-hosted live updates workflow

Implementing Self-hosted Live Updates begins with an enterprise performing a web build of their bug fix, content updates, or other web-based code changes. They then sign the build artifact with the private key obtained from the one-time setup and upload the bundle to the storage location of their choice.

Appflow must then be informed of a new Live Update that is ready for consumption. This is done via another Ionic Cloud CLI command:

ionic-cloud live-update register-artifact --location="https://abc.com/app/updates/abc123.zip"

Once the command is run, Appflow is aware of a new update ready to be distributed to the app’s users. Now, when the app is started, the Live Updates plugin checks with Appflow to see if any changes need to be brought down.

Appflow responds back to the plugin with “Yes, an update is available” and the Live Updates plugin downloads the new live update using the URL location provided from the register CLI command:

https://abc.com/app/updates/abc123.zip

The organization’s API returns the Live Update bundle from the location, and the app applies the live update. Voilà!

Ionic Portals Support

In addition to leveraging self-hosted live updates in their Capacitor apps, enterprises can use them in native iOS and Android apps using Ionic Portals. Portals is a supercharged native WebView component that lets you add web-based experiences to native mobile apps. It enables native and web teams to better collaborate and bring new and existing web experiences to mobile in a safe, controlled way.

Using self-hosted live updates with Ionic Portals is similar to the Capacitor instructions above. Each Portal can be updated independent of the rest of the code in the application. This allows teams to iterate quickly and fix critical issues by pushing updates directly to your users, when you’re ready, for immediate impact.

Get started

We’re excited to bring the power of Live Updates to more enterprises than ever. Organizations and app users alike will quickly realize the benefits of Appflow’s secure distribution of over-the-air app updates. 

For more information on Self-hosted Live Updates by Appflow, you can check out the docs. Ready to deploy instant app updates directly to your users? Contact sales today!


Conner Simmons

Product Team