Getting started
Join Discord Community
Join the Capacitor-updater Discord Server!
Maintenance
Plugin version | Capacitor compatibility | Maintained |
---|---|---|
v5.*.* | v5.*.* | ✅ |
v4.*.* | v4.*.* | Critical bug only |
v3.*.* | v3.*.* | ⚠️ Deprecated |
Choose Your Mode
- Cloud Auto Mode:
Logic is handled by Capgo backend, providing enhanced security and fine-grained updates. You can deploy updates to specific devices or groups. - Cloud Manual Mode:
Update logic is handled by your JS, while Capgo backend handles the update content. - Self-hosted Auto Mode:
You need to recreate the update logic in your backend. - Self-hosted Manual Mode:
Update logic is handled by your JS, while the server handles the updates. - Manual Mode without Backend:
All logic must be handled by your JS.
⚠️ Please note that using Manual Mode can lead to complex issues since the code for the update is shipped within the update itself.
Cloud Auto (Recommended)
Pros | Cons |
---|---|
✅ No need to handle logic - we do it for you | 🟠 Requires SemVer usage |
✅ Auto-revert feature included | 🟠 Only one way to update users |
✅ Get valuable update statistics | |
✅ Ability to revert users if needed | |
✅ Share versions with your team or users via channels | |
✅ Define advanced strategies like AB testing or partial deployment | |
✅ Quick and easy configuration - set it up and forget about it |
Manual
Pros | Cons |
---|---|
✅ Full control over update logic | 🟠 You handle if you need an on-premise server |
✅ Version server optional | 🟠 You spend time on something not related to your core business |
🟠 You handle all scenarios yourself | |
🟠 You handle on-premise server requirements |
Store Guideline Compliance
Android Google Play and iOS App Store have corresponding guidelines that have rules you should be aware of before integrating the Capacitor-updater solution within your application.
Google play
Third paragraph of Device and Network Abuse topic describe that updating source code by any method other than Google Play’s update mechanism is restricted. But this restriction does not apply to updating javascript bundles.
This restriction does not apply to code that runs in a virtual machine and has limited access to Android APIs (such as JavaScript in a webview or browser).
That fully allow Capacitor-updater as it updates just JS bundles and can’t update native code part.
App Store
Paragraph 3.3.2, since back in 2015’s Apple Developer Program License Agreement fully allowed performing over-the-air updates of JavaScript and assets - and in its latest version (20170605) downloadable here this ruling is even broader:
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.
Capacitor-updater allows you to follow these rules in full compliance so long as the update you push does not significantly deviate your product from its original App Store approved intent.
To further remain in compliance with Apple’s guidelines we suggest that App Store-distributed apps don’t enable the Force update
scenario, since in the App Store Review Guidelines it is written that:
Apps must not force users to rate the app, review the app, download other apps, or other similar actions in order to access functionality, content, or use of the app.
This is not a problem for the default behavior of background update, since it won’t force the user to apply the new version until next app close, but at least you should be aware of that ruling if you decide to show it.
Roadmap
The roadmap is managed on GitHub.
Open source
The plugin is under the LGPL-3.0 License and the back-end is AGPL-3.0 License.
💡 LGPL-3.0 means if someone modifies the code of the plugin, it’s mandatory to publish it, in open-source with the same licensing. If you use the code without modification, that doesn’t concern you. See the issue below for more details check the link 👇
You can include it in your app without worrying
Last words
If you self-host and find this tool useful, please consider supporting my work by becoming a GitHub sponsor.
I made a bet to open-source all the code I built here instead of keeping it for myself and charging a high price. By opening up instead of fighting and hiding, I believe we can make the world a better place.
To make this possible, it’s necessary for all of us to do our part, including you 🥹. If Capgo cloud doesn’t meet your needs, you can back a bootstrapped Maker here on your own terms.