Expo 47升级至48后启动崩溃:-[__NSCFNumber count]未识别选择器错误
问题:Expo 47升级至48后iOS应用启动崩溃
项目从Expo 47版本升级到48版本后,启动直接崩溃。几乎未修改代码,即使禁用所有JavaScript代码仅返回空视图,崩溃仍会发生。
报错信息
-[__NSCFNumber count]: unrecognized selector sent to instance 0 CoreFoundation 0x00000001ab7a8e44 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 40516 1 libobjc.A.dylib 0x00000001a493f8d8 objc_exception_throw + 60 2 CoreFoundation 0x00000001ab91d81c 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 1566748 3 CoreFoundation 0x00000001ab7bef50 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 130896 4 CoreFoundation 0x00000001ab827320 _CF_forwarding_prep_0 + 96 5 FBSDKCoreKit 0x000000010591917c __27-[FBSDKModelManager enable]_block_invoke + 500 6 libdispatch.dylib 0x0000000105e85ff0 _dispatch_client_callout + 20 7 libdispatch.dylib 0x0000000105e87b60 _dispatch_once_callout + 136 8 FBSDKCoreKit 0x0000000105918f84 -[FBSDKModelManager enable] + 104 9 FBSDKCoreKit 0x00000001058de078 __43-[FBSDKAppEvents fetchServerConfiguration:]_block_invoke_4 + 56 10 FBSDKCoreKit 0x00000001059746e4 $s12FBSDKCoreKit15_FeatureManagerC5check_15completionBlockySo12FBSDKFeatureV_ySbctFys5Error_pSgcfU_TA + 44 11 FBSDKCoreKit 0x00000001059735c8 $ss5Error_pSgIegg_So7NSErrorCSgIeyBy_TR + 52 12 FBSDKCoreKit 0x00000001059034b8 +[FBSDKGateKeeperManager loadGateKeepers:] + 604 13 FBSDKCoreKit 0x00000001059734e0 $s12FBSDKCoreKit15_FeatureManagerC5check_15completionBlockySo12FBSDKFeatureV_ySbctF + 660 14 FBSDKCoreKit 0x0000000105973644 $s12FBSDKCoreKit15_FeatureManagerC5check_15completionBlockySo12FBSDKFeatureV_ySbctFTo + 96 15 FBSDKCoreKit 0x00000001058ddd60 __43-[FBSDKAppEvents fetchServerConfiguration:]_block_invoke_2 + 960 16 FBSDKCoreKit 0x000000010592e21c -[FBSDKServerConfigurationManager loadServerConfigurationWithCompletionBlock:] + 1420 17 FBSDKCoreKit 0x00000001058dd980 __43-[FBSDKAppEvents fetchServerConfiguration:]_block_invoke + 128 18 FBSDKCoreKit 0x00000001058e27bc -[FBSDKAppEventsConfigurationManager _processResponse:error:] + 608 19 FBSDKCoreKit 0x000000010590dbbc -[FBSDKGraphRequestMetadata invokeCompletionHandlerForConnection:withResults:error:] + 152 20 FBSDKCoreKit 0x000000010590ab0c __82-[FBSDKGraphRequestConnection processResultBody:error:metadata:canNotifyDelegate:]_block_invoke + 144 21 FBSDKCoreKit 0x000000010590aa00 -[FBSDKGraphRequestConnection processResultBody:error:metadata:canNotifyDelegate:] + 700 22 FBSDKCoreKit 0x000000010590a5e0 __65-[FBSDKGraphRequestConnection _completeWithResults:networkError:]_block_invoke + 496 23 CoreFoundation 0x00000001ab7a9350 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 41808 24 CoreFoundation 0x00000001ab7c4680 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 153216 25 FBSDKCoreKit 0x000000010590a310 -[FBSDKGraphRequestConnection _completeWithResults:networkError:] + 548 26 FBSDKCoreKit 0x00000001059094a8 -[FBSDKGraphRequestConnection completeFBSDKURLSessionWithResponse:data:networkError:] + 800 27 libdispatch.dylib 0x0000000105e8453c _dispatch_call_block_and_release + 32 28 libdispatch.dylib 0x0000000105e85ff0 _dispatch_client_callout + 20 29 libdispatch.dylib 0x0000000105e96800 _dispatch_main_queue_drain + 1196 30 libdispatch.dylib 0x0000000105e96344 _dispatch_main_queue_callback_4CF + 44 31 CoreFoundation 0x00000001ab8396c8 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 632520 32 CoreFoundation 0x00000001ab81b02c 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 507948 33 CoreFoundation 0x00000001ab81feb0 CFRunLoopRunSpecific + 612 34 GraphicsServices 0x00000001e5a15368 GSEventRunModal + 164 35 UIKitCore 0x00000001add15668 CF21AD9C-EFBF-3961-A7C0-54BD30CEFEA9 + 3806824 36 UIKitCore 0x00000001add152cc UIApplicationMain + 340 37 MyApplication 0x0000000100678990 main + 96 38 dyld 0x00000001ca118960 4B042F28-0D14-30EC-A1DE-3DBB10866AD7 + 88416
环境信息
System: OS: macOS 13.2.1 CPU: (8) arm64 Apple M1 Memory: 93.28 MB / 16.00 GB Shell: 5.8.1 - /bin/zsh Binaries: Node: 18.15.0 - ~/.nvm/versions/node/v18.15.0/bin/node Yarn: 1.22.19 - /opt/homebrew/bin/yarn npm: 9.2.0 - /opt/homebrew/bin/npm Watchman: 2022.10.17.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.12.0 - /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1 Android SDK: Android NDK: 22.1.7171670 IDEs: Android Studio: 2022.1 AI-221.6008.13.2211.9619390 Xcode: 14.2/14C18 - /usr/bin/xcodebuild Languages: Java: 18.0.1.1 - /usr/bin/javac npmPackages: @react-native-community/cli: Not Found react: 18.2.0 => 18.2.0 react-native: 0.71.3 => 0.71.3 react-native-macos: Not Found npmGlobalPackages: react-native: Not Found
解决方案
从堆栈日志可判断,崩溃由FBSDKCoreKit触发,原因是SDK尝试对NSCFNumber类型调用count方法,属于类型不匹配问题,大概率是版本兼容或配置错误导致,可按以下步骤排查:
- 升级Facebook相关依赖:确保
react-native-fbsdk-next等依赖适配Expo 48(对应RN 0.71),直接更新到最新兼容版本。 - 修正配置类型:检查
app.json/app.config.js中的Facebook配置,facebookAppId等字段必须是字符串类型,避免传入数字导致SDK解析错误。 - 清理构建缓存:
- 删除iOS目录下的
Pods文件夹和Podfile.lock - 执行
pod install重新安装依赖 - 运行
npx expo start --clear清除Expo缓存
- 删除iOS目录下的
- 升级CocoaPods:当前使用1.12.0,建议升级到1.13+稳定版,执行
brew upgrade cocoapods - 临时移除验证:如果暂时不需要Facebook功能,移除相关依赖和配置,确认应用是否能正常启动,锁定问题根源。
内容的提问来源于stack exchange,提问作者user1047504
相关产品推荐
相关产品推荐

