Flutter 2迁移空安全后iOS构建报arm64架构Undefined symbols错误
Flutter 2空安全迁移后iOS端arm64架构链接报错问题
问题触发场景
迁移至支持空安全的Flutter 2版本后,iOS端构建流程出现异常,执行指定清理重装依赖的运行命令时触发编译报错:
flutter clean; rm ios/Podfile.lock pubspec.lock; rm -rf ios/Pods ios/Runner.xcworkspace; flutter run --flavor dev -t lib/main_dev.dart
核心编译报错内容
Undefined symbols for architecture arm64: "_OBJC_CLASS_$_FlutterStandardTypedData", referenced from: objc-class-ref in google_maps_flutter(GoogleMapController.o) "_OBJC_CLASS_$_FlutterStandardMessageCodec", referenced from: objc-class-ref in google_maps_flutter(GoogleMapController.o) "_OBJC_CLASS_$_FlutterError", referenced from: objc-class-ref in firebase_core(FLTFirebasePlugin.o) objc-class-ref in google_maps_flutter(FLTGoogleMapsPlugin.o) objc-class-ref in google_maps_flutter(FLTGoogleMapTileOverlayController.o) objc-class-ref in google_maps_flutter(GoogleMapMarkerController.o) objc-class-ref in google_maps_flutter(GoogleMapController.o) objc-class-ref in onesignal_flutter(OSFlutterCategories.o) "_OBJC_CLASS_$_FlutterMethodChannel", referenced from: objc-class-ref in firebase_core(FLTFirebaseCorePlugin.o) objc-class-ref in firebase_crashlytics(FLTFirebaseCrashlyticsPlugin.o) objc-class-ref in google_maps_flutter(GoogleMapController.o) objc-class-ref in onesignal_flutter(OSFlutterOutcomeEventsController.o) objc-class-ref in onesignal_flutter(OneSignalPlugin.o) objc-class-ref in onesignal_flutter(OSFlutterTagsController.o) objc-class-ref in onesignal_flutter(OSFlutterInAppMessagesController.o) ... "_FlutterMethodNotImplemented", referenced from: -[FLTFirebaseCorePlugin handleMethodCall:result:] in firebase_core(FLTFirebaseCorePlugin.o) -[FLTFirebaseCrashlyticsPlugin handleMethodCall:result:] in firebase_crashlytics(FLTFirebaseCrashlyticsPlugin.o) ___61-[FLTTileProviderController requestTileForX:y:zoom:receiver:]_block_invoke in google_maps_flutter(FLTGoogleMapTileOverlayController.o) -[FLTGoogleMapController onMethodCall:result:] in google_maps_flutter(GoogleMapController.o) -[OSFlutterOutcomeEventsController handleMethodCall:result:] in onesignal_flutter(OSFlutterOutcomeEventsController.o) -[OneSignalPlugin handleMethodCall:result:] in onesignal_flutter(OneSignalPlugin.o) -[OSFlutterTagsController handleMethodCall:result:] in onesignal_flutter(OSFlutterTagsController.o) ... ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
已尝试的无效排查操作
- 执行
pod deintegrate && rm Podfile.lock && pod install --repo-update全量重装iOS端依赖 - 在Podfile中配置
platform :ios, '12.0'对齐最低系统版本要求 - 在Xcode Build Settings中手动将目标编译架构设置为
arm64
注:该报错可在两个独立Flutter项目中稳定复现,以上常规排查操作均无法解决问题。
问题关联线索
- 报错特征指向OneSignal Flutter插件的兼容性问题
- 已有匹配该报错场景的公开issue记录
- 已搭建可稳定复现问题的最小Demo项目用于问题定位
内容的提问来源于stack exchange,提问作者andreich
相关产品推荐
相关产品推荐

