In-app update Platform SDK APIs
Updated: Oct 2, 2026
The purpose of providing the in-app update APIs is to give you more control over your app update experience. It’s up to you to use these APIs in ways that best fit your specific requirements. This document describes a broad overview of these APIs. The exact details of the APIs along with their parameters are available in the
Platform SDK API documentation.
Each request returns its result as a message on the message queue. For how to retrieve messages, see
Requests and Messages.
Once the user opens up the app and starts interacting with the app, the app can try to check if an update is required on that particular device or not. This can be done by making use of this API. This API returns the currently installed version on the device, the latest available version and the size and release date of the latest version. These values will help in deciding if an update is required or not. If the app determines that an update is required then the APIs described later will help in performing the update process. This is an example usage -
ovr_Application_GetVersion();
// In your message loop
case ovrMessage_Application_GetVersion:
if (!ovr_Message_IsError(message)) {
ovrApplicationVersionHandle version = ovr_Message_GetApplicationVersion(message);
if (ovr_ApplicationVersion_GetCurrentCode(version) != ovr_ApplicationVersion_GetLatestCode(version)) {
// An update is available. Prompt the user to initiate or do it automatically
}
}
break;
This API will start the download of the latest available app update. Once this request is made, the installer automatically figures out which version of the app needs to be installed on the device. This is an example usage -
ovr_Application_StartAppDownload();
// In your message loop
case ovrMessage_Application_StartAppDownload:
if (ovr_Message_IsError(message)) {
// handle error here
} else {
ovrAppDownloadResultHandle result = ovr_Message_GetAppDownloadResult(message);
// handle success
}
break;
At this point depending on the success or failure of the operation, the app can decide to show some kind of in-app notification to the user to indicate that the download is complete. In case it was successful, the app can call the
InstallAppUpdateAndRelaunch API to install this update and then automatically relaunch the app. If the request fails, see
Additional details about the install result status.
If during the download process, the app wants to cancel the ongoing download for some reason, then this API can be used to immediately cancel the download. No further action needs to be taken after this.
CheckAppDownloadProgress API
The app download process can take a long time to finish depending on the size of the update that needs to be downloaded. This API can be called when the download process started by the StartAppDownload API is still in progress. This will return the number of bytes to be downloaded, the number of bytes that have already been downloaded and the current status of the app. This can be used by app developers to show some kind of progress bar to users if they want to. The result has the following fields -
ovr_AppDownloadProgressResult_GetDownloadBytes(): Total number of bytes that need to be downloadedovr_AppDownloadProgressResult_GetDownloadedBytes(): Number of bytes that have already been downloadedovr_AppDownloadProgressResult_GetStatusCode(): An ovrAppStatus value
The app status is one of the following values (each prefixed with ovrAppStatus_) -
UnknownEntitledDownloadQueuedDownloadingInstallingInstalledUninstallingInstallQueued
InstallAppUpdateAndRelaunch API
Once the app update has been successfully downloaded, the app can use this API to perform the actual install of the update. During the install process the app is automatically killed by the Operating System and relaunched once the install is complete. So the user will need to wait for some time before they can start using the app again. The app developer has the option to specify the deep link at which they would like to relaunch the app to. This will help users resume what they were doing before the install was initiated. This is an example usage -
ovrApplicationOptionsHandle appOptions = ovr_ApplicationOptions_Create();
ovr_ApplicationOptions_SetDeeplinkMessage(appOptions, deeplink);
ovr_ApplicationOptions_SetDestinationApiName(appOptions, destination_api_name);
ovr_Application_InstallAppUpdateAndRelaunch(appOptions);
ovr_ApplicationOptions_Destroy(appOptions);
// In your message loop
case ovrMessage_Application_InstallAppUpdateAndRelaunch:
if (ovr_Message_IsError(message)) {
// handle error
}
break;
Additional details about the install result status
The error message contains the install result status string. This provides additional details about the reason for failures:
UNKNOWNLOW_STORAGENETWORK_ERRORDUPLICATE_REQUESTINSTALLER_ERRORUSER_CANCELLEDAUTHORIZATION_ERRORSUCCESS