当我试图通过IOS:启动我的应用程序时,在React Native中收到警告
"模块AdChoiceManager需要主队列设置因为它覆盖了"init",但没有实现"requiresMainQueueSetup"。在将来的版本中React Native将默认初始化后台线程上的所有本机模块,除非明确选择退出。">
在我的podfile中,我有这些
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'
所有东西都安装了,但我仍然收到警告。它在安卓系统上运行良好,我只是不知道如何让Facebook广告在IOS上正常运行,而不会发出警告。
我的问题是,如何解决此问题/警告?我几天来一直试图把这个从屏幕上删除,但都无济于事。
这是依赖关系的问题。这不是一个主要问题,但将来需要依赖关系维护人员进行修复。
它与运行依赖项的队列/线程有关。它只影响iOS。
您目前无法删除该警告。
你可以隐藏黄色警告框,但它仍然会在你的控制台中记录警告。
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Module AdChoiceManager requires main queue setup since']);
https://facebook.github.io/react-native/docs/debugging#in-应用程序错误和警告
我不能100%确定这是用来阻止它的正确文本,但它会是类似的。通常我只是从警告开始的文本
解决问题
解决这个问题的唯一方法是在依赖关系中修复它。你必须分叉导致问题的回购,进行更改,创建一个拉取请求,然后等待Facebook合并你的更改。在你等待的时候,你可以用你自己的叉子。
在正确的文件中,它将以... Manager.m
结束。您只需要添加行
+ (BOOL) requiresMainQueueSetup { return YES; }
可能不止一个地方需要这样做,这取决于他们如何设置依赖关系。这将停止警告,因为您将告诉依赖项它需要哪个队列。
警告,您现在必须维护自己版本的依赖关系,直到Facebook实现您的拉取请求。