# @embrace-io/react-native 中文文档

规范地址：https://npmcn.com/package/%40embrace-io/react-native/

版本：7\.2\.0
npm 元数据更新时间：2026-10-08T17:09:23.998Z
中文译文更新时间：2026-11-13T14:59:57.755Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40embrace-io/react-native
原文对照：https://npmcn.com/package/%40embrace-io/react-native/?lang=original
项目主页：https://github.com/embrace-io/embrace-react-native-sdk
源码仓库：https://github.com/embrace-io/embrace-react-native-sdk

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：100 MB，125 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：expo \>=47\.0\.0，react-native \>=0\.56\.0
- 首次发布：2024-01-16T20:24:44.045Z
- 最新版本发布：2026-10-08T17:09:23.657Z
- 近 30 天下载量：37217（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：36（近 12 个月 9 个）

## 中文简介

拥抱 SDK 的回放原生包装

## 安装

```sh
npm install @embrace-io/react-native
```

也可以使用：`pnpm add @embrace-io/react-native`、`yarn add @embrace-io/react-native`、`bun add @embrace-io/react-native`

## README

# 反应原生拥抱

拥抱收集确定问题和在整合后自动衡量业绩所需的信息. 以下 React Natural 指南提供了如何调用相关功能的简单指导,以便提供团队 需要更多内容(日志和用户信息).

欲了解更多信息,请查阅 [反应原生指南](https://embrace.io/docs/react-native)。 。 。 .

> \[大 从 JavaScript 启动本地 SDK(`sdkConfig.ios`, (中文(简体) ), `sdkConfig.exporters`和 `@embrace-io/react-native-otlp` 将会在下一次主要发行时被删除。 如描述的那样,在本地代码中开始拥抱 [原生设置](https://npmcn.com/package/%40embrace-io/react-native/#readme-native-setup) 财务报告和审定财务报表 [在本地一侧开始拥抱 SDK](https://embrace.io/docs/react-native/integration/session-reporting/#start-embrace-sdk-in-the-native-side)。 。 。 .

# 所需资源

只有拥抱App ID和拥抱API Token.

_如果您需要 App ID 和 API Token , [去我们的仪表板](https://dash.embrace.io/signup/) 创建账户._

# 一体化

## 添加 JavaScript 库

无 :

```sh
npm install @embrace-io/react-native
```

线条 :

```sh
yarn add @embrace-io/react-native
```

对于iOS,您还需要安装或更新应用程序的吊舱:

```sh
cd ios && pod install --repo-update
```

## 原生设置

应用 SDK 所需的本地侧修改有 3 个选项: 使用我们的 Expo 配置插件, 使用 our 设置脚本,或手动应用。 下文介绍每个备选方案.

### 使用 Expo 配置插件

如果你使用博览会 `prebuild` 用于管理本地文件的系统,您可以使用我们的配置插件。 在你身边 `app.json` 用您的 Embrace 应用程序 ID 和 符号上传 API 令牌来配置插件 :

```json
    "plugins": [
        ...
        
        [
            "@embrace-io/react-native/lib/app.plugin.js",
            {
                "androidAppId": "__ANDROID_APP_ID__",
                "iOSAppId": "__IOS_APP_ID__",
                "apiToken": "__SYMBOL_UPLOAD_API_TOKEN__"
            }
        ]
    ],
```

参见 [拥抱方案](https://npmcn.com/package/%40embrace-io/react-native/src/plugin//types.ts) 用于配置插件的整套属性.

要从 Swift 软件包管理器而不是 CocoaPods 中源出 Embrace iOS SDK, 请设置 `iOSUseSPM` 属性。 见 [从 SPM 中测试拥抱 iOS SDK](https://npmcn.com/package/%40embrace-io/react-native/#readme-sourcing-the-embrace-ios-sdk-from-spm) 见下文.

下次你跑的时候 `npx expo prebuild` 本地Android 和 iOS 文件应随所需修改而更新 在拥抱SDK。 注意SDK还有其他的定制和高级特性,例如: [OTLP 导出](https://embrace.io/docs/react-native/features/otlp/#initializing-in-the-native-layer) 目前配置插件只覆盖此初始 SDK 设置.

### 运行设置脚本

JavaScript Embrace SDK 飞船带有一个设置脚本来修改您计划中的文件来添加本地的依赖性. 设置脚本可见于您 `node_modules` 文件夹在 `node_modules/@embrace-io/react-native/lib/scripts/setup`。 。 。 .

```bash
node node_modules/@embrace-io/react-native/lib/scripts/setup/installAndroid.js
```

```bash
node node_modules/@embrace-io/react-native/lib/scripts/setup/installIos.js
```

### 手动

手动应用本地设置 [我们指南的这一部分](https://embrace.io/docs/react-native/integration/add-embrace-sdk/#native-setup) 添加原生SDK,然后遵循步骤 [在本地侧启动 Enbrace SDK](https://embrace.io/docs/react-native/integration/session-reporting/#start-embrace-sdk-in-the-native-side)。 。 。 .

## 从 SPM 中测试拥抱 iOS SDK

默认情况下,Enbrace iOS SDK作为CocoaPods的依赖性被安装,但可以被配置为从Swift套件管理器来源出iOS SDK. SPM 模式使用 React Environment 模式 `spm_dependency` 帮助器,它需要反应原生 QQ 0.75和 `USE_FRAMEWORKS=dynamic`。 。 。 .

如果您正在使用 Expo 配置插件, 请设置 `iOSUseSPM` 属性并添加 [建设前财产](https://docs.expo.dev/versions/latest/sdk/build-properties/) 与 `ios.useFrameworks: "dynamic"`, (中文(简体) ), 见 [插件的读取器](https://npmcn.com/package/%40embrace-io/react-native/src/plugin/README.md#sourcing-the-embrace-ios-sdk-from-spm) 一个完整的例子.

否则在安装吊舱时选择 :

```shell
EMBRACE_USE_SPM=1 USE_FRAMEWORKS=dynamic pod install
```

## 初始化拥抱 SDK

拥抱 SDK 应在本地代码中开始 `initialize` 名为. 博览会配置插件和设置 脚本在 [原生设置](https://npmcn.com/package/%40embrace-io/react-native/#readme-native-setup) 你应当为你而工作,如果你是手动设置的,那末 [在本地一侧开始拥抱 SDK](https://embrace.io/docs/react-native/integration/session-reporting/#start-embrace-sdk-in-the-native-side)。 。 。 .

那就打电话 `initialize` 一次,在您申请的顶层, 在JS方面建立追踪:

```javascript
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 堆栈跟踪, 用于崩溃和错误日志 . 参见我们的指南 [上传符号文件](https://embrace.io/docs/react-native/integration/upload-symbol-files/)。 。 。 .

## 其他特点

其它软件包中保留了我们SDK的附加功能,以便您只包含其中的依赖性 您正在使用和保持总体捆绑大小。 此核心软件包安装后,您可以查看 我们的文档 [特性参考](https://npmcn.com/react-native/features/) 学习更多关于这些附加软件包的知识。 这个 各种屏幕 [测试技巧](https://github.com/embrace-io/embrace-react-native-sdk/tree/main/integration-tests/test-harness) 也提供了这些软件包如何与核心SDK一起使用的例子.

## 解决问题

请参看我们 [完整整合指南](https://embrace.io/docs/react-native/integration/)继续 遇到问题,请 [直接联系我们](mailto:support@embrace.io) 或伸出我们 [社区黑](https://community.embrace.io/)

## 常见问题

### @embrace-io/react-native 是什么？

拥抱 SDK 的回放原生包装

### 如何安装 @embrace-io/react-native？

在项目目录运行 npm install @embrace-io/react-native，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react-native（\>=0\.56\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @embrace-io/react-native 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @embrace-io/react-native 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @embrace-io/react-native 可以商用吗？

@embrace-io/react-native 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @embrace-io/react-native 的下载量有多少？

根据 npm 官方下载统计，@embrace-io/react-native 在 2026/10/14 – 2026/11/12 这 30 天内被下载 37,217 次，日均约 1,241 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @embrace-io/react-native 还在维护吗？

最新版本 7\.2\.0 发布于 2026/10/09（1 个月前）；至今共发布 36 个版本，其中过去 12 个月发布了 9 个；首次发布于 2024/01/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

