React Native Legal

Installation

To get started, install the package using your preferred package manager:

npm
yarn
pnpm
bun
npm install react-native-legal
Android example iOS example AndroidTV example tvOS example
Android iOS AndroidTV tvOS

Setup

The setup process varies depending on whether you are using Expo or a bare React Native project. Follow the steps below based on your project type.

Expo Projects

If you are using Expo, you need to add the config plugin to your app.json or app.config.js file:

{
  "expo": {
++  "plugins": ["react-native-legal"]
  }
}

After adding the plugin, rebuild your app using either:

npm
yarn
pnpm
bun
npx expo prebuild

or

npm
yarn
pnpm
bun
npx eas build

This will ensure the required native dependencies are included.

WARNING

This library cannot be used in Expo Go because it requires custom native code.

Bare React Native Projects

For bare React Native projects, you need to run the CLI plugin to generate and include license data. Run the following command from your project root:

npm
yarn
pnpm
bun
npx react-native legal-generate

This will extract and prepare license metadata for use in your app.

Usage

Once the setup is complete, you can easily add a button to your app to display the list of open-source licenses:

import * as React from 'react';
import { Button, View } from 'react-native';
import { ReactNativeLegal } from 'react-native-legal';

function launchNotice() {
  ReactNativeLegal.launchLicenseListScreen('OSS Notice');
}

function MyComponent() {
  return (
    <View>
      <Button onPress={launchNotice} title="Open source licenses" />
    </View>
  );
}

This will open a native screen listing all detected licenses. The title of the screen can be customized by passing a different string argument to launchLicenseListScreen().

License Display in Settings iOS

On iOS, all detected licenses will also appear in the Settings app under the app's information section. This is done to comply with Apple's guidelines, which require apps to provide open-source license acknowledgments in a visible location.

Node.js / Non-RN Projects Support

If you want to use the license management functionality in a Node.js project or any non-React Native application, you can either:

  • use the license-kit CLI tool, which is a standalone tool that can be used in any Node.js project to generate license metadata - see this section for more details
  • programmatically use the @callstack/react-native-legal-shared package, which exposes the core functionalities of this tool - see this section for more details

Additional details

For more notes on the mechanics of the tool, please see core additional details section.

Known Limitations

For a list of known limitations, please see the Known Limitations section in the shared package's documentation.