Push new code to your react-native and expo mobile app users without store submission.
-
Instant patches and features deployment, without re-publishing on stores.
-
Support expo and react-native apps.
-
Integrate in minutes and check your configuration with the
doctor
command. -
Compliant with App Store and Play Store.
Otago is a custom server for expo-updates library. When the SDK is installed on your mobile application, each time a user starts the app, it will check on Otago for updates. If there is a new version, it is downloaded and installed.
- ✓ Can be updated: Javascript code, images, fonts...
- ✗ Cannot be updated: Native code, app config, libraries that import native code...
First you will need to create an account.
# 1. Follow the documentation to configure your application
# 2. Check the configuration
> OTAGO_API_KEY=[api_key] npx otago doctor --project [project_ref]
# 3. Build and publish your app...
# 4. Run your first code deployment
> OTAGO_API_KEY=[api_key] npx otago deploy --project [project_ref]
> npx otago help
Usage: otago [options] [command]
CLI to deploy your code pushes with Otago services.
Options:
-v, --version output the version number
-h, --help display help for command
Commands:
doctor|check-config [options]
deploy [options] Deploy your code pushes with Otago services.
help [command] display help for command
This command helps you check your configuration.
> npx otago doctor
Option name | Parameter | Required | Description |
---|---|---|---|
Api Key |
-k, --key (or env: OTAGO_API_KEY ) |
true |
API key to authenticate with Otago services. |
Project ref |
-p, --project (or env: OTAGO_PROJECT ) |
true |
Project reference you want to deploy to. |
Env var | Default | Description |
---|---|---|
NODE_ENV |
production |
Environnement used to load all your .env files. See override order. |
EAS_PROFILE |
production |
EAS profile used to load all your env in eas.json (if file is present, lower priority). |
OTAGO_LOAD_ENVS |
true |
Enable or disable env auto-loading. |
This command bundles your app then run the code update for all the phones with the current resolved runtime version.
Important note:
- If you install or upgrade a lib which includes some native code or configuration, you cannot push it as a code update with Otago. Instead you need to increment runtime version (this is automatic with
fingerprint
policy), then build and publish a new version of your app.
> npx otago deploy
Option name | Parameter | Required | Description |
---|---|---|---|
Api Key |
-k, --key (or env: OTAGO_API_KEY ) |
true |
API key to authenticate with Otago services. |
Project ref |
-p, --project (or env: OTAGO_PROJECT ) |
true |
Project reference you want to deploy to. |
Platforms |
-pf, --platforms (or env: OTAGO_PLATFORMS ) |
false |
Platforms to deploy, comma separated. Example: android,ios . Default: all . |
Code signing private key |
-pk, --private-key (or env: OTAGO_PRIVATE_KEY ) |
false ( true if code signing is configured) |
Private key (or its path) to sign your update. |
Env var | Default | Description |
---|---|---|
NODE_ENV |
production |
Environnement used to load all your .env files. See override order. |
EAS_PROFILE |
production |
EAS profile used to load all your env in eas.json (if file is present, lower priority). |
OTAGO_LOAD_ENVS |
true |
Enable or disable env auto-loading. |
Submit an issue to the project Github if you need any help. And, of course, feel free to submit pull requests with bug fixes or changes.