Instalação

Adicionando react-native-appsflyer ao seu projeto

Instalação com autolinking

Execute o seguinte:

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

Instalação sem autolinking

Execute o seguinte:

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

Manual installation iOS

  1. Adicione o appsFlyerFramework to podfile e execute pod install.

Exemplo:

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

Isso pressupõe que o seu Podfile está localizado no diretório do ios .

Exemplo de arquivo de pod:

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. Execute pod install (dentro do diretório do ios ).

Manual Integration (Integrating without Cocoapods):

  1. Download the Static Lib of the AppsFlyer iOS SDK from AppsFlyer devHub
  2. Descompacte e copie o conteúdo do arquivo Zip para o diretório do seu projeto
  3. Execute react-native link react-native-appsflyer da raiz do projeto ou copie RNAppsFlyer.h e RNAppsFlyer.m do node_modulesreact-native-appsflyer para o diretório do seu projeto

Project directory

Manual installation Android

Execute react-native link react-native-appsflyer OU adicione manualmente:

android/app/build.gradle

Adicione o projeto às suas dependências

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

Adicione o projeto

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

Se você precisar substituir a versão do SDK, adicione uma configuração personalizada ao seu gradle raiz, por exemplo:

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

Adicione:

  1. import com.appsflyer.reactnative.RNAppsFlyerPackage;

  2. No getPackages() registre o módulo:
    new RNAppsFlyerPackage()

Então getPackages() deverá ser semelhante ao seguinte:

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

Adicionar modo estrito para App-kids

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

Altere para o modo estrito
Depois de instalar o plug-in da AppsFlyer, adicione $RNAppsFlyerStrictMode=true ao Podfile do projeto:

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

  # Pods for MyRNApp
...

No ios do seu projeto root execute pod install

Altere para o modo normal
Remover $RNAppsFlyerStrictMode=true do Podfile do projeto ou defina-o como false:

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

  # Pods for MyRNApp
...

No ios do seu projeto root execute pod install

A permissão AD_ID para aplicativos 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.