FAQ¶
General¶
Are Live Updates compliant with the Apple App Store policies?¶
Yes, Live Updates are compliant with the Apple App Store policies. The Apple Developer Program License Agreement states that interpreted code may be downloaded to an application as long as it does not change the primary purpose of the application and does not bypass signing, sandbox, or other security features of the OS:
Interpreted code may be downloaded to an Application but only so long as such code: (a) does not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store, (b) does not create a store or storefront for other code or applications, and (c) does not bypass signing, sandbox, or other security features of the OS.
So as long as you do not change the primary purpose of your app via Live Updates, they are fully compliant with the Apple App Store policies since they only update the web layer of your app.
Are Live Updates compliant with the Google Play policies?¶
Yes, Live Updates are compliant with the Google Play Policies. The third paragraph of Device and Network Abuse states that an app distributed via Google Play may not modify, replace, or update itself using any method other than Google Play's update mechanism. However, the same paragraph also states that this restriction does not apply to JavaScript running in a webview or browser:
This restriction does not apply to code that runs in a virtual machine or an interpreter where either provides indirect access to Android APIs (such as JavaScript in a webview or browser).
As Live Updates can only update the web layer of your app, they are fully compliant with the Google Play Policies.
What are "Binary Compatible Changes"?¶
Binary compatible changes are changes that only affect your web application and do not require a native update. So as long as you only make changes to your web application, you can deploy Live Updates without having to resubmit your app to the app stores. As soon as you make a change to the native code, you must resubmit your app to the app stores.
Examples of binary compatible changes:
- Changes to your HTML, CSS, or JavaScript
- Changes to your assets (images, fonts, etc.)
Examples of changes that are NOT binary compatible:
- Changes to native code (Java, Swift, Objective-C)
- Changes to native dependencies (CocoaPods, Gradle, etc.)
Read on the learn how to restrict bundles to specific native versions.
Bundles¶
How can I restrict bundles to specific native versions?¶
You can restrict bundles to specific native versions by using Versioned Builds or Versioned Channels.
How can i roll back to a previous bundle?¶
Check out the Rollbacks section for more information on how to roll back to a previous bundle.
How can i roll out a bundle to only a subset of users?¶
Check out the Rollouts section for more information on how to roll out a bundle to only a subset of users.
What is the maximum size of a bundle?¶
Currently, the maximum size of a bundle provided via the Capawesome Cloud is 100 MB. We are already working on increasing this limit. In the meantime, you have the following options:
- Reduce your bundle size: Bundle sizes can be reduced by optimizing images, fonts, and other assets. Also, it's often possible to load assets at runtime instead of bundling them with the app.
- Create a bundle with the artifact type
manifest
: The files of a bundle with the artifact typemanifest
are saved individually (see Delta Updates), which means that the limit of 100MB applies to each file and not to the entire bundle. This means that significantly larger bundles can be uploaded. - Host the bundle yourself: It's possible to host larger bundles yourself and provide the URL to the file when creating a new bundle.
What happens if i delete a bundle?¶
If you delete a bundle, it will no longer be available for download by devices. However, devices that have already downloaded the bundle will continue to use it until they receive a new update.
How can I automatically delete old bundles?¶
There are two options for automatically deleting old bundles so that you don't have to worry about the storage limit:
- 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.
- Set an expiration date: You can set an expiration date for a bundle. If this date is reached, the bundle will be deleted automatically.
Channels¶
What happens if i delete a channel?¶
If you delete a channel, all bundles associated with this channel will be deleted as well. Devices that have already downloaded a bundle from this channel will continue to use it until they receive a new update.
Devices¶
What happens if i delete a device?¶
If you delete a device, it will no longer be displayed in the device list. As soon as the device checks for a live update again, it will be restored in the device list. Deleting a device does not affect the Monthly Active Users (MAU) count.
Billing¶
How are Monthly Active Users (MAU) counted?¶
A Monthly Active User (MAU) is counted as a unique device that has synced with the Capawesome Cloud in the current month. For this purpose, the Capacitor Live Update plugin generates a unique ID with which the device identifies itself to Capawesome Cloud. This ID is only valid for as long as the app is installed on the device.
What happens if I reached the Monthly Active Users (MAU) limit?¶
If you reach the Monthly Active Users (MAU) limit of your current plan, we will notify you via email and give you the opportunity to upgrade your plan. As long as the limit is reached, no more live updates will be delivered to new devices. However, existing devices will still receive updates and your app will continue to work as usual.
What happens if I reached the Storage limit?¶
If you reach the Storage limit of your current plan, you will be notified when you try to upload a new bundle. You can either delete old bundles to free up space or upgrade your plan to increase the storage limit. There are also various options for automatically deleting old bundles so that you don't have to worry about the storage limit.