iOS 常见问题
1. 接入 SDK 后崩溃没有上报
- 检查AppId是否设置正确;
- SDK 的初始化是否在Crash之前完成;
- 网络是否可用;
- 在测试时若之前有上报突然不上报了,可能是触发了bugly的流量保护机制,请卸载App后再测试(并不会影响真实用户Crash准确率)
- 是否有使用具有捕获Crash功能的其他第三方组件,若有将bugly的初始化放在该组件后面;
2. 检查卡顿的依据和上报时机是什么?
iOS 卡顿检查的依据是监控主线程 Runloop 的执行,观察执行耗时是否超过预定阀值(默认阀值为3000ms) 在监控到卡顿时会立即记录线程堆栈到本地,在App从后台切换到前台时,执行上报。
3. 上传符号表为什么需要java环境?
我们符号表提取工具依赖于java环境,符号表工具只提取必要的信息,可以大幅度减少需要上传的文件体积。
4. 符号表上传失败提示uuid不匹配
每次构建,符号表的uuid都会发生改变,所以需要当次构建生成的符号表文件才能还原当次构建后上传的crash。
5. 依赖库后缀名不同如:libc++.dylib与libc++.tbd
使用iOS SDK 9.0以上编译时添加依赖库libc++.tbd,9.0以下添加libc++.dylib
注意:
- 如果你的 Xcode 工程的 C++ Standard Library 配置为libstdc++。
- 请选择Bugly_libstdc++目录下的Bugly.framework。
- 并将libc++.dylib替换为libstdc++.dylib
6. 不同SDK的功能都有哪些?
- iOS SDK:用于收集iOS App的崩溃、卡顿,统计App的运营数据等
- iOS App Extension SDK:用于收集iOS App Extension的崩溃,在集成时,需要集成在你的App的Extension(Extension是iOS 8中引入的一个非常重要的新特性,如果你的App没有添加Extension,则不用集成iOS App Extension SDK)
- watchOS SDK:用于收集基于watchOS 2.0开发的App的崩溃
- Cocos Plugin:用于收集基于Cocos引擎的App中的崩溃,脚本错误等
- Unity Plugin:用于收集基于Unity引擎的App中的崩溃,脚本错误等