You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Xcode14后Flutter iOS模拟器报错:找不到dart:js

问题描述
  • 原状态:Flutter项目此前运行完全正常
  • 触发操作:将Xcode从13升级到14
  • 报错现象:iOS模拟器运行应用时出现核心错误:
    • 找不到dart:js、dart:js_util库
    • 伴随Firebase相关方法缺失的问题
已尝试操作
  • 执行flutter clean
  • 删除并重新安装iOS Pods
  • 将Flutter版本从2.10.3升级到2.10.5,后回退至原版本
排查与解决步骤

1. 修正dart:js/dart:js_util的平台使用限制

dart:js和dart:js_util是仅Web平台可用的库,iOS模拟器属于原生平台,直接引入会导致编译错误:

  • 定位代码中引入这两个库的位置,用平台条件编译包裹:
    // 仅在Web平台导入,原生平台导入空文件占位
    import 'dart:js' if (dart.library.io) 'dummy.dart';
    import 'dart:js_util' if (dart.library.io) 'dummy.dart';
    
  • 或用kIsWeb常量做运行时判断:
    import 'package:flutter/foundation.dart' show kIsWeb;
    
    void handlePlatformLogic() {
      if (kIsWeb) {
        // 仅Web平台执行dart:js相关逻辑
      } else {
        // 原生平台逻辑
      }
    }
    

2. 适配Xcode 14的Firebase依赖配置

Xcode 14对Pods依赖处理有调整,需针对性修复Firebase相关问题:

  • 确保ios/Podfile指定最低iOS版本不低于11.0:
    platform :ios, '11.0'
    
  • 更新pubspec.yml中Firebase插件版本到适配Xcode 14的稳定版(如firebase_core、firebase_auth等),执行:
    flutter pub get
    cd ios && pod update
    
  • 修改Podfile中的框架链接方式,避免动态库兼容性问题:
    target 'Runner' do
      use_frameworks! :linkage => :static
      use_modular_headers!
    
      flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
    end
    

3. 深度清理项目缓存

除常规操作外,清理Xcode本地缓存:

  • 执行完整清理命令:
    flutter clean
    rm -rf ios/Pods ios/Podfile.lock ios/Runner.xcworkspace
    rm -rf ~/Library/Developer/Xcode/DerivedData
    flutter pub get
    cd ios && pod install --repo-update
    
  • 打开Xcode,执行Product > Clean Build Folder(快捷键Cmd+Shift+K),再重新运行项目。

4. 验证Flutter与Xcode版本兼容性

Flutter 2.10.x对Xcode 14的支持存在部分兼容问题:

  • 优先升级Flutter到支持Xcode 14的稳定版(如3.0.0及以上):
    flutter upgrade
    
  • 若需保留旧版本,确保使用Flutter 2.10.x的最新补丁版本,同时确认官方版本兼容说明。

内容的提问来源于stack exchange,提问作者arunmah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:42:12