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

Flutter iOS通过Xcode构建/归档失败,但终端运行正常

Flutter iOS Xcode运行/归档错误解决方案

针对你遇到的open flutter/packages/integration_test/ios/Classes/FLTIntegrationTestRunner.h: Operation not permitted和Command PhaseScriptExecution failed with a nonzero exit code错误,结合你的环境(Xcode14.3.1、Flutter3.10.5),可以尝试以下解决步骤:

  • 移除无用的Integration Test依赖
    如果你没有使用integration_test功能,直接清理相关配置:

    1. 打开Xcode的Runner项目,删除ios/Runner目录下的FLTIntegrationTestRunner相关文件
    2. 从pubspec.yaml中删除integration_test依赖项,执行flutter pub get
    3. 执行flutter clean,然后重启Xcode并清理Xcode缓存(Command+Shift+K)
  • 修复文件权限问题
    终端中执行以下命令修复Flutter SDK内相关文件的权限:

    # 定位到Flutter SDK的integration_test目录
    cd $(dirname $(which flutter))/../packages/integration_test/ios/Classes
    # 修改文件权限
    chmod 644 FLTIntegrationTestRunner.h FLTIntegrationTestRunner.m
    # 可选:递归修复整个Flutter SDK的权限
    sudo chmod -R 755 $(dirname $(which flutter))/../
    
  • 调整Xcode构建脚本配置

    1. 在Xcode中选中Runner目标,进入Build Phases标签页
    2. 找到Run Script阶段,确保脚本内容为:
      "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
      
    3. 勾选Run script only when installing选项,避免调试阶段的脚本冲突
    4. 如果仍报错,尝试在脚本开头添加set -e,强制脚本遇到错误即终止:
      set -e; "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
      
  • 彻底清理缓存并重建

    1. 执行flutter clean清空Flutter构建缓存
    2. 进入ios目录,删除Pods文件夹和Podfile.lock,执行pod install
    3. 清空Xcode的Derived Data:打开Xcode -> Settings -> Locations -> Derived Data,点击箭头打开文件夹后删除所有内容
    4. 重新用Xcode打开项目,尝试运行或归档
  • 版本兼容性适配
    Flutter 3.10.5与Xcode14.3存在部分兼容性问题,可以尝试:

    • 升级Flutter到3.10.6及以上版本(官方修复了Xcode14.3的脚本执行问题)
    • 或者降级Xcode到14.2版本,避开兼容性冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:30:11