技术经验谈 技术经验谈
首页
  • 最佳实践

    • 抓包
    • 数据库操作
  • ui

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 总纲
  • 整体开发框架
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

hss01248

一号线程序员
首页
  • 最佳实践

    • 抓包
    • 数据库操作
  • ui

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 总纲
  • 整体开发框架
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 最佳实践

    • Android数据库操作最佳实践
    • 基于蒲公英平台的app发布,更新,反馈功能的实现
    • testRss
  • ui

  • 优化

  • aop

  • apm

  • 架构

  • webview

  • rxjava

  • activity-fragment-view的回调和日志
  • Android加密相关
  • Android命令行操作
  • app后台任务
  • kotlin
  • kotlin漫谈
  • kotlin语言导论
  • sentry上传mapping.txt文件
  • so放于远程动态加载方案
  • states
  • Xposed模块开发
  • 一个关于manifest合并的猥琐操作
  • 玩坏android存储
  • 获取本app的安装来源信息
  • Android
hss01248
2021-04-12

sentry上传mapping.txt文件

# sentry上传mapping文件

# 首先看官方文档:

https://docs.sentry.io/platforms/android/proguard/

有gradle插件可直接使用

然而按文档配置gradle插件后发现,根本没有用.

去查看插件源码 (opens new window),发现这个gradle插件依赖命令行工具, 需要预先安装sentry-cli命令行,没有就无法生效.

image-20210412143551811

image-20210412143818477

一个gradle插件生效还要先手动安装命令行工具,也真TM蛋疼.

直接去命令行先看看是个什么鬼: 无非就是个文件上传请求而已:

命令行工具的安装:https://docs.sentry.io/product/cli/installation/

mapping文件上传的命令:https://docs.sentry.io/product/cli/dif/#proguard-mapping-upload

工具安装好后:

需要在.bash_profile里配置环境变量:

image-20210412144150772

sentry-cli info 命令查看sentry的环境变量配置.

然后运行:

sentry-cli  upload-proguard /Users/工程目录/app/build/outputs/mapping/release/mapping.txt --org org名 --project project名  --log-level=debug
1

然后可以看到:

会自动上传mapping和符号表:

image-20210412145252093

image-20210412145132560

可以看到权限校验模式为: Authorization: Bearer Token

那么,自己写个gradle插件,直接使用okhttp来执行网络请求即可.

在sentry界面上可以看到:

image-20210412145614184

遗留问题: 怎么给mapping设置版本?或者说mapping文件怎么和实际exception关联?

通过uuid:

gradle插件上传mapping时,把文件uuid写到一个properties里,打包到apk中.

具体写properties的代码在cli里,但从读文件的地方可以看到写的是什么,可自己实现写的方法.

对应的完整命令行:

sentry-cli upload-proguard \
    --android-manifest app/build/intermediates/manifests/full/release/AndroidManifest.xml \
    --write-properties app/build/intermediates/assets/release/sentry-debug-meta.properties \
    app/build/outputs/mapping/release/mapping.txt
1
2
3
4

那么这个apk每次上报sentry时会带上这个uuid,就可以关联到对应的mapping文件:

image-20210412151042068

image-20210412151405894

编辑 (opens new window)
上次更新: 2022/08/25, 20:20:31
kotlin语言导论
so放于远程动态加载方案

← kotlin语言导论 so放于远程动态加载方案→

最近更新
01
截图后的自动压缩工具
12-27
02
图片视频文件根据exif批量重命名
12-27
03
chatgpt图片识别描述功能
02-20
更多文章>
Theme by Vdoing | Copyright © 2020-2025 | 粤ICP备20041795号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式