故障排查¶
SDK 初始化异常校验¶
查看 Logcat
确认是否存在日志 Level
为 Error
,Tag
为 [FT-SDK]
前缀的日志
在 Debug 环境,当您配置观测云 SDK 并首次运行该应用程序后,请在 Xcode 中检查您的调试器控制台,SDK 会使用断言检查多项配置的正确性并在配置错误时崩溃并输出相关警告。
eg:当配置 SDK 时,未设置 datakit metrics 写入地址,程序会崩溃,并在控制台输出警告⚠️。
开启 Debug 调试¶
您可以通过以下配置,开启 SDK 的 debug 功能。
let config: FTMobileConfig = {
serverUrl: Config.SERVER_URL,
debug: true
};
FTMobileReactNative.sdkConfig(config);
建议Release 版本发布时,关闭这个配置
Android Logcat 和 iOS Xcode Console 日志示例
SDK 正常运行但是没有数据¶
-
排查 Datakit 是否正常运行
-
确认 SDK 上传地址
datakitUrl
或datawayUrl
配置正确,并正确初始化。debug 模式下, 查看 Android Logcat 或 iOS Xcode Console 的同步日志。 -
datakit 是否往对应工作空间上传数据,是否处于离线状态。这个可以通过登录观测云,查看「基础设施」来确认这个问题。
数据丢失¶
丢失部份数据¶
-
如果丢失 RUM 某一个 Session 数据或 Log,Trace 中的几条数据时,首先需要排除是否在 FTRUMConfig, FTLoggerConfig, FTTraceConfig 设置了
sampleRate < 1
; -
采集到 RUM 数据不全,没有 Resource 或 Action 数据?
Resource 和 Action 数据是与 View 进行绑定的,需要确保有
FTReactNativeRUM.startView
操作,可参考 RUM-View 文档来实现 View 事件采集。 -
排查上传数据设备网络与安装 datakit 设备网路与负载问题。
兼容问题¶
react-native-navigation 运行兼容问题¶
ReactTextShadowNode.UNSET 找不到符号¶
这是由于 react-native-navigation 版本兼容问题导致,相关 issue 查看这里。通过更改或下载替换 ReactTypefaceUtils.java
来修正这个问题。
找不到模块 react/jsx-runtime
¶
影响范围:SDK 版本 0.3.0 && React 版本 < 16.14.0
原因:SDK 内部使用到 react/jsx-runtime
在 React >= 16.14.0 才支持。
修复建议:
- 升级 SDK 版本 >= 0.3.1
注意:不建议采用本地路径方式添加 @cloudcare/react-native-mobile
依赖库,可能导致错误无法修复。
原生与 React Native 混合开发¶
报错:Cannot read properties of undefined (reading 'addError')¶
原因:RN SDK 版本与 Native SDK 版本不兼容或安装不完整导致。
问题验证方法:
在 Android 项目根目录,终端执行命令 ./gradlew app:dependencies
,检查输出结果中是否包含 cloudcare_react-native-mobile
。
cloudcare_react-native-mobile
是 RN 项目添加 观测云 RN SDK 依赖项后 ,在 Android 端安装的依赖库。
检查 Podfile.lock
文件确认是否存在 FTMobileReactNativeSDK
依赖项。
FTMobileReactNativeSDK
是 RN 项目集成 观测云 RN SDK 后,在 iOS 端安装的依赖库。
修复建议:
-
版本兼容性检查
- 确保 RN SDK 与原生 SDK 版本匹配
- RN SDK 对应原生 SDK 版本信息查看路径:
node_modules/@cloudcare/react-native-mobile/android/build.gradle
node_modules/@cloudcare/react-native-mobile/FTMobileReactNativeSDK.podspec
-
重新安装依赖
- 清理项目缓存:
- 重新安装依赖:
通过以上步骤,可以有效解决因版本不兼容或安装不完整导致的该错误。