如何使用React Native为IOS正确安装Facebook广告



当我试图通过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实现您的拉取请求。

相关内容

  • 没有找到相关文章

最新更新