我试图将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 crashreporting,效果很好。几天前我将我的mac更新为High Sierra。
祢
答案 0 :(得分:6)
在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)
我们在Firebase上通过 XCode 上传DSYM文件时遇到此问题。令我们发疯的是,这个过程似乎是随机成功而失败的。当上传失败时,它会在几分钟后完成。
我们设法手动运行有问题的curl
命令并发现它返回的HTTP状态代码为000,这似乎是在服务器实际返回任何内容(例如:超时)之前关闭连接时发生的。通过使用--verbose
参数,我们发现curl
正在使用INTERNAL_ERROR (err 2)
中止调用,这似乎与HTTP / 2的使用相关联。当我们发现能够正确上传DSYM文件的唯一计算机与其他所有人都具有相同版本的curl
但没有HTTP / 2支持时,我们设法确认了这一点,这显然是在 High Sierra 。我们强制curl
使用HTTP1.1,它就可以了。