VibeUpdate

SDK installation

Connect an existing Expo app to VibeUpdate using its public app ID.

This integration reference is for the person maintaining your mobile app. You do not need to install development tools to manage releases in the dashboard.

Requirements

The SDK supports iOS and Android with Expo SDK 54 through 57, React Native 0.81 through 0.86, and React 19.1 through 19.x. Web is not a supported runtime for update checks.

Create an app and open its Integration tab. Copy the public App ID. The app's iOS bundle identifier or Android package name must match the native app. Never put an Agent Token in the mobile app.

Install and mount once

Run these commands in your Expo app, not in the VibeUpdate dashboard project:

npm install @vibelabsdotto/vibeupdate
npx expo install expo-application expo-localization @react-native-async-storage/async-storage react-native-safe-area-context

Rebuild your native development or production client after adding the native dependencies. From SDK 0.4.0, react-native-safe-area-context keeps the full-screen prompt clear of the status and navigation bars. Most Expo apps already include it.

For an Expo Router app, render the component once alongside your root content:

import { Slot } from 'expo-router';
import { VibeUpdate } from '@vibelabsdotto/vibeupdate';

export default function RootLayout() {
  return (
    <>
      <Slot />
      <VibeUpdate appId="app_xxx" />
    </>
  );
}

Replace app_xxx with the public App ID from your dashboard. Keep your existing root providers and navigation. The initial check runs after rendering and does not show a loader.

Check the native identity

The SDK reads the native application ID, version, build number, and device locale. Build numbers must be positive integers on both platforms. Use a numeric iOS CFBundleVersion, configured through Expo's ios.buildNumber, rather than a dotted version such as 3.1.2.

Expo Go exposes its host application's native metadata, not your future store build's identity. The runtimeMetadata prop can override metadata for integration checks, but a working override does not verify a native store build. Check the real identifier and build in your own development or production client.

Verify the expected result

A connected SDK does not always show a prompt. A new app with no published targets has nothing to display. Compare the installed build with the platform's published targets and review update modes.

Before publishing a target, provide its store link and shared release notes in the app's default locale. Follow Publish or unpublish a release. Do not publish a Required update merely to check whether the integration works.

For local customization, see Component props. The SDK README contains the full integration reference.

On this page