热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jenkins五:自动生成dsYM文件及zip压缩

前一篇:Jenkins四:构建触发器定时任务后一篇:Jenkins六:创建自己的Jenkins插件前言iOS开发中会产生线上崩溃bug,为了搜集这些bug并定位对于的错误地方,主要

前一篇:Jenkins四:构建触发器定时任务
后一篇:Jenkins六:创建自己的Jenkins插件

前言

iOS开发中会产生线上崩溃bug,为了搜集这些bug并定位对于的错误地方,主要方式是搜集crash,然后利用每次打包生成的dsYM文件解析,关于这一块的文件和专门处理线上崩溃的第三方平台也很多,个人比较常用的是bugly、友盟等。具体原理及方法参考:

  • 手动解析CrashLog之——原理篇
  • Bugly iOS 符号表配置
  • 全面的理解和分析IOS的崩溃日志

进入正题,Jenkins自动打包时利用xcode提供的工具dsymutil可以生成dsYM文件,将生成的dsYM压缩后就可以进一步上传到bugly等平台或自己公司服务器

一、生成dsYM文件的命令如下:

#完整命令
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/wangzz/Library/Developer/Xcode/DerivedData/YourApp-cqvijavqbptjyhbwewgpdmzbmwzk/Build/Products/Debug-iphonesimulator/YourApp.app/YourApp -o YourApp.dSY
#简化命令,xxxx是路径跟名字,根据个人的项目来设置或定义
dsymutil "./Release-iphoneos/xxx.app/xxx" -o "xxxx/xxx.app.dSYM"

二、压缩dsYM文件的命令如下:

zip -q -r -m -o "xxxx.app.dSYM.zip" "xxxxx.app.dSYM"

三、上传压缩dsYM文件的命令如下:

#curl -k "https://api.bugly.qq.com/openapi/file/upload/symbol?app_key=xxxxxx&app_id=xxxxxx" --form "api_version=1" --form "app_id=xxxxxx" --form "app_key=xxxxxx" --form "symbolType=2" --form "bundleId=xxx" --form "productVersion=xxxx" --form "channel=xxx" --form "fileName=xxxx.app.dSYM.zip" --form "file=@xxx.app.dSYM.zip" --verbose

  • dSYM如何分析?
    查看ipa包和dsYM文件是否是一一对应

1.查看app的UUID,terminal中输入命令 : dwarfdump --uuid xx.app/xx (xx代表你的项目)
2.查看xx.app.dSYM文件d的UUID,在terminal中输入命令 :dwarfdump -uuid xx.app.dSYM
3. 查看crash文件内第一行Incident Identifier 就是该crash文件的UUID

推荐阅读
author-avatar
风语飘散
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有