尝试通过 IOS 启动我的应用程序时,我在 React Native 中收到警告:

“模块 AdChoiceManager 需要主队列设置 因为它覆盖了“init”但没有实现 '需要MainQueueSetup'。在未来的版本中 React Native 将默认在后台线程上初始化所有 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 上运行良好,我只是不确定如何让 Facebook 广告在 IOS 上正常运行而不发出警告。

我的问题是,如何解决此问题/警告?几天来我一直试图将其从屏幕上删除,但没有成功。

请您参考如下方法:

这是依赖关系的问题。这不是一个主要问题,但将来需要依赖项维护者修复。

这与运行依赖项的队列/线程有关。它仅影响 iOS。

目前您无法删除该警告。

您可以 Conceal 黄色警告框,但它仍会在控制台中记录警告。

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% 确定这是用于阻止它的正确文本,但它会与此类似。通常我只是警告开头的文本

解决问题

解决该问题的唯一方法是在其自身的依赖项中修复它。您必须 fork 导致问题的存储库、进行更改、创建拉取请求并等待 Facebook 合并您的更改。等待时,您可以使用自己的 fork 。

在正确的文件中,它将以 ... Manager.m 结尾,您只需添加以下行

+ (BOOL) requiresMainQueueSetup { return YES; } 

可能有不止一个地方需要完成此操作,具体取决于他们如何设置依赖关系。这将停止警告,因为您将告诉依赖项它需要哪个队列。

警告,您现在必须维护自己的依赖项版本,直到 Facebook 实现您的拉取请求为止。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!