@rootpush/updates-expo-plugin v1.1.0
@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
# Install the required packages
npm install @rootpush/updates @rootpush/expo-updates-plugin
# If you're using yarn
yarn add @rootpush/updates @rootpush/expo-updates-pluginConfiguration
Add the plugin to your app.json or app.config.js:
{
"expo": {
"plugins": [
"@rootpush/expo-updates-plugin"
]
}
}What This Plugin Does
This plugin makes the following modifications to your native projects:
Android Changes
- Adds
UpdatesPreferencesimport to yourMainApplication.java - Overrides
getJSBundleFile()to use the bundle path fromUpdatesPreferences
iOS Changes
For Objective-C Projects:
- Imports
UpdatesPreferences.h - Modifies the
getJSBundleURLForBundleRootimplementation to useUpdatesPreferences
For Swift Projects:
- Imports
UpdatesPreferences - 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:
# Clear the native build folders
expo prebuild --clean
# Rebuild the native projects
expo prebuildTroubleshooting
If you encounter any issues:
- Ensure all prerequisites are installed
- Check that the plugin is properly listed in your Expo config
- Try cleaning and rebuilding your project
- 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.
9 months ago