移动监控 iOS SDK常见问题排查
Q1、在接入SDK后,发现web端页面没有对应的数据信息上报。
第一步检查初始化日志信息,开启所有功能的首次初始化日志如下:
上图总共标识了有4个步骤:
以上4步正常说明初始化正常后,接下来是触发上报步骤。
可先触发示例demo,根据接入文档的上报日志信息查看对应信息。
Q2、启动监控没有数据显示
1、请确保是否在工程的main函数进行打点操作,加入以下函数。
[QAPMLaunchProfile didEnterMain];
2、慢启动列表无数据显示
冷启动列表数据默认后台配置下发启动阈值是4000ms,验证数据时可以在首屏显示阶段主线程slepp 4s左右。
3、 热启动列表无数据显示
热启动列表数据默认后台配置下发启动阈值是2000ms,且是退后台超3min返回前台,验证数据时可以在后台返回前台时sleep 2s左右。
Q3、卡顿问题列表没有数据显示
接入成功后可以多操作APP界面、一般主线程卡顿了200ms就会上报。
Q4、流畅度列表无数据显示
此页面表现的是掉帧率、需要根据文档说明在对应的页面进行打点操作、且是下次启动上报数据。
Q5、webview无数据展示问题
Webview借助的是framework里面的js_sdk.js进行数据采集、需要在对应的webview页面进行打点,请根据文档操作,然后查看对应的上报日志信息
Q6、http网络数据展示问题
点击触发正常的http网络请求即可
说明:为了能够看到webview和网络监控等慢请求数据,在测试手机上可以将设置项-》开发者-》Network Link Conditioner打开,选择若网进行测试。
Q7、崩溃列表存在部分类型无数据问题
1、foom下的爆内存crash在app store环境下有0.02的抽样,需要触发oom后下次启动才上报数据
2、deadlock下的crash问题是在发生死锁5s时长后且不会恢复到原有状态才会在下次启动上报数据
3、normalCrash问题上报在崩溃线程的栈顶发现不是自己的业务堆栈信息。
@1检查业务代码是否有在主线程做crash堆栈拦截处理。
@2检查业务工程是否有添加第三方监控crash性能的SDK,无论是否初始化。
保证以上两点,工程里面没有对相应的代码编译即可。
Q8、如何确保上报的卡顿、crash等数据能够正常翻译
1、符号表生成方式以及压缩方法、debug模式下如下图所示生成、release模式回默认打开此项。
2、build好工程后会在工程默认的Products下生成符号表文件,可以Show in Finde的方式进入,如下图所示的QAPM_Example.app.dSYM文件即为主工程的符号表文件
3、符号表压缩
一般的业务工程会用到第三方库文件,当用到的是动态库(如网络AFNetWorking)时会在release环境下生成第三方符号表文件,为了确保翻译的准确性,请将第三方符号表和业务符号表放置同一个文件夹进行进行压缩上传。
4、符号表上传
符号表准确性校验,可以通过dwarfdump –uuid指令读取出符号表uuid,然后和卡顿或者crash问题列表详情页面的构建ID进行对比,两者一致如下图所示即可上传zip压缩包。
Q9、为了在研发阶段保证所有数据能正常上报,请在Web页面添加白名单操作,确保所有功能命中抽样,操作流程见接入文档。