Expo Application Services
API Reference


expo-application provides useful information about the native application, itself, such as the ID, app name, and build version.

Platform Compatibility

Android DeviceAndroid EmulatoriOS DeviceiOS SimulatorWeb


→ npx expo install expo-application

If you're installing this in a bare React Native app, you should also follow these additional installation instructions.


import * as Application from 'expo-application';


Only for:


Type: string | null

The value of Settings.Secure.ANDROID_ID. This is a hexadecimal string unique to each combination of app-signing key, user, and device. The value may change if a factory reset is performed on the device or if an APK signing key changes. For more information about how the platform handles ANDROID_ID in Android 8.0 (API level 26) and higher, see Android 8.0 Behavior Changes. On iOS and web, this value is null.


In versions of the platform lower than Android 8.0 (API level 26), this value remains constant for the lifetime of the user's device. See the ANDROID_ID official docs for more information.




Type: string | null

The ID of the application. On Android, this is the application ID. On iOS, this is the bundle ID. On web, this is null.


"com.cocoacasts.scribbles", ""


Type: string | null

The human-readable name of the application that is displayed with the app's icon on the device's home screen or desktop. On Android and iOS, this value is a string unless the name could not be retrieved, in which case this value will be null. On web this value is null.


"Expo", "Yelp", "Instagram"


Type: string | null

The human-readable version of the native application that may be displayed in the app store. This is the Info.plist value for CFBundleShortVersionString on iOS and the version name set by version in app.json on Android at the time the native app was built. On web, this value is null.




Type: string | null

The internal build version of the native application that the app store may use to distinguish between different binaries. This is the Info.plist value for CFBundleVersion on iOS (set with ios.buildNumber value in app.json in a standalone app) and the version code set by android.versionCode in app.json on Android at the time the native app was built. On web, this value is null. The return type on Android and iOS is string.


iOS: "2.11.0", Android: "114"


Only for:


Gets the referrer URL of the installed app with the Install Referrer API from the Google Play Store. In practice, the referrer URL may not be a complete, absolute URL.


await Application.getInstallReferrerAsync();
// "utm_source=google-play&utm_medium=organic"
  • Undo-iconPromise<string>

A Promise that fulfills with a string of the referrer URL of the installed app.


Gets the time the app was installed onto the device, not counting subsequent updates. If the app is uninstalled and reinstalled, this method returns the time the app was reinstalled.


await Application.getInstallationTimeAsync();
// 2019-07-18T18:08:26.121Z

Returns a Promise that fulfills with a Date object that specifies the time the app was installed on the device.

Only for:


Gets the iOS application release type.

Returns a promise which fulfills with an ApplicationReleaseType.

Only for:


Gets the iOS "identifier for vendor" (IDFV) value, a string ID that uniquely identifies a device to the app’s vendor. This method may sometimes return nil, in which case wait and call the method again later. This might happen when the device has been restarted before the user has unlocked the device.

The OS will change the vendor identifier if all apps from the current app's vendor have been uninstalled.


await Application.getIosIdForVendorAsync();
// "68753A44-4D6F-1226-9C60-0050E4C00067"

A Promise that fulfills with a string specifying the app's vendor ID. Apps from the same vendor will return the same ID. See Apple's documentation for more information about the vendor ID's semantics.

Only for:


Gets the current Apple Push Notification (APN) service environment.

Returns a promise fulfilled with the string, either 'development' or 'production', based on the current APN environment, or null on the simulator as it does not support registering with APNs.

Only for:


Gets the last time the app was updated from the Google Play Store.


await Application.getLastUpdateTimeAsync();
// 2019-07-18T21:20:16.887Z

Returns a Promise that fulfills with a Date object that specifies the last time the app was updated via the Google Play Store).



Acceptable values are: 'development', 'production', null.



ApplicationReleaseType.UNKNOWN = 0
ApplicationReleaseType.SIMULATOR = 1
ApplicationReleaseType.ENTERPRISE = 2
ApplicationReleaseType.DEVELOPMENT = 3
ApplicationReleaseType.AD_HOC = 4
ApplicationReleaseType.APP_STORE = 5

Error Codes

ERR_APPLICATION_PACKAGE_NAME_NOT_FOUNDError code thrown by getInstallationTimeAsync and getLastUpdateTimeAsync. This may be thrown if the package information or package name could not be retrieved.
ERR_APPLICATION_INSTALL_REFERRER_UNAVAILABLEThe current Play Store app doesn't provide the installation referrer API, or the Play Store may not be installed. This error code may come up when testing on an AVD that doesn't come with the Play Store pre-installed, such as the Google Pixel 3 and Nexus 6.
ERR_APPLICATION_INSTALL_REFERRER_CONNECTIONA connection could not be established to the Google Play Store.
ERR_APPLICATION_INSTALL_REFERRER_REMOTE_EXCEPTIONA RemoteException was thrown after a connection was established to the Play Store. This may happen if the process hosting the remote object is no longer available, which usually means the process crashed. See
ERR_APPLICATION_INSTALL_REFERRERGeneral default case error code for the getInstallReferrerAsync method. This error code will be thrown if an exception occurred when getting the install referrer, but the exception was none of the more precise errors. The responseCode is provided along with the error.
ERR_APPLICATION_INSTALL_REFERRER_SERVICE_DISCONNECTEDConnection to the install referrer service was lost. This error is thrown when an attempt was made to connect and set up the install referrer service, but the connection was lost. See the Android documentation for more information.
  • Message-iconAsk a question on the forums about Application
  • Github-iconView open bug reports for Application
  • Code-iconView source code for Application
  • Build-iconView package in npm Registry
  • Edit-iconEdit this page

Was this doc helpful?