iOS应用Fabric日志显示DSYM已上传但仍缺失问题咨询
我来帮你排查这个头疼的问题——日志明明显示symbols提交成功,Fabric却还提示缺失DSYM,这种情况我在日常运维中碰到过好几次,通常是以下几个原因导致的,你可以逐一排查:
确认DSYM与IPA的UUID完全匹配
这是最常见的原因:你上传的DSYM和分发的IPA不是同一构建产物。可以用这两个命令分别验证:# 检查IPA中二进制文件的UUID dwarfdump --uuid ${WORKSPACE}/artifacts/TestDebug-iphoneos/${PROJECT_NAME}.app/${PROJECT_NAME} # 检查DSYM文件的UUID dwarfdump --uuid ${WORKSPACE}/artifacts/TestDebug-iphoneos/${PROJECT_NAME}.app.dSYM输出的UUID必须完全一致,否则Fabric无法关联符号与崩溃日志。
等待Fabric后台处理延迟
有时候上传成功后,Fabric需要10-15分钟来索引和同步符号数据,尤其是较大的DSYM文件。不要刚上传完就立刻检查,先等一会儿再刷新Fabric后台页面。检查是否漏传了其他DSYM文件
如果你的App包含扩展(比如Notification Service Extension)或者依赖了第三方静态库,Xcode打包时会生成多个DSYM文件。你当前的脚本只上传了主App的DSYM,漏掉的其他DSYM也会导致Fabric提示缺失。可以用这个命令找出所有DSYM:find ${WORKSPACE}/artifacts/TestDebug-iphoneos -name "*.dSYM"把找到的所有DSYM都通过
upload-symbols脚本上传。核对API Key与应用权限
虽然日志显示成功,但要确认-a {api-key}中的API Key是否和Fabric后台对应应用的API Key完全一致。另外,检查执行上传脚本的Jenkins账号是否拥有该Fabric应用的符号上传权限。更新upload-symbols工具版本
Pods中的Fabric版本可能过旧,导致上传的符号格式不被当前Fabric后台兼容。可以执行pod update Fabric更新Fabric依赖,或者直接替换为最新版的upload-symbols工具后重新上传。
内容的提问来源于stack exchange,提问作者Eugene Gordin

