Как правильно установить рекламу Facebook для IOS с помощью React Native - PullRequest
0 голосов
/ 09 января 2019

Я получаю предупреждение в React Native при попытке запустить мое приложение через IOS:

"Модуль AdChoiceManager требует настройки основной очереди так как он переопределяет 'init', но не реализует 'RequiresMainQueueSetup. В будущем выпуске По умолчанию React Native инициализирует все собственные модули в фоновом потоке, если явно не отключен. "

В моем подфиле у меня есть эти

pod 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk'
pod 'FBAudienceNetwork', '~> 5.1.0'

Я получаю ошибку:

[!] /bin/bash -c 
set -e
npm install --production

/bin/bash: line 2: npm: command not found

Итак, я попробовал это:

  pod 'FBAudienceNetwork', '~> 5.1.0' 
  pod 'FacebookSDK'
  pod 'FBSDKShareKit'
  pod 'FBSDKLoginKit'

Все устанавливается, но я все еще получаю предупреждение. Он отлично работает на Android, я просто не уверен, как правильно настроить рекламу на Facebook, без предупреждения на IOS.

У меня вопрос, как мне решить эту проблему / предупреждение? Я несколько дней пытался убрать это с экрана, но безрезультатно.

1 Ответ

0 голосов
/ 09 января 2019

Это проблема с зависимостью. Это не главная проблема, но она потребует исправления сопровождающим зависимости в будущем.

Это связано с очередью / потоком, в котором работает зависимость. Это влияет только на iOS.

В данный момент вы ничего не можете сделать, чтобы удалить предупреждение.

Вы можете просто скрыть желтое окно с предупреждением, но оно все равно сохранит предупреждение в вашей консоли.

import { YellowBox } from 'react-native';

YellowBox.ignoreWarnings(['Module AdChoiceManager requires main queue setup since']); 

https://facebook.github.io/react-native/docs/debugging#in-app-errors-and-warnings

Я не уверен на 100%, что это правильный текст для блокировки, но он будет похож на этот. Обычно я просто текст с начала предупреждения

Чтобы исправить проблему

Единственный способ решить проблему - это исправить ее в зависимости от себя. Вам придется раскошелиться на репо, вызывающее проблему, внести изменения, создать запрос на извлечение и подождать, пока Facebook объединит ваши изменения. Пока вы ждете, вы можете использовать свою собственную вилку.

Внутри правильного файла он заканчивается ... Manager.m Вам просто нужно добавить строку

+ (BOOL) requiresMainQueueSetup { return YES; }

Может быть, нужно сделать больше, чем в одном месте, в зависимости от того, как они установили зависимость. Это остановит предупреждение, так как вы сообщите зависимости, какая очередь ему требуется.

Внимание! Теперь вам нужно будет поддерживать собственную версию зависимости до тех пор, пока Facebook не выполнит ваш запрос на извлечение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...