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

Flutter多Flavor环境下向Firebase Crashlytics上传dSYM符号

多Flavor Flutter应用上传dSYM到Firebase Crashlytics的Build Phases脚本

直接使用以下脚本即可适配你的目录结构,将其添加到Xcode的Build Phases中:

# 从Configuration名称提取Flavor(假设你的Configuration命名为「Flavor-Debug」「Flavor-Release」格式)
FLAVOR="${CONFIGURATION%%-*}"

# 定位对应Flavor的GoogleService-Info.plist
GOOGLE_SERVICE_PLIST_PATH="${PROJECT_DIR}/config/${FLAVOR}/GoogleService-Info.plist"

# 检查配置文件是否存在,避免脚本报错中断
if [ ! -f "$GOOGLE_SERVICE_PLIST_PATH" ]; then
  echo "❌ 未找到${FLAVOR}环境的GoogleService-Info.plist,路径:$GOOGLE_SERVICE_PLIST_PATH"
  exit 1
fi

# 调用Firebase上传工具,上传dSYM符号
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "$GOOGLE_SERVICE_PLIST_PATH" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

配置步骤

  1. 打开Flutter项目的iOS工程(ios/Runner.xcworkspace)
  2. 选中Runner Target,切换到Build Phases标签页
  3. 点击左上角「+」按钮,选择New Run Script Phase
  4. 将上述脚本粘贴到脚本输入框内
  5. 调整这个Run Script Phase的顺序,确保它在Upload Debug Symbols to Firebase Crashlytics(如果存在)之后,或放在所有编译、链接阶段之后

关键注意事项

  • Flavor名称提取逻辑:如果你的Configuration命名格式是「Debug-Flavor」「Release-Flavor」,请把FLAVOR="${CONFIGURATION%%-*}"改成FLAVOR="${CONFIGURATION#*-}",确保能正确提取到flavor名称
  • 路径验证:手动确认${PROJECT_DIR}/config/${FLAVOR}/GoogleService-Info.plist路径确实存在,比如config/Dev/GoogleService-Info.plist
  • 依赖检查:确保已通过Pod安装FirebaseCrashlytics,${PODS_ROOT}/FirebaseCrashlytics/upload-symbols路径有效
  • 测试脚本:可在终端手动执行上传命令排查报错,示例:
    cd ios
    ./Pods/FirebaseCrashlytics/upload-symbols -gsp ../config/Dev/GoogleService-Info.plist -p ios ../build/ios/archive/Runner.xcarchive/dSYMs/Runner.app.dSYM
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:51:57