【问题标题】:Firebase crash batch upload fail for unknown reasonFirebase 崩溃批量上传失败,原因不明
【发布时间】:2017-12-14 22:06:46
【问题描述】:

我正在尝试将 DSYM 上传到 firebase,直到几天前它都运行良好。当我启动脚本时,它开始登录,几行后卡住了几分钟,然后失败了。

/Users/..../dSYMs/DF...C47.dSYM/Contents/Resources/DWARF/leveldb: warning: function at offset 0x51662 has no name
./Pods/FirebaseCrash/upload-sym-util.bash:365: error: upload: Unable to upload symbol file (reason unknown).

有趣的是,在 firebase 控制台中它告诉我上传成功:

UUID B4 的未来堆栈跟踪...AAF 将 使用上传的符号文件进行符号化。

但它从来没有,因为我已经“上传”了一些这样的东西,从那以后,我又发生了几次崩溃,但仍然没有象征性......

发生了什么事?

仅供参考:我从 2 月份开始使用 firebase 崩溃报告,效果很好。几天前我将我的 mac 更新为 High Sierra。

你的

【问题讨论】:

  • High Sierra 中存在一个已知问题,即某些符号上传不成功。我怀疑这是升级后的命令行实用程序导致的问题,导致我们的调用语法现在无效。一旦我们能够升级到 High Sierra,我就能解决这个问题。同时,您也可以试用 Crashlytics。
  • 升级到 High Sierra 和 Xcode 9.2 后我也得到了同样的结果
  • @mike_haney 我明白了,你有什么信息,什么时候修复?因为我们真的需要崩溃报告:)
  • 我们确实对其进行了一些调查,但很可能会在新年初的某个时候得到解决。
  • 我正在与另一位开发人员一起在这个 repo 上进行诊断:github.com/UglyBlueCat/quickstart-ios随时提供帮助/评论

标签: ios firebase firebase-crash-reporting


【解决方案1】:

TL;DR

upload-sym-util.bash中查找以下行:

HTTP_STATUS=$(curl ${CURLOPT} -sfL -H 'Content-Type: text/plain' -H "Authorization: Bearer ${BEARER_TOKEN}" -w '%{http_code}' -T "${FILE}" "${UPLOAD_URL}")

并在末尾附加--http1.1,使其变为:

HTTP_STATUS=$(curl ${CURLOPT} -sfL -H 'Content-Type: text/plain' -H "Authorization: Bearer ${BEARER_TOKEN}" -w '%{http_code}' -T "${FILE}" "${UPLOAD_URL}" --http1.1)

说明

我们在通过 XCode 在 Firebase 上上传 DSYM 文件时遇到了这个问题。让我们发疯的是,这个过程似乎随机成功和失败。上传失败时,几分钟后就成功了。

我们设法手动运行了有问题的curl 命令,并发现它返回的HTTP 状态代码为000,这似乎是在服务器实际返回任何内容之前关闭连接时发生的(例如:超时)。通过使用--verbose 参数,我们发现curl 正在用INTERNAL_ERROR (err 2) 中止调用,这似乎与HTTP/2 的使用有关。当我们发现唯一能够正确上传 DSYM 文件的机器具有与其他所有人相同的 curl 版本但不支持 HTTP/2 时,我们设法确认了这一点,这显然是在 High 中添加的塞拉利昂。我们强制 curl 使用 HTTP1.1,它成功了。

【讨论】:

  • 感谢您的回复。在我尝试了您的建议后,构建脚本失败:--http1.1:找不到命令上传:无法上传符号文件(原因未知)
  • 只有在我尝试从 XCode 构建应用程序时才会失败。如果我尝试从终端上传 DSYM,它不会失败,但它仍然卡住然后失败,原因与我在问题中提到的相同
  • 对不起,--http1.1 参数应该在命令替换 ($(...)) 中,我已经编辑了我的答案。让我知道它现在是否有效。
  • 好消息,它也适用于我。我希望它会在未来发挥作用。谢谢你,干得好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 2020-09-09
  • 1970-01-01
  • 2019-01-21
  • 2022-11-27
  • 2016-05-03
相关资源
最近更新 更多