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.
- Host: GitHub
- URL: https://github.com/rootpush/updates-expo-plugin
- Owner: rootpush
- Created: 2025-02-08T21:52:21.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-08T22:16:39.000Z (about 1 year ago)
- Last Synced: 2025-02-08T22:21:48.098Z (about 1 year ago)
- Language: TypeScript
- Size: 0 Bytes
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.