Package Exports
- @rootpush/updates-expo-plugin
- @rootpush/updates-expo-plugin/build/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@rootpush/updates-expo-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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
# 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.