- android/setup.md: 新增 sdk-bugcollect、配置文件、BugCollect 章节 - ios/setup.md: 新增配置文件章节、setUserInfo - rn/setup.md: withXuqmConfig Metro 插件、@xuqm/rn-bugcollect - flutter/setup.md: 新增配置文件章节 - harmony/setup.md: 新增配置文件章节 - guide/quickstart.md: 更新配置文件获取流程 - guide/concepts.md: 新增 BugCollect 服务概念 - guide/flow.md: 更新服务流程 Co-Authored-By: Claude <noreply@anthropic.com>
150 行
3.3 KiB
Markdown
150 行
3.3 KiB
Markdown
# React Native 安装配置
|
||
|
||
**包名**:`@xuqm/rn-sdk` · **版本**:0.2.x · **RN 版本**:≥ 0.76.0
|
||
|
||
> `rn-sdk` 作为内部基础包存在,业务方正常接入时使用 `@xuqm/rn-common` 和各业务模块即可。
|
||
|
||
---
|
||
|
||
## npm / yarn 安装
|
||
|
||
在项目根目录创建 `.npmrc`:
|
||
|
||
```
|
||
@xuqm:registry=https://nexus.xuqinmin.com/repository/npm-hosted/
|
||
```
|
||
|
||
只使用基础能力时,直接安装 `rn-common`:
|
||
|
||
```bash
|
||
yarn add @xuqm/rn-common
|
||
```
|
||
|
||
按需安装模块时,`rn-im` / `rn-push` / `rn-update` 都会自动带上 `rn-common` 和 `rn-sdk`:
|
||
|
||
```bash
|
||
yarn add @xuqm/rn-common @xuqm/rn-im
|
||
# 或全量安装
|
||
yarn add @xuqm/rn-common @xuqm/rn-im @xuqm/rn-push @xuqm/rn-update @xuqm/rn-bugcollect
|
||
```
|
||
|
||
---
|
||
|
||
## 自动 / 手动链接
|
||
|
||
React Native 0.60+ 支持**自动链接**,安装后执行:
|
||
|
||
```bash
|
||
cd ios && pod install
|
||
```
|
||
|
||
> 若使用 Expo,需先执行 `expo prebuild` 生成原生项目后再执行 `pod install`。
|
||
|
||
---
|
||
|
||
## iOS 配置
|
||
|
||
### Pod 安装
|
||
|
||
```bash
|
||
cd ios
|
||
pod install
|
||
```
|
||
|
||
### 权限声明
|
||
|
||
在 `Info.plist` 中添加:
|
||
|
||
```xml
|
||
<key>NSCameraUsageDescription</key>
|
||
<string>需要访问相机</string>
|
||
<key>NSPhotoLibraryUsageDescription</key>
|
||
<string>需要访问相册</string>
|
||
<key>NSMicrophoneUsageDescription</key>
|
||
<string>需要访问麦克风</string>
|
||
```
|
||
|
||
---
|
||
|
||
## Android 配置
|
||
|
||
### Gradle 仓库
|
||
|
||
在 `android/build.gradle` 中确保包含:
|
||
|
||
```gradle
|
||
allprojects {
|
||
repositories {
|
||
maven { url "https://nexus.xuqinmin.com/repository/android/" }
|
||
google()
|
||
mavenCentral()
|
||
}
|
||
}
|
||
```
|
||
|
||
### 最低版本
|
||
|
||
- `minSdkVersion = 24`
|
||
- `compileSdkVersion = 34`
|
||
|
||
---
|
||
|
||
## 依赖关系
|
||
|
||
```
|
||
@xuqm/rn-sdk(meta-package,不建议业务方直接引用)
|
||
├── @xuqm/rn-common ← 初始化、网络、设备信息
|
||
├── @xuqm/rn-im ← IM 模块(依赖 WatermelonDB)
|
||
├── @xuqm/rn-push ← Push 模块
|
||
├── @xuqm/rn-update ← 更新模块
|
||
├── @xuqm/rn-license ← 授权管理模块(依赖 react-native-quick-crypto)
|
||
└── @xuqm/rn-bugcollect ← 异常采集模块(崩溃、ANR 上报)
|
||
```
|
||
|
||
---
|
||
|
||
## Metro 配置
|
||
|
||
使用 `withXuqmConfig` Metro 插件替代手动 alias 配置。该插件会自动处理 RN SDK 的模块解析,并注入 `.xuqmconfig` 配置文件:
|
||
|
||
```js
|
||
// metro.config.js
|
||
const { withXuqmConfig } = require('@xuqm/rn-common/metro')
|
||
|
||
module.exports = withXuqmConfig({
|
||
// 你的原始 Metro 配置
|
||
})
|
||
```
|
||
|
||
> 不再需要手动配置 `resolver.extraNodeModules` 或 alias。
|
||
|
||
---
|
||
|
||
## 配置文件
|
||
|
||
从平台控制台下载应用的 `.xuqmconfig` 配置文件(例如 `识校宝.xuqmconfig`),放置到 `src/assets/config/` 目录。`withXuqmConfig` 插件会自动发现并注入该配置,SDK 运行时自动读取,无需手动指定路径。
|
||
|
||
文件名不限,只要扩展名为 `.xuqmconfig` 即可。
|
||
|
||
---
|
||
|
||
## BugCollect
|
||
|
||
异常采集模块可自动收集 JS 异常、原生崩溃日志并上报到服务端。
|
||
|
||
```bash
|
||
yarn add @xuqm/rn-bugcollect
|
||
```
|
||
|
||
集成了 `withXuqmConfig` 插件后,BugCollect 会随 SDK 自动初始化,无需额外代码。采集服务地址从 `.xuqmconfig` 配置中自动读取。
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
- [RN IM 接入 →](./im)
|
||
- [RN 群聊 →](./group)
|
||
- [RN 推送接入 →](./push)
|
||
- [RN 版本更新 →](./update)
|
||
- [RN 授权管理 →](./license)
|