- Installation using CLI
- Manual installation
- Add strict-mode for App-kids
- The AD_ID permission for android apps
Run the following:
$ npm install react-native-appsflyer --save
$ cd ios && pod install
Run the following:
$ npm install react-native-appsflyer --save
$ react-native link react-native-appsflyer
- Add the
appsFlyerFramework
topodfile
and runpod install
.
Example:
pod 'react-native-appsflyer',
:path => '../node_modules/react-native-appsflyer'
This assumes your Podfile
is located in ios
directory.
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
- Run
pod install
(insideios
directory).
- Download the Static Lib of the AppsFlyer iOS SDK from AppsFlyer devHub
- Unzip and copy the contents of the Zip file into your project directory
- Run
react-native link react-native-appsflyer
from of the project root or copy RNAppsFlyer.h and RNAppsFlyer.m fromnode_modules
➜react-native-appsflyer
to your project directory
Run react-native link react-native-appsflyer
OR add manually:
Add the project to your dependencies
dependencies {
...
compile project(':react-native-appsflyer')
}
Add the project
include ':react-native-appsflyer'
project(':react-native-appsflyer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-appsflyer/android')
If you need to override sdk version, add custom configuration to your root gradle, for example:
ext {
minSdkVersion = 16
targetSdkVersion = 25
compileSdkVersion = 25
buildToolsVersion = '25.0.3'
}
Add:
-
import com.appsflyer.reactnative.RNAppsFlyerPackage;
-
In the
getPackages()
method register the module:new RNAppsFlyerPackage()
So getPackages()
should look like:
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
//...
new RNAppsFlyerPackage()
//...
);
}
Starting from version 6.1.10 iOS SDK comes in two variants: Strict mode and Regular mode. Please read more here
Change to Strict mode
After you installed the AppsFlyer plugin, add $RNAppsFlyerStrictMode=true
in the project's Podfile:
//MyRNApp/ios/Podfile
...
use_frameworks!
$RNAppsFlyerStrictMode=true
# Pods for MyRNApp
...
In the ios
folder of your root
project Run pod install
Change to Regular mode
Remove $RNAppsFlyerStrictMode=true
from the project's Podfile or set it to false
:
//MyRNApp/ios/Podfile
...
use_frameworks!
$RNAppsFlyerStrictMode=false //OR remove this line
# Pods for MyRNApp
...
In the ios
folder of your root
project Run pod install
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 here