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

iOS友盟统计的bug分析

前提:保留打包发布时的myapp.xcarchive文件(注:在xcode-window-Organizer-Archives中可以找到,通过命令打包需要自己当时备份下这个文件)1

前提:保留打包发布时的 myapp.xcarchive文件(注:在xcode-window-Organizer-Archives 中可以找到,通过命令打包需要自己当时备份下这个文件)

1、从myapp.xcarchive中得到myapp.app.dSYMmyapp 两个文件并放到同一个文件夹中

2、找到一条该版本app 在友盟bug统计中崩溃日志的,在其中可以找到崩溃时的地址信息如:0x1001ed424

友盟统计的崩溃log
Application received signal SIGSEGV (
null) ( 0 CoreFoundation 0x000000018400e5b8 + 160 1 libobjc.A.dylib 0x00000001947600e4 objc_exception_throw + 60 2 CoreFoundation 0x000000018400e4dc + 0 3 myapp 0x1005d0fdc myapp + 6098908 4 libsystem_platform.dylib 0x0000000194f7c94c _sigtramp + 52 5 myapp 0x1001ed424 myapp + 2020388 6 myapp 0x1001ed240 myapp + 2019904 7 myapp 0x1001ed364 myapp + 2020196 8 myapp 0x1001e6654 myapp + 1992276 9 myapp 0x10024a85c myapp + 2402396 10 libdispatch.dylib 0x0000000194da53ac + 24 11 libdispatch.dylib 0x0000000194da536c + 16 12 libdispatch.dylib 0x0000000194da9980 _dispatch_main_queue_callback_4CF + 932 13 CoreFoundation 0x0000000183fc5fa4 + 12 14 CoreFoundation 0x0000000183fc404c + 1492 15 CoreFoundation 0x0000000183ef10a4 CFRunLoopRunSpecific + 396 16 GraphicsServices 0x000000018d0935a4 GSEventRunModal + 168 17 UIKit 0x00000001888263c0 UIApplicationMain + 1488 18 myapp 0x10029b5dc myapp + 2733532 19 libdyld.dylib 0x0000000194dcea08 + 4 ) dSYM UUID: BF6D8B68-25AD-3D83-9EFA-2EC4662771CC CPU Type: arm64 Slide Address: 0x0000000100000000 Binary Image: myapp Base Address: 0x0000000100064000

3、打开终端,切换到该文件夹,运行下面命令 终端中将显示错误出现的的详细信息

xcrun atos -arch arm64 -o myapp.app/myapp 0x1001ed424

或者

dwarfdump --lookup 0x1001ed424 -arch arm64 myapp.app.dSYM

注:对一些特殊复杂的bug引起的崩溃,通过此命令的分析,也得不到什么有用的错误信息提示。

关于dSYM

dSYM 在打包的过程中生成的保存app 16 进制函数地址映射信息的中转文件,通过出错的函数地址去查询 dSYM 文件中程序对应的函数名和文件名,从而得到错误详细信息。

iOS 友盟统计的bug分析


推荐阅读
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 自动验证时页面显示问题的解决方法
    在使用自动验证功能时,页面未能正确显示错误信息。通过使用 `dump($info->getError())` 可以帮助诊断和解决问题。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 本文详细介绍了DMA控制器如何通过映射表处理来自外设的请求,包括映射表的设计和实现方法。 ... [详细]
  • Spark中使用map或flatMap将DataSet[A]转换为DataSet[B]时Schema变为Binary的问题及解决方案
    本文探讨了在使用Spark的map或flatMap算子将一个数据集转换为另一个数据集时,遇到的Schema变为Binary的问题,并提供了详细的解决方案。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 自定义滚动条美化页面内容
    当页面内容超出显示范围时,为了提升用户体验和页面美观,通常会添加滚动条。如果默认的浏览器滚动条无法满足设计需求,我们可以自定义一个符合要求的滚动条。本文将详细介绍自定义滚动条的实现过程。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 两个条件,组合控制#if($query_string~*modviewthread&t(&extra(.*)))?$)#{#set$itid$1;#rewrite^ ... [详细]
  • 解决Win10下MySQL连接问题:Navicat 2003无法连接到本地MySQL服务器(10061)
    本文介绍如何在Windows 10环境下解决Navicat 2003无法连接到本地MySQL服务器的问题,包括启动MySQL服务和检查配置文件的方法。 ... [详细]
  • 本文详细介绍了如何利用Duilib界面库开发窗体动画效果,包括基本思路和技术细节。这些方法不仅适用于Duilib,还可以扩展到其他类似的界面开发工具。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
author-avatar
等待那个心中的人_212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有