【问题标题】:Firebase runtime crash - FIRInstanceIDConfigFirebase 运行时崩溃 - FIRInstanceIDConfig
【发布时间】:2017-07-22 11:28:17
【问题描述】:

我已将 Firebase SDK 手动添加到我的项目中。 (由于配置问题,无法使用 cocoapods。)

我使用以下框架

FirebaseCore.framework        
FirebaseInstanceID.framework
Firebasemessageing.framework

AppDelegate我已经导入了以下内容:

#import "Firebase.h
#import <FirebaseInstanceID/FirebaseInstanceID.h>
#import <FirebaseMessaging/FirebaseMessaging.h>

如果我提到

[FIRMessaging messaging].remoteMessageDelegate = self;

运行时崩溃并出现以下错误:

控制台中的错误消息:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSCFConstantString fira_UTF32Length]:

但是,如果我将其注释掉并参考这行代码

 [[FIRInstanceID instanceID] token]

我得到这个错误:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[FIRInstanceIDConfig setAllowGCMRegistrationWithoutAPNSToken:]:无法识别的选择器已发送到实例

我已经添加了我能想到的所有必需的框架,但仍然遇到这个问题。

编辑

与项目相关的框架的完整列表:

  • 面料,
  • Firebase 分析
  • FirebaseCore
  • FirebaseInstanceID
  • Firebase 消息传递
  • GoogleToolboxForMac
  • GTMSessionFetcher
  • Protobuf
  • FirebaseAppIndexing
  • WebKit
  • 本地身份验证
  • 安全性
  • ImageIO
  • 资产库
  • 核心数据
  • UIKit
  • libc++.tbd
  • libsqlite3.tbd
  • libGoogleAnalyticsServices.a
  • libAdidAccess.a

堆栈跟踪:

这是它崩溃的线程是:

    0   ???                                 0x00000001057f0a44 0x0 + 4387179076,
1   MyApp                            0x000000010050f220 main + 0,
2   libsystem_c.dylib                   0x0000000181363400 abort + 140,
3   libc++abi.dylib                     0x0000000180e2d2d4 __cxa_bad_cast + 0,
4   libc++abi.dylib                     0x0000000180e4acc0 <redacted> + 0,
5   libobjc.A.dylib                     0x0000000180e58844 <redacted> + 124,
6   libc++abi.dylib                     0x0000000180e4766c <redacted> + 16,
7   libc++abi.dylib                     0x0000000180e476dc _ZSt9terminatev + 64,
8   libobjc.A.dylib                     0x0000000180e587a0 <redacted> + 0,
9   libdispatch.dylib                   0x00000001015bd22c _dispatch_client_callout + 36,
10  libdispatch.dylib                   0x00000001015be048 dispatch_once_f + 116,
11  MyApp                            0x00000001006484d4 +[FIRInstanceID instanceID] + 56,
12  MyApp                            0x00000001000fa880 -[BBAppDelegate connectToFcm] + 52,
13  MyApp                            0x00000001000f3ac8 -[BBAppDelegate applicationDidBecomeActive:] + 356,
14  UIKit                               0x000000018835b4c0 <redacted> + 1152,
15  UIKit                               0x000000018855ec48 <redacted> + 2744,
16  UIKit                               0x0000000188573104 <redacted> + 48,
17  UIKit                               0x000000018855b7ec <redacted> + 168,
18  FrontBoardServices                  0x0000000183ff792c <redacted> + 36,
19  FrontBoardServices                  0x0000000183ff7798 <redacted> + 176,
20  FrontBoardServices                  0x0000000183ff7b40 <redacted> + 56,
21  CoreFoundation                      0x00000001823ceb5c <redacted> + 24,
22  CoreFoundation                      0x00000001823ce4a4 <redacted> + 524,
23  CoreFoundation                      0x00000001823cc0a4 <redacted> + 804,
24  CoreFoundation                      0x00000001822fa2b8 CFRunLoopRunSpecific + 444,
25  UIKit                               0x00000001883417b0 <redacted> + 608,
26  UIKit                               0x000000018833c534 UIApplicationMain + 208,
27  MyApp                            0x000000010050f2c4 main + 164,
28  libdyld.dylib                       0x00000001812dd5b8 <redacted> + 4
)

【问题讨论】:

  • 你到底链接了哪些框架?你有更完整的回溯吗?
  • @PaulBeusterien 我已经更新了这个问题。谢谢。
  • 您是否打算同时使用 FirebaseAnalytics 和 GoogleAnalytics?
  • 我认为可以不用 FirbaseAnalytics。

标签: ios objective-c firebase firebase-cloud-messaging


【解决方案1】:

project中进入Build Setting -> 双击Other Linker Flags ->点击加号(+ strong>) 底部的按钮添加 -ObjC 并按 Enter。希望它能解决你的问题。

【讨论】:

  • 感谢您的提示。我已经设置了这个标志。不幸的是没有帮助
  • 这对我有帮助,谢谢! (我也有缺少类别和方法fira_UTF32Length的问题)
  • 这也解决了我的问题。我不能使用 cocoapods,因为我正在支持一个非常老的项目,在该项目中我无法让模块工作。将 -ObjC 标志添加到其他链接标志解决了我的崩溃问题(只有在代码中引用了 FIRAnalytics 时才会发生这种情况,即使它没有被执行)。
  • 另外不要忘记将GoogleToolboxForMac.framework 添加到项目中。否则,您将收到有关实例中缺少 gtm_dataByGzippingData 选择器的错误消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
相关资源
最近更新 更多