react-native-appsflyer를 프로젝트에 추가하기

자동연결로 설치

다음 코드를 실행하십시오:

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

자동연결이 없이 설치

다음 코드를 실행하십시오:

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

Manual installation iOS

  1. 다음을 appsFlyerFramework to podfile 및 실행 pod install.

예:

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

이때 Podfileios 디렉토리에 있다고 가정합니다.

샘플 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. 다음 pod install 을 실행합니다( ios 디렉토리 내부).

Manual Integration (Integrating without Cocoapods):

  1. Download the Static Lib of the AppsFlyer iOS SDK from AppsFlyer devHub
  2. Zip 파일의 압축을 풀어 프로젝트 디렉터리에 복사합니다.
  3. 다음 react-native link react-native-appsflyer 프로젝트 루트에서 복사하거나 RNAppsFlyer.h 및 RNAppsFlyer.m ( node_modulesreact-native-appsflyer 에 있음)을 프로젝트 디렉터리로 복사합니다.

Project directory

Manual installation Android

다음 react-native link react-native-appsflyer 또는 수동으로 추가합니다.

android/app/build.gradle

종속성에 프로젝트 추가

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

프로젝트 추가

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

sdk 버전을 재정의해야 하는 경우 다음과 같이 루트 gradle에 커스텀 설정을 추가합니다.

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

추가하기:

  1. import com.appsflyer.reactnative.RNAppsFlyerPackage;

  2. 다음 getPackages() 메서드에서 다음 모듈을 등록합니다.
    new RNAppsFlyerPackage()

그러므로 getPackages() 는 다음과 같이 출력됩니다.

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

App-kids에 엄격 모드 추가

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

엄격 모드로 변경
앱스플라이어 플러그인을 설치한 후 프로젝트 Pod 파일에 $RNAppsFlyerStrictMode=true 를 추가합니다.

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

  # Pods for MyRNApp
...

다음 ios 귀하의 root 프로젝트에서 다음을 실행합니다: pod install

일반 모드로 변경
삭제 $RNAppsFlyerStrictMode=true (프로젝트의 Pod 파일에 있음) 및 다음으로 설정: false:

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

  # Pods for MyRNApp
...

다음 ios 귀하의 root 프로젝트에서 다음을 실행합니다: pod install

안드로이드 앱에 대한 AD_ID 권한

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.