当尝试通过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'
一切都安装了,但我仍然收到警告。它可以在Android上正常运行,我只是不确定如何在不向iOS发出警告的情况下使Facebook Ads正常运行。
我的问题是,如何解决此问题/警告?我已经尝试了好几天才能将其从屏幕上删除,但无济于事。
答案 0 :(得分:1)
这是依赖关系的问题。这不是主要问题,但是将来需要依赖维护者进行修复。
这与运行依赖项的队列/线程有关。它只会影响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实现您的提取请求为止。