Instalación

Agregar react-native-appsflyer a tu proyecto

Instalación con enlaces automáticos

Ejecuta lo siguiente:

$ npm install react-native-appsflyer --save
$ cd ios && pod install

Instalación sin enlaces automáticos

Ejecuta lo siguiente:

$ npm install react-native-appsflyer --save
$ react-native link react-native-appsflyer

Manual installation iOS

  1. Agrega appsFlyerFramework to podfile y ejecuta pod install.

Ejemplo:

pod 'react-native-appsflyer',
:path => '../node_modules/react-native-appsflyer'

Esto supone que tu Podfile se encuentra en el directorio ios .

Archivo pod de muestra:

target 'AFTest' do

  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # Needed for debugging
    'RCTAnimation', # Needed for FlatList and animations running on native UI thread
    # Add any other subspecs you want to use in your project
  ]

  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  pod 'react-native-appsflyer',
  :path => '../node_modules/react-native-appsflyer'


  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

end
  1. Ejecuta pod install (en el directorio ios ).

Manual Integration (Integrating without Cocoapods):

  1. Download the Static Lib of the AppsFlyer iOS SDK from AppsFlyer devHub
  2. Descomprime y copia el contenido del archivo zip en el directorio de tu proyecto.
  3. Ejecuta react-native link react-native-appsflyer desde la raíz del proyecto o copia RNAppsFlyer.h y RNAppsFlyer.m desde node_modulesreact-native-appsflyer al directorio de tu proyecto.

Project directory

Manual installation Android

Ejecuta react-native link react-native-appsflyer O agrega manualmente:

android/app/build.gradle

Agrega el proyecto a tus dependencias

dependencies {
...
compile project(':react-native-appsflyer')
}
android/settings.gradle

Agrega el proyecto

include ':react-native-appsflyer'
project(':react-native-appsflyer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-appsflyer/android')

Si necesitas anular la versión sdk, agrega una configuración personalizada a tu gradle raíz, por ejemplo:

ext {
    minSdkVersion = 16
    targetSdkVersion = 25
    compileSdkVersion = 25
    buildToolsVersion = '25.0.3'
}
MainApplication.java

Agrega:

  1. import com.appsflyer.reactnative.RNAppsFlyerPackage;

  2. En el getPackages() registra el módulo:
    new RNAppsFlyerPackage()

Entonces getPackages() debería verse así:

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            //...
            new RNAppsFlyerPackage()
            //...
      );
    }

Agregar el modo estricto para App-kids

Starting from version 6.1.10 iOS SDK comes in two variants: Strict mode and Regular mode. Please read more here

Cambiar al modo Estricto
Después de instalar el plugin de AppsFlyer, agrega $RNAppsFlyerStrictMode=true en el Podfile del proyecto:

//MyRNApp/ios/Podfile
...
use_frameworks!
  $RNAppsFlyerStrictMode=true

  # Pods for MyRNApp
...

En el ios de tu proyecto root , ejecuta pod install

Cambiar al modo Normal
Eliminar $RNAppsFlyerStrictMode=true del Podfile del proyecto o configúralo como false:

//MyRNApp/ios/Podfile
...
use_frameworks!
  $RNAppsFlyerStrictMode=false //OR remove this line

  # Pods for MyRNApp
...

En el ios de tu proyecto root , ejecuta pod install

El permiso AD_ID para aplicaciones Android

In v6.8.0 of the AppsFlyer SDK, we added the normal permission com.google.android.gms.permission.AD_ID to the SDK's AndroidManifest,
to allow the SDK to collect the Android Advertising ID on apps targeting API 33.
If your app is targeting children, you need to revoke this permission to comply with Google's Data policy.
You can read more about it here.