Skip to content

Xcode 中 FirebaseAnalytics 的 dSYM 文件生成问题

问题描述

当在 Xcode 中验证或上传应用时,许多开发者遇到关于 FirebaseAnalytics 的 dSYM 文件警告:

plaintext
Upload Symbols Failed
The archive did not include a dSYM for the FirebaseAnalytics.framework with the UUIDs [D080D817-CA37-3B97-8A51-421A372C12DB]. 
Ensure that the archive's dSYM folder includes a DWARF file for FirebaseAnalytics.framework with the expected UUIDs.

此问题通常出现在以下环境中:

  • Xcode 16(较新版本)
  • 通过 Swift Package Manager 安装的 Firebase SDK(v10.28+)
  • 已正确配置了 DWARF with dSYM File 调试信息格式
  • 已添加 Firebase Run Script 构建阶段

根本原因

此问题主要由以下因素导致:

  1. Xcode 16 行为变更:新版本处理 dSYM 文件的方式发生变化
  2. 依赖冲突:Firebase SDK 内部模块(如 Crashlytics, Messaging)版本不兼容
  3. 构建设置问题:特定构建选项导致符号文件生成失败

解决方案

解决方案一:禁用依赖分析(首选)

  1. 在 Xcode 左侧导航器选择项目文件
  2. 转到 Build Settings > Build Options
  3. Based on dependency analysis 设为 不勾选 (Unchecked)
  4. 重新清理构建项目 (Cmd+Shift+K),然后重新归档

解决方案二:补充 dSYM 文件路径参数(通用)

修改 Run Script 的 Input Files 配置,在原有基础上添加:

json
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

解决方案三:更新 Firebase SDK 依赖

  1. 检查 Package.swift 中是否需要升级目标平台版本
  2. 更新最小 iOS 目标版本以满足最新 SDK 要求
  3. 确保使用的 Firebase 模块版本统一:
    • FirebaseAnalytics >= v10.29.0
    • FirebaseCrashlyticsFirebaseMessaging 版本兼容

Kotlin Multiplatform 项目特别方案

修改 Run Script 路径为:

bash
"${SHARED_PRECOMPS_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"

验证配置

确保以下配置已正确应用:

bash
# Build Settings 确认
Debug Information Format = DWARF with dSYM File

# Run Script 输入文件校验
"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}"
"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist"
"$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist"

补充说明

如果问题仍存在:

  1. 清理构建缓存
    bash
    rm -rf ~/Library/Developer/Xcode/DerivedData/*
  2. 检查官方 GitHub 问题跟踪: Firebase iOS SDK Issue #13543
  3. 确认 GoogleService-Info.plistIS_ANALYTCS_ENABLED 值为 YES

验证成功的关键指标

  1. 构建日志出现 Uploading dSYMs... success 提示
  2. 归档后 dSYMs 文件夹包含 FirebaseAnalytics.framework.dSYM

React Native 项目特别注意

若使用 React Native 0.75 以下版本且启用 Hermes,需升级至 RN v0.76+

bash
npx react-native upgrade 0.76.0