反应原生拥抱
拥抱收集确定问题和在整合后自动衡量业绩所需的信息. 以下 React Natural 指南提供了如何调用相关功能的简单指导,以便提供团队 需要更多内容(日志和用户信息).
欲了解更多信息,请查阅 反应原生指南。 。 。 .
[大 从 JavaScript 启动本地 SDK(
sdkConfig.ios, (中文(简体) ),sdkConfig.exporters和@embrace-io/react-native-otlp将会在下一次主要发行时被删除。 如描述的那样,在本地代码中开始拥抱 原生设置 财务报告和审定财务报表 在本地一侧开始拥抱 SDK。 。 。 .
所需资源
只有拥抱App ID和拥抱API Token.
如果您需要 App ID 和 API Token , 去我们的仪表板 创建账户.
一体化
添加 JavaScript 库
无 :
npm install @embrace-io/react-native
线条 :
yarn add @embrace-io/react-native
对于iOS,您还需要安装或更新应用程序的吊舱:
cd ios && pod install --repo-update
原生设置
应用 SDK 所需的本地侧修改有 3 个选项: 使用我们的 Expo 配置插件, 使用 our 设置脚本,或手动应用。 下文介绍每个备选方案.
使用 Expo 配置插件
如果你使用博览会 prebuild 用于管理本地文件的系统,您可以使用我们的配置插件。 在你身边
app.json 用您的 Embrace 应用程序 ID 和 符号上传 API 令牌来配置插件 :
"plugins": [
...
[
"@embrace-io/react-native/lib/app.plugin.js",
{
"androidAppId": "__ANDROID_APP_ID__",
"iOSAppId": "__IOS_APP_ID__",
"apiToken": "__SYMBOL_UPLOAD_API_TOKEN__"
}
]
],
参见 拥抱方案 用于配置插件的整套属性.
要从 Swift 软件包管理器而不是 CocoaPods 中源出 Embrace iOS SDK, 请设置 iOSUseSPM 属性。 见
从 SPM 中测试拥抱 iOS SDK 见下文.
下次你跑的时候 npx expo prebuild 本地Android 和 iOS 文件应随所需修改而更新
在拥抱SDK。 注意SDK还有其他的定制和高级特性,例如: OTLP 导出
目前配置插件只覆盖此初始 SDK
设置.
运行设置脚本
JavaScript Embrace SDK 飞船带有一个设置脚本来修改您计划中的文件来添加本地的依赖性.
设置脚本可见于您 node_modules 文件夹在 node_modules/@embrace-io/react-native/lib/scripts/setup。 。 。 .
node node_modules/@embrace-io/react-native/lib/scripts/setup/installAndroid.js
node node_modules/@embrace-io/react-native/lib/scripts/setup/installIos.js
手动
手动应用本地设置 我们指南的这一部分 添加原生SDK,然后遵循步骤 在本地侧启动 Enbrace SDK。 。 。 .
从 SPM 中测试拥抱 iOS SDK
默认情况下,Enbrace iOS SDK作为CocoaPods的依赖性被安装,但可以被配置为从Swift套件管理器来源出iOS SDK. SPM 模式使用 React Environment 模式 spm_dependency 帮助器,它需要反应原生 QQ 0.75和 USE_FRAMEWORKS=dynamic。 。 。 .
如果您正在使用 Expo 配置插件, 请设置 iOSUseSPM 属性并添加
建设前财产 与 ios.useFrameworks: "dynamic", (中文(简体) ),
见 插件的读取器 一个完整的例子.
否则在安装吊舱时选择 :
EMBRACE_USE_SPM=1 USE_FRAMEWORKS=dynamic pod install
初始化拥抱 SDK
拥抱 SDK 应在本地代码中开始 initialize 名为. 博览会配置插件和设置
脚本在 原生设置 你应当为你而工作,如果你是手动设置的,那末
在本地一侧开始拥抱 SDK。 。 。 .
那就打电话 initialize 一次,在您申请的顶层, 在JS方面建立追踪:
import React, { useEffect } from 'react'
import { initialize } from '@embrace-io/react-native';
const App = () => {
useEffect(() => {
const initEmbrace = async () => {
try {
const isStarted = await initialize({ trackUnhandledRejections: true });
if (isStarted) {
// do something
}
} catch {
console.log("Error initializing Embrace SDK");
}
};
initEmbrace();
}, []); // you should only initialize the Embrace SDK once.
// regular content of the application
return (
...
);
}
export default App
上传源地图
Embrace SDK 允许您查看本地和 JavaScript 堆栈跟踪, 用于崩溃和错误日志 . 参见我们的指南 上传符号文件。 。 。 .
其他特点
其它软件包中保留了我们SDK的附加功能,以便您只包含其中的依赖性 您正在使用和保持总体捆绑大小。 此核心软件包安装后,您可以查看 我们的文档 特性参考 学习更多关于这些附加软件包的知识。 这个 各种屏幕 测试技巧 也提供了这些软件包如何与核心SDK一起使用的例子.