Javascript 如何使用React Native为IOS正确安装Facebook广告
尝试通过IOS启动我的应用程序时,我在React Native中收到警告: “模块AdChoiceManager需要设置主队列 因为它覆盖了'init',但没有实现 “requiresMainQueueSetup”。在将来的版本中 React Native将默认初始化后台线程上的所有本机模块,除非明确选择退出。” 在我的播客文件中,我有这些Javascript 如何使用React Native为IOS正确安装Facebook广告,javascript,facebook,react-native,facebook-javascript-sdk,facebook-ads-api,Javascript,Facebook,React Native,Facebook Javascript Sdk,Facebook Ads Api,尝试通过IOS启动我的应用程序时,我在React Native中收到警告: “模块AdChoiceManager需要设置主队列 因为它覆盖了'init',但没有实现 “requiresMainQueueSetup”。在将来的版本中 React Native将默认初始化后台线程上的所有本机模块,除非明确选择退出。” 在我的播客文件中,我有这些 pod 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk' pod
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'
一切都已安装,但我仍然收到警告。它在安卓系统上运行良好,我只是不知道如何在没有IOS警告的情况下让Facebook广告正常工作
我的问题是,如何解决此问题/警告?我几天来一直试图把它从屏幕上删除,但都没有用 这是依赖项的问题。这不是一个主要问题,但将来需要依赖项维护人员进行修复 这与运行依赖项的队列/线程有关。它只影响iOS 目前,您无法删除该警告 您可以只隐藏黄色警告框,但它仍将在控制台中记录警告
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Module AdChoiceManager requires main queue setup since']);
我不能100%确定这是用于阻止它的正确文本,但它将类似于此。通常我只是从警告的开头开始写
解决问题
解决此问题的唯一方法是在依赖关系中自行修复它。您将不得不放弃导致问题的回购协议,进行更改,创建拉取请求,然后等待Facebook合并您的更改。当你在等的时候,你可以用你自己的叉子 在正确的文件中,它将以
结尾。。。Manager.m
您只需添加行即可
+ (BOOL) requiresMainQueueSetup { return YES; }
可能不止一个地方需要依赖于他们如何设置依赖关系来完成。这将停止警告,因为您将告诉依赖项它需要哪个队列
警告,您现在必须维护自己版本的依赖项,直到Facebook实现您的请求。谢谢!虽然我宁愿解决问题也不愿减轻它,但这是一个很好的建议。解决问题的唯一方法是在依赖项中修复它。因此,分叉导致问题的回购协议,进行更改,创建拉取请求,然后等待Facebook合并您的更改。当你在等的时候,你可以用你自己的叉子。您只需在正确的位置添加
+(BOOL)requiresMainQueueSetup{return YES;}
。