xcode 使用未声明的标识符“FIRApp”

0yg35tkg  于 2022-11-18  发布在  其他
关注(0)|答案(5)|浏览(278)

导入Firebase. h文件后,我在“-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions”上写入了“[FIRApp configure]”。在模拟器上运行时,显示“使用未声明的标识符”FIRApp“”。但如果选择“通用iOS设备”选项进行构建,则不会出现错误。构建和存档工作正常。但在本地模拟器上出现问题。我必须首先在模拟器上运行应用程序,以便与Firebase服务器进行崩溃通信。请给予我解决方案。输入

j2qf4p5b

j2qf4p5b1#

AppDelegate.m文件中,您应该在#ifdef FB_SONARKIT_ENABLED行之前导入类似#import <Firebase.h>的firebase。
据我所知,您可能会在dev build上获得成功,因为FlipperKit库用于调试,并且满足了此#ifdef FB_SONARKIT_ENABLED if条件。当您尝试存档时,它不会被导入,变量也不会被声明,因为#import<Firebase.h>仍保留在该if条件中。

mitkmikd

mitkmikd2#

FIRApp被移到(或最初是)FirebaseCore框架。
#import <FirebaseCore/FirebaseCore.h>.

332nm8kg

332nm8kg3#

正如这条github评论中所述:
什么对我有用
只需添加
#import <Firebase.h>添加到AppDelegate.h
资料来源:

5gfr0r5j

5gfr0r5j4#

我有同样的问题,但我没有FB_SONARKIT_ENABLED

#import <React/RCTAppSetupUtils.h>

#if RCT_NEW_ARCH_ENABLED
#import <Firebase.h>
#import <FirebaseCore/FirebaseCore.h>
#import <React/CoreModulesPlugins.h>
#import <React/RCTCxxBridgeDelegate.h>
#import <React/RCTFabricSurfaceHostingProxyRootView.h>
#import <React/RCTSurfacePresenter.h>
#import <React/RCTSurfacePresenterBridgeAdapter.h>
#import <ReactCommon/RCTTurboModuleManager.h>

#import <react/config/ReactNativeConfig.h>

static NSString *const kRNConcurrentRoot = @"concurrentRoot";

@interface AppDelegate () <RCTCxxBridgeDelegate, RCTTurboModuleManagerDelegate> {
  RCTTurboModuleManager *_turboModuleManager;
  RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;
  std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig;
  facebook::react::ContextContainer::Shared _contextContainer;
}
@end
#endif

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  [FIRApp configure];
  RCTAppSetupPrepareApp(application);

enter image description here

yqhsw0fo

yqhsw0fo5#

在react原生firebase文档中(请参见此处:https://rnfirebase.io/)它说把#import <Firebase.h>放在文档的顶部。你在#if RCT_NEW_ARCH_ENABLED下面导入了#import <Firebase.h>,所以如果RCT_NEW_ARCH_ENABLED条件为真,你基本上导入了firebase模块。
您应该执行以下操作:

#import <Firebase.h>
#import <React/RCTAppSetupUtils.h>

#if RCT_NEW_ARCH_ENABLED
#import <FirebaseCore/FirebaseCore.h>
#import <React/CoreModulesPlugins.h>
#import <React/RCTCxxBridgeDelegate.h>
#import <React/RCTFabricSurfaceHostingProxyRootView.h>
#import <React/RCTSurfacePresenter.h>
#import <React/RCTSurfacePresenterBridgeAdapter.h>
#import <ReactCommon/RCTTurboModuleManager.h>

#import <react/config/ReactNativeConfig.h>

相关问题