Firebase 崩溃报告 - 并非所有符号文件都已上传

Firebase Crash Reporting - Not all symbol files uploaded

我已经根据 Firebase documentation 设置了 Firebase 崩溃报告,包括 运行 脚本,但是有一个大问题:当我构建一个新存档时,并不是所有的符号文件都被上传。

在我建立一个新的存档后,两个UUID的符号文件被上传到Firebase控制台;但是,我构建的存档有几十个 UUID(我从 iTunes Connect 下载 dSYM 知道这一点)。

现在,我收到了一些崩溃报告,none 其中有符号化的。我可以使用 Firebase 的 batch-upload 脚本为每个丢失的 UUID 手动上传 dSYM 文件,但这只允许对 future 堆栈跟踪进行符号化。任何现有的崩溃对我来说几乎没有用。

关于如何上传符号文件的 Firebase 文档不多,但根据我的收集,所有 符号都应该为每个新构建上传,包括存档构建。

所以我想我的问题是:

  1. 我是否缺少设置步骤?
  2. 如果这是预期的行为,发生了什么?为什么只上传了一些文件?
  3. 运行脚本是否输出日志?也许我可以查看它,看看是否有任何错误。

这是我的 运行 脚本:

if [ "$CONFIGURATION" == "Release" ]; then
    GOOGLE_APP_ID=<app-id>
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi

谢谢!

听起来你在使用位码?有专门的说明。

https://firebase.google.com/docs/crash/ios#bitcode_support

如果您的项目设置中启用了位码

仔细执行这些步骤

  1. 将解压后的 dsym 文件夹添加到项目的主目录中
  2. 将此脚本添加到 dsym 文件夹
  3. 打开终端
  4. cd 进入项目主目录下的dsym文件夹
  5. 运行 这个 python 脚本即 'python batch_upload_files.py'

https://github.com/hanijazzar/Contributions/blob/master/batch_upload_files.py

我写了一个 Python 2.7 脚本来上传我的 dSYM

我在项目源目录中创建了这个文件结构

Scripts/
    |upload_syms.py
    |syms/
        |myVersion/
            |FE98728-928748923B78-ASDASDF...

upload_syms.py

from sys import argv
from os import listdir, system

version = argv[1]
symPath = 'syms/' + version

command = './../Pods/FirebaseCrash/batch-upload '
command += '-i ../App/Info.plist '
command += '-p ../App/GoogleService-Info.plist '
command += '../App/ServiceAccount.json '
command += symPath + '/'

symFiles = [f for f in listdir(symPath) if f != '.DS_Store']

for sym in symFiles:
    print 'Upload ' + sym + '...'
    system(command + sym)
    print

print 'Uploaded ' + str(len(symFiles)) + ' dSYM files'

在终端运行中使用

python upload_syms.py myVersion