前一篇:Jenkins四:构建触发器定时任务
后一篇:Jenkins六:创建自己的Jenkins插件
前言
iOS开发中会产生线上崩溃bug,为了搜集这些bug并定位对于的错误地方,主要方式是搜集crash,然后利用每次打包生成的dsYM文件解析,关于这一块的文件和专门处理线上崩溃的第三方平台也很多,个人比较常用的是bugly、友盟等。具体原理及方法参考:
进入正题,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