An open API service indexing awesome lists of open source software.

https://github.com/rootpush/updates-expo-plugin

Enables you to deliver OTA updates to your Expo application.
https://github.com/rootpush/updates-expo-plugin

Last synced: 3 months ago
JSON representation

Enables you to deliver OTA updates to your Expo application.

Awesome Lists containing this project

README

          

# @rootpush/expo-updates-plugin

A config plugin for Expo that enables Over-The-Air (OTA) updates in your application using @rootpush/updates.

## Overview

This plugin modifies your native Android and iOS projects to integrate with the @rootpush/updates package, enabling you to deliver OTA updates to your Expo application. It handles the necessary native code modifications to override the default JavaScript bundle loading behavior.

## Prerequisites

- Expo SDK 48 or newer
- @rootpush/updates package installed in your project

## Installation

```bash
# Install the required packages
npm install @rootpush/updates @rootpush/updates-expo-plugin

# If you're using yarn
yarn add @rootpush/updates @rootpush/updates-expo-plugin
```

## Configuration

Add the plugin to your `app.json` or `app.config.js`:

```json
{
"expo": {
"plugins": [
"@rootpush/updates-expo-plugin"
]
}
}
```

## What This Plugin Does

This plugin makes the following modifications to your native projects:

### Android Changes

1. Adds `UpdatesPreferences` import to your `MainApplication.java`
2. Overrides `getJSBundleFile()` to use the bundle path from `UpdatesPreferences`

### iOS Changes

#### For Objective-C Projects:
1. Imports `UpdatesPreferences.h`
2. Modifies the `getJSBundleURLForBundleRoot` implementation to use `UpdatesPreferences`

#### For Swift Projects:
1. Imports `UpdatesPreferences`
2. Modifies the bundle URL retrieval to use `UpdatesPreferences`

## Usage with @rootpush/updates

This plugin is designed to work in conjunction with the @rootpush/updates package. After setting up this plugin, you'll need to configure @rootpush/updates according to its documentation to handle the OTA update lifecycle.

## Building Your Application

After installing the plugin, rebuild your native projects:

```bash
# Clear the native build folders
expo prebuild --clean

# Rebuild the native projects
expo prebuild
```

## Troubleshooting

If you encounter any issues:

1. Ensure all prerequisites are installed
2. Check that the plugin is properly listed in your Expo config
3. Try cleaning and rebuilding your project
4. Verify that @rootpush/updates is properly configured

## Requirements

- Expo SDK: ≥ 48
- Platform: iOS and Android
- @rootpush/updates: Compatible version

## License

This project is licensed under the MIT License.