繁体   English   中英

Firebase Crashlytics:缺少 dsym 文件

[英]Firebase Crashlytics: Missing dsym files

我们已经从 fabric.io 移动到 Firebase,现在 dsym 文件总是丢失。 本手册试图提供帮助,但我不太明白:

手册: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?authuser=0&platform=ios

那么我究竟需要在构建阶段实现哪一行以便它自动执行? 这个? 查找 dSYM_directory -name "*.dSYM" | xargs -I {} $PODS_ROOT/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform {}

但是我的其他问题是:如何找到我的 dsym_directory? 我的意思是每个版本都不同,不是吗? 它还说:

重要提示:如果您正在使用之前从 Fabric 链接到 Firebase Crashlytics 的应用程序,请传入您的 Fabric API 密钥以运行上传符号脚本。 也就是说,在以下运行脚本的选项中,使用 -a fabric-api-key 而不是 -gsp path/to/GoogleService-Info.plist。

那么这是否意味着我可以使用变量 fabric-api-key 或者我需要用我的密钥完全替换它? 有人可以帮助我并给出我必须插入构建阶段的确切行吗?

28/五月/2020 在此处输入图片说明 对我来说,我一直在执行这些步骤,直到 dsym 问题与我一起解决。

在第一个将 Firebase Crashlytics 添加到您的应用程序中:

打开您为 Firebase 项目创建的 podfile 并添加 FirebaseCrashlytics pod

pod 'Firebase/Crashlytics'

pod 'Firebase/Analytics'

然后申请:pod install'

  1. 创建如图所示的两个脚本:

    在第一个脚本中编写下一个命令:

    “${PODS_ROOT}/FirebaseCrashlytics/运行”

并在输入文件中添加两个输入文件:

  • ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

  • $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

在此处输入图片说明

在第二个脚本中编写下一个命令:

"find ${DWARF_DSYM_FOLDER_PATH}" -name "*.dSYM" | xargs -I \{\} "$PODS_ROOT/Fabric/upload-symbols" -gsp "$PODS_ROOT/../GoogleService-Info.plist" -p ios \{\}

在此处输入图片说明

如果您至少第一次需要通过终端上传 dSYM 文件时 dSYM 无法与您合作。


以下步骤说明了如何将 dSYM 文件上传到 Firebase:

  1. 从 iTunes Connect 下载 .dSYM: 在此处输入图片说明
  2. 从 iTunes Connect 中提取您下载的“appDsyms”。
  3. 从终端运行脚本以上传 dSYM

/ path-to-your-project /Pods/FirebaseCrashlytics/upload-symbols -gsp / path-to-GoogleService-Info.plist /GoogleService-Info.plist -p ios / path-to-appDsyms-folder /appDsyms

在此处输入图片说明

我在脚本之前使用 find ${DWARF_DSYM_FOLDER_PATH}" -name "*.dSYM" 来查找 dsyms。

"find ${DWARF_DSYM_FOLDER_PATH}" -name "*.dSYM" | xargs -I \{\} "$PODS_ROOT/Fabric/upload-symbols" -gsp "$PODS_ROOT/../GoogleService-Info.plist" -p ios \{\}

在此处输入图片说明

Swift 5 如何上传 dSYMs 文件夹 dSYMs 文件夹上传 3 步的简单方法

第 1 步从您的应用商店帐户下载在此处输入图片说明

步骤 2 输入路径在此处输入图片说明

步骤 3 上传成功时

在此处输入图片说明

对于那些没有在 AppStoreConnect 中找到 Activity 的人。

从 AppStoreConnect 手动下载 .dSYMs 文件:

  • 登录AppStoreConnect
  • 选择我的应用程序,然后选择您的应用程序在此处输入图片说明
  • 然后在该内部版本号之后单击Testflight 在此处输入图片说明
  • 然后点击Build Metadata ,你会看到右下角点击Download dSYMs 在此处输入图片说明

确保正确上传 dsyn 的替代脚本

  1. Go 到“构建阶段”
  2. 在 + -> "NewRun Script Phase" 中创建一个新脚本
  3. 确保它始终是最后一个
  4. 复制并粘贴此脚本
set -e

echo "info: Exec Upload dSYM"
#Path for google service .plist 
GOOGLE_SERVICE_INFO_PLIST="${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}/GoogleService-Info.plist"
#Path for DSYM directory
DSYM_PATH="$DWARF_DSYM_FOLDER_PATH/dddd/$DWARF_DSYM_FILE_NAME"
#Firebase command script
CMD=""
if [[ ${PODS_ROOT} ]]; then
  echo "info: Exec FirebaseCrashlytics Run from Pods"
  CMD="$PODS_ROOT/FirebaseCrashlytics/upload-symbols"
else
  echo "info: Exec FirebaseCrashlytics Run from framework"
  CMD="$PROJECT_DIR/FirebaseCrashlytics.framework/upload-symbols"
fi

echo "info: Checking if .plist exists"
if [ -f "$GOOGLE_SERVICE_INFO_PLIST" ]; then
    echo "info: $GOOGLE_SERVICE_INFO_PLIST exists."
else 
    echo "ERROR: $GOOGLE_SERVICE_INFO_PLIST does not exist."
    exit 1
fi

echo "info: Checking if .dSYM"
if [ -d "$DSYM_PATH" ]; then
    echo "info: $DSYM_PATH exists."
else 
    echo "ERROR: $DSYM_PATH does not exist."
    echo "info: try fallback"
    DSYM_PATH=` find "${DWARF_DSYM_FOLDER_PATH}" -name "*.dSYM" | xargs `
    if [ -d "$DSYM_PATH" ]; then
        echo "info: $DSYM_PATH exists."
    else 
        echo "ERROR: $DSYM_PATH does not exist."
        exit 1
    fi
fi
echo "info: Check if upload-symbols script exists"
if [ -f "$CMD" ]; then
    echo "$CMD exists."
else 
    echo "ERROR: $CMD does not exist."
    exit 1
fi

echo "info: Starting command upload-symbols"
"${CMD}" -gsp "$GOOGLE_SERVICE_INFO_PLIST" -p ios "$DSYM_PATH" > /dev/null 2>&1 &
echo "info: Symbol uploading will proceed in the background."
echo "info: remove '> /dev/null 2>&1 &' to test in the main thread and see if there are any errors, or open console and filter with 'upload-symbols'"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM