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

Flutter iOS模拟器构建失败求助:dart:js依赖错误等问题

解决VS Code中Flutter iOS模拟器构建失败的问题

以下针对你遇到的几个核心问题逐一提供解决方案:

1. 找不到'dart:js'依赖

dart:js是仅Web平台支持的专属库,iOS/Android端无法识别该依赖。

  • 全局检索项目代码中的import 'dart:js'语句,若存在直接导入,替换为条件导入:
    // 非Web平台用空文件占位,需新建dummy.dart(内容为空)
    import 'dart:js' if (dart.library.io) 'dummy.dart';
    
  • 若需跨平台使用JS相关能力,替换为universal_html等跨平台兼容库,避免直接依赖Web专属API。

2. WidgetsBinding空安全操作警告

空安全模式下WidgetsBinding.instance可能返回null,需做非空处理:

  • 在main函数开头初始化绑定,确保实例非空:
    void main() {
      WidgetsFlutterBinding.ensureInitialized();
      runApp(MyApp());
    }
    
  • 调用instance时使用空安全操作符:
    WidgetsBinding.instance?.addPostFrameCallback((_) {
      // 你的业务逻辑
    });
    
  • 若警告来自第三方库,检查库版本是否支持空安全,升级至最新稳定版。

3. Pods部署目标版本低于支持范围

Flutter对iOS部署目标有最低版本要求,需统一Pods的部署目标:

  1. 打开iOS目录下的Podfile,将初始的platform :ios, '9.0'(或更低)修改为:
    platform :ios, '12.0'
    
  2. 在Podfile末尾添加配置,强制所有Pods使用统一部署目标:
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        flutter_additional_ios_build_settings(target)
        target.build_configurations.each do |config|
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
        end
      end
    end
    
  3. 执行清理与重装Pods:
    flutter clean
    cd ios
    pod deintegrate
    pod install
    cd ..
    

4. 修复Command PhaseScriptExecution执行失败

上述问题解决后若仍出现该错误,尝试以下操作:

  • 检查Xcode命令行工具路径:打开Xcode → 偏好设置 → 位置 → 命令行工具,选择当前安装的Xcode版本。
  • 给iOS脚本添加执行权限:
    chmod +x ios/Runner/Scripts/flutter_build_runner.sh
    
  • 重启VS Code与iOS模拟器,重新执行flutter run。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:45:32