Force Update
In some cases, it is essential to ensure users update their applications directly through the app store instead of relying on over-the-air (OTA) updates via CodePush. This is particularly important when native-level changes are introduced that cannot be handled by CodePush.
When to Use Force Update
CodePush is limited to delivering updates to JavaScript files, images, and other assets. It does not support updates involving changes at the native layer—for example:
Updates that include native dependencies or plugins.
Changes made to native iOS or Android modules.
Modifications to platform-specific configuration files.
In such scenarios, a store update is mandatory, and CodePush updates will not be delivered to affected users. To guide users to the app store for these updates, the Force Update mechanism can be applied.
To ensure users receive updates to your app through the store, you may want to guide them in that direction. CodePush has certain limitations. Specifically, when there are changes at the native layer or when a plugin working with the native layer is added, users must update their apps from the store. Updates of this kind sent through CodePush will not be received by users.
Eligible Builds for Force Update
Not all builds can be force-updated. The following rules apply:
✅ Eligible: Builds that were previously marked as Live and have since been replaced by newer Live builds.
❌ Not Eligible: Builds that have never been marked as Live, even if they were successful.
❌ Not Allowed: You cannot apply Force Update to the current Live build.
How to Apply a Force Update
To apply a Force Update to an older build:
Navigate to: Projects → Project Detail → Build Detail
Locate a previously Approved (but now inactive) build.
Click the Force Update link available in the build's detail view.
Confirm the action in the prompt that appears.

Once confirmed:
A new CodePush process will be triggered.
If the operation is successful, the update will be marked and delivered as a Force Update.
Users still running the targeted old build will receive a mandatory update prompt directing them to the store.
This operation is irreversible. Ensure you apply Force Update only when it is absolutely required.
User Interface Behavior
When a user opens a deprecated version of the app, they see a non-dismissible modal prompting them to update. This modal contains a button that redirects directly to the app store.
While the app's home screen technically renders in the background, the modal obscures it, preventing any user interaction until the update is performed.
Configuring iOS Store Redirection
You can configure how iOS users are redirected to the Apple App Store using one of two methods.
Define the Store ID (Recommended)
This method ensures instant redirection without api calls. Add the storeId property to the ios object in your akinon.json file.
To find your Store ID:
Log in to App Store Connect.
Select your app from the list.
Navigate to App Information.
Under the General Information section, locate the Apple ID.
Copy this numeric value and paste it into the storeId field in akinon.json.

Redirection via iTunes API
If you do not add a storeId to akinon.json, the app attempts to retrieve it dynamically by querying the Apple iTunes API using your bundle identifier.
This method relies on an external API request. It introduces a waiting period while the app fetches the data. If the iTunes API is unreachable, the redirection mechanism will fail, and the user will not be taken to the Apple App Store.
Example screen:

Last updated
Was this helpful?

