Flutter run卡在Running Xcode build阶段无法完成iOS构建
问题描述
应用可在macOS平台正常运行,在iOS设备(iPad)上执行flutter run -v命令启动应用时,进程固定卡在Xcode构建阶段,对应执行的命令如下:
Running Xcode build...
[ +2 ms] executing: [/Users/apfox500/Documents/GitHub/AAC-App/ios/] xcrun xcodebuild -configuration Debug VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner BUILD_DIR=/Users/apfox500/Documents/GitHub/AAC-App/build/ios -sdk iphoneos -destination id=00008101-001868481EE9001E ONLY_ACTIVE_ARCH=YES ARCHS=arm64 SCRIPT_OUTPUT_STREAM_FILE=/var/folders/hg/mls6tcw111sgfh2t7v539zrh0000gn/T/flutter_tools.j2rCNj/flutter_ios_build_temp_dirBj4KR5/pipe_to_stdout -resultBundlePath /var/folders/hg/mls6tcw111sgfh2t7v539zrh0000gn/T/flutter_tools.j2rCNj/flutter_ios_build_temp_dirBj4KR5/temporary_xcresult_bundle -resultBundleVersion 3 FLUTTER_SUPPRESS_ANALYTICS=true COMPILER_INDEX_STORE_ENABLE=NO
已尝试的无效操作:
- 执行
flutter doctor检查开发环境,未发现异常 - 多次执行
flutter clean清理构建缓存 - 执行
pod deintegrate、pod install命令清理重装iOS依赖 - 直接通过Xcode执行构建操作
修复步骤
按以下顺序逐一排查,绝大多数同类无报错卡顿问题都能解决:
- 先检查连接的iPad设备状态:查看设备屏幕是否弹出「是否信任此电脑」「是否允许调试」类弹窗,全部点选允许/信任;进入iPad的「设置-通用-VPN与设备管理」,确认对应开发者证书已设为信任状态。xcrun在等待设备侧授权时不会输出任何提示,会直接表现为进程挂起。
- 彻底清理Xcode构建缓存:关闭所有Xcode窗口和Flutter相关进程,执行
rm -rf ~/Library/Developer/Xcode/DerivedData/*删除所有衍生构建数据,这部分缓存损坏是iOS构建无响应的最高频诱因,清理覆盖范围比flutter clean更全面。 - 校验iOS部署版本一致性:打开
ios/Podfile文件,查看文件开头配置的全局iOS最低支持版本,再打开Xcode进入Runner target的「General」标签页,确认Deployment Info里的iOS版本和Podfile里的配置完全一致,版本不匹配会导致CocoaPods依赖编译阶段死锁,无明确报错输出。 - 重置签名配置:在Xcode中打开Runner项目的「Signing & Capabilities」标签页,取消勾选Automatically manage signing,关闭Xcode后重新打开,再次勾选自动签名并选择正确的开发团队。签名配置异常导致的构建挂起在命令行模式下不会抛出签名相关报错,只会卡在构建启动阶段。
- 以上操作都无效时,执行
flutter precache --ios重新拉取完整的Flutter iOS构建工具链,修复内置构建脚本损坏、缺失的问题。
内容的提问来源于stack exchange,提问作者Andrew Fox

