升级firebase_auth与firebase_core后Xcode报ARC语义错误
问题描述
我更新了Flutter项目的两个依赖:
- firebase_auth: ^4.4.0
- firebase_core: ^2.9.0
之后启动项目时,iOS端出现如下编译错误:
ARC Semantic Issue (Xcode): No known class method for selector 'appleCredentialWithIDToken:rawNonce:fullName:' /Users/saadbashir/.pub-cache/hosted/pub.dev/firebase_auth-4.4.0/ios/Classes/FLTFirebaseAuthPlugin.m:592:26
项目完整依赖如下(pubspec.yaml):
cupertino_icons: ^1.0.2 firebase_auth: ^4.4.0 firebase_core: ^2.9.0 google_fonts: ^4.0.1 form_field_validator: ^1.1.0 lottie: ^2.2.0 image_picker: ^0.8.6+1 path_provider: ^2.0.12 image_cropper: ^3.0.1 flutter_image_compress: ^1.1.3 provider: ^6.0.5 http: ^0.13.5 animate_do: ^3.0.2 pin_code_fields: ^7.4.0 google_mlkit_face_detection: 0.5.0 google_mlkit_text_recognition: 0.5.0 camera: ^0.10.3+2 image: ^4.0.12 dropdown_search: ^5.0.3 percent_indicator: ^4.2.2 geocoding: ^2.0.5 location: ^4.4.0 google_maps_flutter: flutter_polyline_points: ^1.0.0 google_maps_webservice: ^0.0.19 flutter_google_places: ^0.3.0 basic_utils: 5.5.3 time_range: ^1.0.3 jwt_decoder: ^2.0.1 sliding_up_panel: ^2.0.0+1 flutter_background_service: ^2.4.6 flutter_background_service_ios: ^2.4.0 flutter_background_service_android: ^3.0.3 shared_preferences: ^2.0.20 barcode_widget: ^2.0.3 encrypt: ^5.0.1 socket_io_client: ^2.0.1 geolocator: ^9.0.2 intl: ^0.17.0
解决方法
这个错误是iOS端Firebase Auth SDK版本与Flutter插件版本不匹配导致的,按以下步骤处理:
1. 更新iOS端Firebase SDK
进入ios目录,清理现有Pod依赖后更新Firebase核心组件:
cd ios pod deintegrate pod update FirebaseAuth FirebaseCore
如果Podfile里的iOS版本低于13.0,记得修改为platform :ios, '13.0'——firebase_auth 4.x系列要求至少iOS 13的支持。
2. 清理Flutter缓存并重建
回到项目根目录,执行:
flutter clean flutter pub get flutter run
3. 回退兼容版本(若上述步骤无效)
尝试将firebase_auth降级到稳定兼容版本,比如firebase_auth: ^4.3.0,同时保持firebase_core版本匹配,之后重新执行flutter pub get和iOS的Pod更新操作。
4. 检查Xcode配置
打开ios/Runner.xcworkspace,确认项目的Deployment Target设置为iOS 13.0或更高,同时确保FireAuth、FireCore框架已正确导入。
内容的提问来源于stack exchange,提问作者Saad Bashir
相关产品推荐
相关产品推荐

