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

Flutter项目Xcode归档报错:Command PhaseScriptExecution失败

解决Flutter切换版本后Xcode归档Crashlytics dSYM报错问题

问题定位

报错显示upload-symbols无法获取指定路径的dSYM文件属性,路径仅到DWARF目录(缺少具体文件名),结合Flutter版本切换操作,核心原因是版本切换后iOS工程的构建配置、脚本逻辑出现不一致,导致dSYM文件路径解析失败。

修复步骤

1. 修正Crashlytics输入文件路径

当前配置的第一个路径依赖${TARGET_NAME}解析文件名,但Flutter生成的App.framework.dSYM内的DWARF文件名为App,而非Runner target的名称,导致路径截断。将路径修改为:

"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/App"

或用${PRODUCT_NAME}替代${TARGET_NAME},确保指向正确的DWARF文件。

2. 修复脚本的路径解析逻辑

macOS自带的readlink是BSD版本,不支持-f参数,原脚本中的source="$(readlink -f "${source}")"会导致路径解析失败,替换为兼容macOS的写法:

# 替代原readlink -f逻辑,兼容macOS
source="$(cd "$(dirname "${source}")" && pwd)/$(basename "${source}")"

3. 清理工程缓存并重新构建

  • 执行Flutter全局清理:
    flutter clean
    
  • 进入iOS目录,重置CocoaPods依赖:
    cd ios
    pod deintegrate
    pod install
    
  • 在Xcode中清理构建缓存(Command + Shift + K),关闭Xcode后重新打开。

4. 验证dSYM生成配置

在Xcode的Runner Target配置中,确认以下选项:

  • Build Settings -> Debug Information Format:Release模式设置为DWARF with dSYM File
  • Build Settings -> Generate Debug Symbols:设置为YES

5. 重新执行归档

完成以上操作后,重新在Xcode中执行归档流程,检查报错是否消失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:06:17