Remote App Update allows you to update your native iOS and Android applications remotely. You can deploy full updates directly to devices without the need for submitting a new version to App Store or Google Play. The devices will receive the updates to your native app instantly on-the-fly.
It is especially useful for making sure that all your users are running the newest version of your app. You can always deliver the latest and the best user experience while avoiding the need for maintaining multiple backends for multiple app versions in the wild and waiting for the store review to have your new app version released. Below are some use cases where Remote App Update comes in handy:
- Feature flags: If you want a feature to be functional at a certain point (such as a new feature is going live after the backend development is complete), you can send remote updates that will activate (or deactivate) a feature whenever you like.
- Time-specific events: If you are making a time-limited campaign or celebrating a special day, you can update your app instantly with the changes specific to that period. For instance, you can change the colors of your app on 4th of July or you can host a flash sale and you don't need to code any of these changes beforehand.
- A/B testing: You can freely change the UI elements or texts to conduct live experiments and track how it affects the user engagement.
- Bug fixing: Especially if you have a critical bug that must be fixed as soon as possible, you can instantly send an update to all users without waiting for store review.
Remote App Update gives you the flexibility of web development for native iOS and Android apps.
2. Is it allowed to perform remote updates on iOS apps downloaded from the App Store (skipping store review)?
As indicated in section 3.3.2 of the "Apple Developer Program Information" document available at
Therefore, it is allowed to make changes as long as the purpose of the app is kept intact. Due to the unique architecture of Smartface engine, you can change most of the things in an app remotely, which makes Remote App Update a powerful feature and we advise you to use it responsibly.
The Remote App Update adds the functionality to update the scripts and assets in a native app from an external resource the in an efficient, convenient and secure manner with features such as:
- Direct publishing to Remote App Update module from the Cloud IDE
- Quick manipulation of accessed resources with release channels (for processes like internal testing or A/B testing)
- Central management interface for versions and releases for each platform (Android and iOS)
- Delta based update transfer for high performance
- Image assets:
- All images can be updated remotely on iOS, with the only exception being the splash screens and icons.
- On Android, due to the automatic image assignment mechanism based on the screen density, local images in drawable folders cannot be updated remotely. If you would like to update images remotely on Android, it is advised to use assets folder to store images or use online image resources. Just like iOS, splash screens and icons cannot be updated remotely.
- Non-image assets: All non-image assets can be updated remotely both on iOS and Android.
- Smartface engine (player): The native engine cannot be updated remotely. (Engine updates might be required in rare cases such as major OS releases, for which you need to submit a new binary to the store.)
- Application signing identities (certificates): Both on iOS and Android, the signing identity cannot be updated remotely. For instance, if the certificate is expired, the binary needs to be resigned with a new certificate.
- Smartface plugins:
- The native plugins are compiled with the engine so they cannot be updated remotely. (Please note that if a plugin accesses files in the assets folder through the OS and not through Smartface APIs, it will not be able to access assets updated with Remote App Update since Remote App Update places the assets in a different folder structure.)
- Update checks are done with a lightweight structure and it is practically invisible to the user.
- The resource delta is calculated by server and only once when an device with a specific version requests an update for the first time. Then the update package is prepared accordingly, which only contains the resource delta for the minimum update size possible. If other devices with the same version requests an update, the update package will be served directly without any delta calculation process.
- The update package is transferred through CDN for faster transfers. The download performance depends on the volume of changes and the connectivity of the user. If the changes are only limited with the code, it is pretty quick as only text data is sent in the form of compressed delta code is sent.