> ## Documentation Index
> Fetch the complete documentation index at: https://docs.updatetheapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Expo Updates Integration (Preview)

> Using updatetheapp.com with Expo Updates (Under Development)

> **Note:** Direct integration and streamlined support for using `expo-updates` with `updatetheapp.com` is currently under active development and coming soon! The following guide describes the planned approach and potential configuration for early testing or preview purposes.

`updatetheapp.com` aims to provide seamless Over-the-Air (OTA) updates for Expo applications by leveraging the powerful `expo-updates` library. This works by having `updatetheapp.com` implement the required [Expo Updates protocol](https://docs.expo.dev/versions/latest/sdk/updates/#custom-expo-updates-server), similar to how you might set up a [custom update server](https://docs.expo.dev/versions/latest/sdk/updates/#manual-installation-configuration-and-custom-remote-update).

While the dedicated tooling and dashboard integration are being finalized, you can conceptually configure your Expo project to fetch updates from `updatetheapp.com` by manually setting up `expo-updates`.

## Conceptual Configuration (Manual Setup)

This setup requires configuring your Expo project to point to the `updatetheapp.com` update server endpoint.

1. **Install `expo-updates`:**
   If not already installed, add it to your project:
   ```shell theme={null}
   npx expo install expo-updates
   ```

2. **Configure `app.json` / `app.config.js`:**
   You need to specify the `updates.url` and a `runtimeVersion` in your app configuration.

   ```js filename="app.config.js" theme={null}
   export default {
     expo: {
       // ... other config
       updates: {
         // URL pointing to the updatetheapp.com endpoint serving Expo updates
         // (Note: This specific URL is illustrative and subject to change)
         url: "https://expo.updatetheapp.com/YOUR_PROJECT_ID/updates", // Replace YOUR_PROJECT_ID

         // Ensure requests include necessary headers if required by UTA
         // requestHeaders: {
         //   'uta-api-key': 'YOUR_UTA_API_KEY', // Example header
         // },
       },
       // Define a runtime version for compatibility
       // See: https://docs.expo.dev/versions/latest/sdk/updates/#runtime-version
       runtimeVersion: {
         policy: "appVersion" // Or "nativeVersion", or a specific string
       },
       // ... other config like version, ios.buildNumber, android.versionCode
     },
   };
   ```

3. **Backend Implementation (Handled by UTA):**
   `updatetheapp.com`'s backend service at the specified `url` will need to:
   * Serve an update manifest compatible with the `runtimeVersion`.
   * Provide the update bundles and assets as requested by `expo-updates`.
   * Handle code signing and security protocols (details forthcoming).

## What's Coming Soon?

* **Simplified Setup:** CLI commands and dashboard UI to automatically configure your Expo project.
* **Dedicated Endpoints:** Clear, documented URLs for fetching updates.
* **Platform Integration:** Manage Expo updates alongside your React Native (CodePush) updates within the `updatetheapp.com` dashboard.
* **Enhanced Features:** Potential for advanced rollout strategies and analytics specific to Expo.

Stay tuned for official announcements as we finalize the integration!
