Reference version

This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

Expo Manifests

A library that provides types for Expo Manifests.

Android
iOS
tvOS
Included in Expo Go
Recommended version:
~56.0.4

expo-manifests provides TypeScript types for Expo manifests. A manifest is a JSON object that describes an update. An update is a version of your app's JavaScript bundle and assets.

The library has types for two kinds of manifests:

  • ExpoUpdatesManifest describes an update that your app loads from an update server. This kind of manifest follows the Expo Updates protocol. It includes the update ID, the runtime version, the assets, and your app config in extra.expoClient.
  • EmbeddedManifest describes the update that the build embeds in your app binary.

expo-updates and expo-constants use these types. For example, Updates.manifest contains the manifest of the update that is running. Use these types when your code reads the fields of a manifest. To read your app config, use Constants.expoConfig instead.

Installation

Terminal
- npx expo install expo-manifests
- yarn expo install expo-manifests
- pnpm expo install expo-manifests
- bun expo install expo-manifests

If you are installing this in an existing React Native app, make sure to install expo in your project.

API

import * as Manifests from 'expo-manifests';

Types

BareManifest

Android
iOS
tvOS

Type: EmbeddedManifest

ClientScopingConfig

Android
iOS
tvOS
PropertyTypeDescription
scopeKey(optional)string

An opaque unique string for scoping client-side data to this project. This value will not change when a project is transferred between accounts or renamed.

EASConfig

Android
iOS
tvOS
PropertyTypeDescription
projectId(optional)string

The ID for this project if it's using Expo Services. UUID. This value will not change when a project is transferred between accounts or renamed.

EmbeddedManifest

Android
iOS
tvOS

An embedded manifest.

Generated during build in createManifest.js build step script.

PropertyTypeDescription
assetsany[]
-
commitTimenumber
-
idstring
-

ExpoClientConfig

Android
iOS
tvOS

Type: ExpoConfig extended by:

PropertyTypeDescription
hostUri(optional)string

Only present during development using @expo/cli.

ExpoGoConfig

Android
iOS
tvOS
PropertyTypeDescription
debuggerHost(optional)string
-
developer(optional)Record<string, any> & { tool: string }
-
mainModuleName(optional)string
-
packagerOpts(optional)ExpoGoPackagerOpts
-

ExpoGoPackagerOpts

Android
iOS
tvOS

Type: Record<string, any> extended by:

PropertyTypeDescription
dev(optional)boolean
-
hostType(optional)string
-
lanType(optional)string
-
minify(optional)boolean
-
strict(optional)boolean
-
urlRandomness(optional)string
-
urlType(optional)string
-

ExpoUpdatesManifest

Android
iOS
tvOS

A expo-updates manifest.

PropertyTypeDescription
assetsManifestAsset[]
-
createdAtstring
-
extra(optional)ManifestExtra
-
idstring
-
launchAssetManifestAsset
-
metadataobject
-
runtimeVersionstring
-

ManifestAsset

Android
iOS
tvOS
PropertyTypeDescription
urlstring
-

ManifestExtra

Android
iOS
tvOS

Type: ClientScopingConfig extended by:

PropertyTypeDescription
eas(optional)EASConfig
-
expoClient(optional)ExpoClientConfig
-
expoGo(optional)ExpoGoConfig
-

NewManifest

Android
iOS
tvOS

Type: ExpoUpdatesManifest