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中的崩溃,脚本错误等