接入 SDK 之后,为什么 web 端页面没有对应的数据信息上报?
请先检查初始化日志信息。可以触发示例 Demo,根据接入文档的上报日志信息查看对应信息,开启所有功能的首次初始化日志如下:




注意:
启动、崩溃/anr、webview 的 jserror 这些功能是全量采集,卡顿、http 网络、webview 的慢请求、掉帧是抽样采集,测试流程内可配置白名单验证数据的上报,具体配置白名单流程请参照问题9进行添加。
启动监控后,为什么没有数据显示?
1. 请确保在工程的 main 函数进行打点操作,并已加入
[QAPMLaunchProfile didEnterMain]
函数。2. 启动列表无数据显示。
冷启动和首次启动列表数据默认后台配置下发启动阈值是4000ms,验证数据时可以在首屏显示阶段主线程 Sleep 4s左右;
热启动列表数据默认后台配置下发启动阈值是2000ms,且是退后台超3min返回前台,验证数据时可以在后台返回前台时 Sleep 2s左右。
卡慢问题列表为什么没有数据显示?
流畅度列表为什么无数据显示?
为什么 webview 无数据展示?
webview 借助的是 framework 里面的 js_sdk.js 进行数据采集,需要在 webview 页面的 didFinishNavigation 方法下进行打点。
为什么 http/webview 网络数据未展示?
说明:
为了能够看到 webview 和网络监控等慢请求数据,在测试手机上可以将设置项 > 开发者中的 Network Link Conditioner 打开,选择弱网进行测试。
为什么崩溃列表存在部分类型无数据?
1. foom 下的爆内存 crash 在 appstore 环境下有0.02的抽样,需要触发 oom 后,在下次启动才上报数据。
2. deadlock 下的 crash 问题是在发生死锁5s时长后,且不会恢复到原有状态,才会在下次启动上报数据。
3. normalCrash 问题上报在崩溃线程的栈顶发现不是自己的业务堆栈信息,请确保工程里面没有对相应的代码编译。
检查业务代码是否有在主线程做 crash 堆栈拦截处理。
检查业务工程是否有添加第三方监控 crash 性能的 SDK,无论是否初始化。
堆栈没有翻译,如何处理?
1. 符号表生成方式以及压缩方法、debug 模式下如下图所示生成、release 模式回默认打开此项。


2. 工程创建完成后,会在工程默认的 Products 下生成符号表文件,可以使用 Show in Finde 的方式进入,如下图所示的
QAPM_Example.app.dSYM
文件即为主工程的符号表文件。

3. 符号表压缩。
一般的业务工程会用到第三方库文件,当用到的是动态库(如网络 AFNetWorking)时会在 release 环境下生成第三方符号表文件,为了确保翻译的准确性,请将第三方符号表和业务符号表放置同一个文件夹进行进行压缩上传。
说明:
在压缩多符号表时,需要全选符号表然后进行压缩,并用英文命名 zip 文件,不能直接压缩文件夹。
4. 符号表上传。
符号表准确性校验,可以通过
dwarfdump –uuid
指令读取出符号表 uuid,然后和卡顿或者crash问题列表详情页面的构建 ID 进行对比,两者一致如下图所示即可上传 zip 压缩包。

数据上报缺失时如何处理?
例如这里添加了用户 “qwerdf” 的白名单,那么在初始化代码的地方应填写
[QAPMConfig getInstance].userId = @"qwerdf"
。
