【发布时间】:2019-10-08 09:25:19
【问题描述】:
我正在将 React Native 从 RN0.59.10 升级到 RN0.60.0(使用 Podfile)
从我的包管理器中,安装了 5.5.6 版
"react-native-firebase": "^5.5.6",
与
这是我的 Podfile 中的内容
pod 'RNFirebase', :path => '../node_modules/react-native-firebase/ios'
=====================
我成功地构建了项目,但是在运行时(应用启动时)遇到了以下问题
+[FIRAnalytics setAnalyticsCollectionEnabled:]: unrecognized selector sent to class 0x10377e400
以下在模拟器和物理设备上进行了尝试
尝试遵循here的一些解决方案
-
在我的项目的构建阶段下删除并重新附加 firebase 框架
- FIRAnalyticsConnector.framework
应用程序在 RNFirebase.xcodeproj > analytics > RNFirebaseAnalytics.m > RCT_EXPORT_METHOD 中的以下方法崩溃
RCT_EXPORT_METHOD(setAnalyticsCollectionEnabled:(BOOL) enabled) {
[FIRAnalytics setAnalyticsCollectionEnabled:enabled];
}
这是我从 xCode 获得的完整崩溃日志
2019-10-08 17:05:37.413335+0800 testApp[350:50876] +[FIRAnalytics setAnalyticsCollectionEnabled:]: unrecognized selector sent to class 0x10377e400
2019-10-08 17:05:37.430 [fatal][tid:com.facebook.react.RNFirebaseAnalyticsQueue] Exception '+[FIRAnalytics setAnalyticsCollectionEnabled:]: unrecognized selector sent to class 0x10377e400' was thrown while invoking setAnalyticsCollectionEnabled on target RNFirebaseAnalytics with params (
1
)
callstack: (
0 CoreFoundation 0x0000000225e18edc <redacted> + 252
1 libobjc.A.dylib 0x0000000224fe9a40 objc_exception_throw + 56
2 CoreFoundation 0x0000000225d36ccc <redacted> + 0
3 CoreFoundation 0x0000000225e1e7dc <redacted> + 1412
4 CoreFoundation 0x0000000225e2048c _CF_forwarding_prep_0 + 92
5 testApp 0x000000010313b418 -[RNFirebaseAnalytics setAnalyticsCollectionEnabled:] + 64
6 CoreFoundation 0x0000000225e20630 <redacted> + 144
7 CoreFoundation 0x0000000225cfe450 <redacted> + 292
8 CoreFoundation 0x0000000225cff034 <redacted> + 60
9 testApp 0x00000001031e9b6c -[RCTModuleMethod invokeWithBridge:module:arguments:] + 1896
10 testApp 0x00000001031ed568 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 660
11 testApp 0x00000001031ed0dc _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 144
12 testApp 0x00000001031ed040 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 28
13 libdispatch.dylib 0x0000000104657824 _dispatch_call_block_and_release + 24
14 libdispatch.dylib 0x0000000104658dc8 _dispatch_client_callout + 16
15 libdispatch.dylib 0x0000000104660e6c _dispatch_lane_serial_drain + 720
16 libdispatch.dylib 0x0000000104661b60 _dispatch_lane_invoke + 460
17 libdispatch.dylib 0x000000010466bbfc _dispatch_workloop_worker_thread + 1220
18 libsystem_pthread.dylib 0x0000000225a350dc _pthread_wqthread + 312
19 libsystem_pthread.dylib 0x0000000225a37cec start_wqthread + 4
)
2019-10-08 17:05:37.431276+0800 testApp[350:50876] Exception '+[FIRAnalytics setAnalyticsCollectionEnabled:]: unrecognized selector sent to class 0x10377e400' was thrown while invoking setAnalyticsCollectionEnabled on target RNFirebaseAnalytics with params (
1
)
callstack: (
0 CoreFoundation 0x0000000225e18edc <redacted> + 252
1 libobjc.A.dylib 0x0000000224fe9a40 objc_exception_throw + 56
2 CoreFoundation 0x0000000225d36ccc <redacted> + 0
3 CoreFoundation 0x0000000225e1e7dc <redacted> + 1412
4 CoreFoundation 0x0000000225e2048c _CF_forwarding_prep_0 + 92
5 testApp 0x000000010313b418 -[RNFirebaseAnalytics setAnalyticsCollectionEnabled:] + 64
6 CoreFoundation 0x0000000225e20630 <redacted> + 144
7 CoreFoundation 0x0000000225cfe450 <redacted> + 292
8 CoreFoundation 0x0000000225cff034 <redacted> + 60
9 testApp 0x00000001031e9b6c -[RCTModuleMethod invokeWithBridge:module:arguments:] + 1896
10 testApp 0x00000001031ed568 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 660
11 testApp 0x00000001031ed0dc _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 144
12 testApp 0x00000001031ed040 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 28
13 libdispatch.dylib 0x0000000104657824 _dispatch_call_block_and_release + 24
14 libdispatch.dylib 0x0000000104658dc8 _dispatch_client_callout + 16
15 libdispatch.dylib 0x0000000104660e6c _dispatch_lane_serial_drain + 720
16 libdispatch.dylib 0x0000000104661b60 _dispatch_lane_invoke + 460
17 libdispatch.dylib 0x000000010466bbfc _dispatch_workloop_worker_thread + 1220
18 libsystem_pthread.dylib 0x0000000225a350dc _pthread_wqthread + 312
19 libsystem_pthread.dylib 0x0000000225a37cec start_wqthread + 4
)
我预计在发布期间不会出现任何崩溃问题。如果您在我实施的尝试/方式中发现任何问题,请分享。
谢谢。
【问题讨论】:
-
您好,我使用的是 react-native 0.60.5,我不需要将 pod 库放在与库的链接中,因为 pod 已经存在并且它通过自动链接来处理它们。您还需要检查您正在使用的库是否需要针对 react native 0.60.0 进行额外配置,并且仅链接 pod 尚不支持它。
-
你好。您所说的“pod 已经存在并且它通过自动链接处理它们”是什么意思? AFAIK,只有具有 *.podspecs 的库才会执行自动链接(如果我错了,请纠正我)。无论如何,从您升级 RN Framework 的经验来看,您如何确定需要在项目的 pod 中添加哪些库?
-
通常当您手动链接库时,会将其添加到 Link Binary with Libraries。我检查他们的存储库是否已使用 react-native 更新,如果没有,我会在升级后链接它并测试是否仍然有效,这实际上取决于每个库。
-
在您的工作项目中,您是否也使用 RNFirebase?你能告诉我你的 podfile 长什么样吗?
-
是的,我用过,看看codepen.io/knivesq/pen/bGGdZmY
标签: ios firebase react-native react-native-ios firebase-analytics