Live Updates
The real power of Federated Capacitor comes in with Appflow Live Updates. So let's configure a few of the applications we are using. If you are using a monorepo you will need to add some configuration to your base directory. You can read more about that in Appflows docs
First let's add Live Updates to the main shell application. Modify the capacitor.config.ts file to add a liveUpdateConfig section to the FederatedCapacitor application.
FederatedCapacitor: {
shell: {
name: 'shell',
liveUpdateConfig: {
appId: "YOUR_APP_ID_IN_APPFLOW",
channel: "production",
autoUpdateMethod: "none",
strategy: "differential"
}
},
- appId: Replace
YOUR_APP_ID_IN_APPFLOWwith your own id. (example:e9597b11) - channel: By default all releases happen in Appflow from the
productionchannel but you can setup whatever channel you need here. - autoUpdateMethod: Options would be
noneorbackground. You would choosenoneif you want to call the update method on your own, but the most common choice here would bebackgroundwhere the updates happen automatically. - strategy: Options would be
zipordifferential.zipis the default and will download the entire update each time.differentialwill only download the changes between the current version and the new version.
After you have made these changes and done a build the application will begin pulling updates from Appflow using the IDs that you have provided. See the reference documentation for methods on performing live updates manually from your application code.
Self-hosted Live Updates
Federated Capacitor supports Self-hosted Live Updates! For our customers with strict security requirements, Self-hosted Live Updates includes enhanced security features built on top of Appflow's already secure delivery mechanisms. Follow the instructions in the Appflow Docs to get started. However, there is no need to install any additional plugins in your app.
Modify the capacitor.config.ts file to add a liveUpdatesKey field to the FederatedCapacitor application. This informs the Federated Capacitor plugin where to find the public key used for Self-hosted Live Updates.
FederatedCapacitor: {
liveUpdatesKey: "public.pem"
shell: {
name: 'shell',
liveUpdateConfig: {
appId: "YOUR_APP_ID_IN_APPFLOW",
channel: "production",
autoUpdateMethod: "none",
strategy: "differential"
}
},
The location specified is relative to the shell directory specified in the config. For example, in the example application we placed the public.pem key file in the packages/shell directory.
While the liveUpdatesKey is present in the config, Federated Capacitor will assume that all Live Updates need to be validated against the provided public key. If this feature is not required, do not provide a key in the config.