1.1.0 • Published 9 months ago

@rootpush/updates-expo-plugin v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

@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-plugin

Configuration

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

  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:

# 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.

1.1.0

9 months ago