AppDynamics switched from Semantic Versioning to Calendar Versioning starting in February 2020 for some agents and March 2020 for the entire product suite.

    Skip to end of metadata
    Go to start of metadata

    Related pages:

    Your Rating:
    1 Star2 Star3 Star4 Star5 Star
    15 rates

    Follow the steps below to get your EUM App Key and instrument your React Native application.

    Check Requirements

    The React Native Agent has been tested and certified to work with React Native v0.59.x.

    Because React Native is being developed rapidly and hasn't officially released v1, any minor update to React Native could potentially affect the functionality of the React Native Agent. 

    Get Your Application Key

    From the Controller's Getting Started Wizard, create either an iOS or an Android application. You will be given an EUM App Key that you will use to instrument your application. In some cases, multiple mobile applications can share the same key.

    If you have completed the Getting Started Wizard, but don't have your EUM App Key, see Get Your Application Key.

    Eject Your React Native Application

     If you created your React Native application with one of the commands in the following table, you will need to eject the application:

    CommandWhy Ejection Is Needed


    This command enables you to quickly set up and run a Native React application with no configuration but does not provide the full development environment required by the React Native Agent.

    expo init

    Expo projects do not currently support the React Native Agent module. 

    If you created your app with create-react-native-app, use npm to eject the app. If you used expo, run the expo command below to eject the app.

    From your project directory, run the command appropriate for your use case:

     npm run eject
    expo eject

    Install the React Native Agent

    This module injects the native AppDynamics agents into your application and offers a JavaScript bridge to the Instrumentation management interface.

    1. Install and link the React Native Agent:

      yarn add @appdynamics/react-native-agent
      react-native link @appdynamics/react-native-agent
    2. Build the configuration to enable the build-time instrumentation of your application:

      node node_modules/@appdynamics/react-native-agent/bin/cli.js install

      The React Native Agent CLI assumes you've kept the default project structure created with the react-native CLI tools.

    3. If the above commands failed, see manually install the React Native package. Otherwise, proceed to Add Required Libraries (iOS Only) and/or Add Permissions (Android Only).

    Manually Install the React Native Package (Only If Required)

    Most users do not have to do manually install the package, but the command above may fail if your iOS and Android projects are heavily modified.

    Follow these steps if you need to manually install the React Native package:

    1. Add the following line to your android/build.gradle:

      apply from: '../node_modules/@appdynamics/react-native-agent/android/adeum.gradle'
    2. Make sure the file settings.gradle contains a reference to the Appdynamics agent module as shown below. This is should have been added automatically by the command react-native link.

      include ':@appdynamics_react-native-agent'
      project(':@appdynamics_react-native-agent').projectDir = new File(rootProject.projectDir, '../node_modules/@appdynamics/react-native-agent/android')
    3. Also, android/app/build.gradle should contain a reference to the Appdynamics agent module.

      dependencies {
          implementation project(':@appdynamics_react-native-agent')
          // ...

    For iOS, confirm that the following files are present:

    FileFile LocationExample

    Libraries or node_modules directory


    From Xcode, the file should be listed on the Build Phases > Link Binary With Libraries tab
    or in the following directory:<your_react_native_app>/ios/build/<your_react_native_app>/Build/Products/Debug-iphonesimulator/


    In addition, link the Appdynamics agent module like any other native module. Make sure to add libsqlite3 to your project as explained in Add Required Libraries (iOS Only).

    Add Required Libraries (iOS Only)

    1. From the React Native application root, open the iOS project file in the ios directory with XCode.
    2. From XCode, select your project in the Project Navigator.

    3. Navigate to the Build Phases tab. 

    4. Under Link Binary With Libraries, click Add.
    5. Select libsqlite3.tbd.
    6. Click Add.

    This requirement will be removed in a future release.

    Add Permissions (Android Only)

    Add the following permissions to your app's AndroidManifest.xml (which should be located under android/app/src/main/).

      <manifest xmlns:android=""
        // Add the following:
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        // ...

    The React Native Agent tries to minimize its network footprint. Without this permission, the agent always assumes poor network conditions and some metrics might not get reported.

    Instrument Your Application Code

    In the index.js file of your React application, do the following:

    1. At the top of the file near the other import statements, add the following line of code to import the Native React Agent:

       import { Instrumentation } from '@appdynamics/react-native-agent';
    2. In the same file and in the global scope, initialize the instrumentation with the following, making sure to replace <EUM_APP_KEY> with a string containing your EUM App Key.

          appKey: <EUM_APP_KEY>,
    3. Verify that your index.js file looks similar to the following:

      import {AppRegistry} from 'react-native';
      import App from './App';
      // === Add the following to import the React Native Agent
      import { Instrumentation } from '@appdynamics/react-native-agent';
      // Initialize the instrumentation
          appKey: 'YOUR-APP-KEY',
      // Create a component
      const App = () => (
        // Other components
      // Register the App component
      AppRegistry.registerComponent('my-application', () => App);


    Build and Run Your React Native Applications (Optional) 

    1. Run the command to build and run the app for your platform.

       react-native run-android
      react-native run-ios 
    2. From the Controller UI, verify that the instrumentation was successful.

    Point to an On-Premises EUM Server (Optional)

     To use an on-premises EUM Server, you pass the URL to the on-premises EUM Server when you initialize the instrumentation with the EUM App Key from Get Your Application Key

         appKey: <EUM_APP_KEY>,
         collectorURL: <COLLECTOR_URL>