Невозможно прочитать свойство initSdk неопределенного — интеграция с Appsflyer React Native

Я пытаюсь внедрить AppsFlyer в собственное приложение для реагирования, но у меня есть эта ошибка «Не удается прочитать свойство« initSdk »неопределенного»

Я импортировал react-native-appsflyer

import React, { Component } from 'react';
import {
 Alert,
 Platform,
 AppRegistry,
 NetInfo,
 Text,
} from 'react-native';
//...

import appsFlyer from 'react-native-appsflyer';

//...

И попытался вызвать метод initSdk

export default class  App extends Component {

    initSdk(){
        console.log('allo appsflyer');

        let options = {
          devKey:  'AF_DEV_KEY',
          appId: "IOS_APP_ID",
          isDebug: true
        };

       appsFlyer.initSdk(options,
           (result) => {
             this.setState( { ...this.state, initSdkResponse: result });
             console.log(initSdkResponse);
           },
           (error) => {
             console.error(error);
           }
           )
     }

И запустил его в моей функции startApp

    startApp(root) {
        this.initSdk();
        console.log('app store update --> root', root);

        switch (root) {
          //...  
        }
    }
}

Кто-нибудь, чтобы помочь мне, пожалуйста?


person Joris    schedule 05.12.2018    source источник
comment
Я также получаю это иногда, это очень раздражает и непоследовательно. Я думаю, что это как-то связано с тем, что модуль реагирования appsflyer не был должным образом интегрирован при сборке приложения.   -  person Sean    schedule 11.12.2018
comment
Да, я переустановил модуль Appsflyer с нуля, и он работает   -  person Joris    schedule 11.12.2018


Ответы (1)


Эта ошибка может возникнуть, если нативные зависимости не были должным образом связаны. Это должно быть решено, если вы запустите react-native link react-native-appsflyer из корня проекта (для нативных зависимостей Android) и добавите соответствующие зависимости Pod для iOS:

Добавьте appsFlyerFramework в Podfile и запустите установку модуля. Пример:

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

(при условии, что ваш подфайл находится в каталоге iOS) Запустите pod install

Если вы не используете Cocoapods, вы можете следовать инструкциям по интеграции вручную: https://github.com/AppsFlyerSDK/react-native-appsflyer#manual-integration-integrating-without-cocoapods

person BenjaminAF    schedule 02.04.2019