获取Android和iOS崩溃日志的方法

一、Android崩溃日志

1、获取方法

1.1 通过adb logcat获取

# 清除日志,新手上路时,日志内容很多,对于能必现的日志,可以先清除后重新获取
adb logcat -c
# 然后再次运行崩溃操作,再抓取日志
# 存储日志到当前目录下的 carsh.log 中
adb logcat -d *:W > crash.log 
# W指的是警告以上日志
# 这个日志文件包含了所有打印的日志,需要自己筛选下崩溃日志,比如搜索 begin、crash、Exception
# 为了更精确的筛选日志,可以加入筛选条件
adb logcat -d *:W grep "包名" >crash.log

1.2 通过adb shell dumpsys dropbox命令获取

封装成shell脚本,可以快速打印最新的崩溃日志

#!/bin/bash
# path="/data/system/dropbox"   # 在手机这个目录下存储了崩溃日志
newest_time=$(adb shell dumpsys dropbox | grep 'data_app_crash' | awk 'END {print $1,$2}')
adb shell dumpsys dropbox --print ${newest_time}
# echo -e "时间是:${newest_time}"

2、导出设备Crash日志

adb pull /storage/emulated/0/Android/data/com.xxx.comic/files/xxx/crash

3、导出设备ANR日志

adb bugreport

在这里插入图片描述

4、常见日志类别

常见的异常:javaException(runtimeException):

  • NullPointerException-空指针引用异常
  • ClassCastException-类型强制转换异常
  • IllegalArgumentException-传递非法参数异常
  • ArithmeticException-算术运算异常
  • ArrayStoreException-向数组中存放与声明类型不兼容对象异常
  • IndexOutOfBoundsException-下标越界异常
  • NegativeArraySizeException-创建一个大小为负数的数组错误异常
  • NumberFormatException-数字格式异常
  • SecurityException-安全异常
  • UnsupportedOperationException-不支持的操作异常

二、iOS崩溃日志

1、获取方法

1.1 xcode中打开

打开xcode->windows->Devices and Simulators,选中设备查看View Device Logs,导出对应的log。

1.2 手机上直接获取

手机打开设置 -> 隐私 -> 分析与改进 -> 分析数据,在列表页找到对应项目的crash报告,分享到微信。 (导出的是.ips文件,后缀改为.crash)

2、Crash 头部信息

Incident Identifier:每个 Crash 生成的唯一的 uuid

CrashReporter Key:CrashReporter 的 uuid,如果自己捕获日志,这个可以忽略

Hardware Model:机型,如:iPhone12,3

Process:进程名和进程ID

Path:进程的可执行文件路径

Identifier:Info.plist 中配置的 CFBundleIdentifier 值,如:com.xxx.comic

Version:CFBundleVersion (CFBundleVersionShort) 即应用的Build号+版本号,如:7.58.0 (64906)

Architecture:机型的 CPU 架构,但是不是详细的架构名。比如 arm64e 在这里也是 ARM-64

Parent Process:父进程和进程ID

Data/Time:Crash发生的具体时间,如:2023-12-26 14:54:50.565 +0800

Launch Time:进程启动时间

OS Version:iOS 系统版本和 build号,如:iPhone OS 16.0.2 (Build 20A380)

Report Version:Crash日志格式的版本号,一般是 104。如果这个version偏高,用系统的symbolicatecrash命令不能符号化日志,一般如果看到是204, 改成104之后symbolicatecrash就可以符号化了

参考:https://www.cnblogs.com/-lisunman/p/11613029.html

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我不是很清楚Flutter打包androidios的具体流程,但是根据我从网上查询的信息,可以通过使用Flutter CLI来打包AndroidiOS应用程序,并使用Flutter提供的构建工具来生成最终的应用程序文件。 ### 回答2: Flutter是一种开源的跨平台移动应用开发框架,它可以同时打包AndroidiOS两个平台的应用。下面将分别介绍Flutter打包AndroidiOS的步骤。 Flutter打包Android应用的步骤如下: 1. 首先,我们需要在Flutter项目的根目录下执行命令`flutter build apk`,该命令会利用Flutter的打包工具将代码编译成Android应用可执行文件。 2. 打包完成后,在项目的`build/app/outputs/apk/release`路径下会生成一个名为`app.apk`的文件,这就是我们需要的Android安装包。 3. 如果需要对该安装包进行签名,可以使用Java开发工具包(JDK)自带的`keytool`生成一个密钥库文件(keystore),然后利用Android Studio自带的`apksigner`工具对APK进行签名。 4. 最后,我们可以将签名后的APK安装包通过各种方式进行发布和安装。 Flutter打包iOS应用的步骤如下: 1. 在Flutter项目的根目录下执行命令`flutter build ios`,该命令会利用Flutter的打包工具将代码编译成iOS应用可执行文件。 2. 打包完成后,在项目的`build/ios/iphoneos`路径下会生成一个名为`Runner.app`的文件,这就是我们需要的iOS应用。 3. 接下来,我们需要在Xcode中打开`Runner.xcworkspace`文件,并配置开发者账号和相关证书。 4. 在Xcode中选择设备或模拟器,然后点击菜单栏的`Product -> Archive`选项,Xcode将会对应用进行打包。 5. 打包完成后,在`Xcode -> Window -> Organizer`界面中可以找到App Archives,我们可以选择对应的应用版本进行导出或发布。 总结来说,Flutter通过使用自身的打包工具,可以快速便捷地打包AndroidiOS应用,对于开发者来说非常方便。同时,开发者还可以根据需要对打包后的应用进行签名或发布。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值