@arms/rum-reactnative 0.1.2 → 0.1.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -1
- package/RumSdkReactnative.podspec +28 -0
- package/android/build.gradle +83 -0
- package/android/gradle.properties +6 -0
- package/android/src/main/AndroidManifest.xml +13 -0
- package/android/src/main/java/com/rumsdkreactnative/RumSdkReactnativeModule.kt +512 -0
- package/android/src/main/java/com/rumsdkreactnative/RumSdkReactnativePackage.kt +33 -0
- package/android/src/main/java/com/rumsdkreactnative/crash/CrashContextManager.kt +157 -0
- package/android/src/main/java/com/rumsdkreactnative/crash/CrashHandler.kt +444 -0
- package/android/src/main/java/com/rumsdkreactnative/crash/CrashInitProvider.kt +50 -0
- package/android/src/main/java/com/rumsdkreactnative/crash/NdkCrashHandler.kt +66 -0
- package/android/src/main/jni/CMakeLists.txt +21 -0
- package/android/src/main/jni/rum_backtrace.c +144 -0
- package/android/src/main/jni/rum_crash_handler.c +200 -0
- package/android/src/main/jni/rum_crash_writer.c +442 -0
- package/android/src/main/jni/rum_module_info.c +316 -0
- package/android/src/main/jni/rum_module_info.h +54 -0
- package/android/src/main/jni/rum_test_crash.cpp +55 -0
- package/app.plugin.js +11 -0
- package/docs/ReactNative SDK/351/205/215/347/275/256/345/217/202/350/200/203.md" +671 -0
- package/docs/SDK /347/211/210/346/234/254/350/257/264/346/230/216.md" +12 -0
- package/docs//346/216/245/345/205/245ReactNative/345/272/224/347/224/250.md +238 -0
- package/ios/PrivacyInfo.xcprivacy +93 -0
- package/ios/RumCrashReporter.h +38 -0
- package/ios/RumCrashReporter.mm +861 -0
- package/ios/RumSdkReactnative.h +5 -0
- package/ios/RumSdkReactnative.mm +291 -0
- package/ios/fishhook/fishhook.c +264 -0
- package/ios/fishhook/fishhook.h +76 -0
- package/lib/commonjs/NativeRumSdkReactnative.js +50 -0
- package/lib/commonjs/collector/action/index.js +108 -0
- package/lib/commonjs/collector/exception/crash.js +148 -0
- package/lib/commonjs/collector/exception/index.js +238 -0
- package/lib/commonjs/collector/index.js +42 -0
- package/lib/commonjs/collector/resource/api.js +286 -0
- package/lib/commonjs/collector/view/perf.js +79 -0
- package/lib/commonjs/collector/view/pv.js +88 -0
- package/lib/commonjs/expoConfigPlugin.js +37 -0
- package/lib/commonjs/index.js +29 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/plugin.js +47 -0
- package/lib/commonjs/processor/default-processor.js +27 -0
- package/lib/commonjs/processor/session-processor.js +47 -0
- package/lib/commonjs/reporter/index.js +148 -0
- package/lib/commonjs/reporter/monitor-reporter.js +43 -0
- package/lib/commonjs/shell.js +91 -0
- package/lib/commonjs/types/client.js +6 -0
- package/lib/commonjs/types/crash.js +37 -0
- package/lib/commonjs/types/index.js +2 -0
- package/lib/commonjs/utils/action.js +305 -0
- package/lib/commonjs/utils/api.js +83 -0
- package/lib/commonjs/utils/base.js +95 -0
- package/lib/commonjs/utils/crash.js +146 -0
- package/lib/commonjs/utils/platform.js +162 -0
- package/lib/commonjs/utils/session.js +158 -0
- package/lib/commonjs/utils/url.js +59 -0
- package/lib/commonjs/utils/view.js +93 -0
- package/lib/module/NativeRumSdkReactnative.js +47 -0
- package/lib/module/collector/action/index.js +45 -10
- package/lib/module/collector/exception/crash.js +143 -0
- package/lib/module/collector/exception/index.js +144 -46
- package/lib/module/collector/index.js +8 -0
- package/lib/module/collector/resource/api.js +6 -6
- package/lib/module/collector/view/pv.js +11 -0
- package/lib/module/expoConfigPlugin.js +33 -0
- package/lib/module/index.js +1 -0
- package/lib/module/processor/session-processor.js +22 -0
- package/lib/module/reporter/index.js +102 -16
- package/lib/module/reporter/monitor-reporter.js +38 -0
- package/lib/module/shell.js +11 -7
- package/lib/module/types/crash.js +33 -0
- package/lib/module/utils/action.js +299 -0
- package/lib/module/utils/crash.js +141 -0
- package/lib/module/utils/platform.js +124 -72
- package/lib/module/utils/session.js +23 -4
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/NativeRumSdkReactnative.d.ts +49 -0
- package/lib/typescript/{src → commonjs/src}/collector/action/index.d.ts +6 -0
- package/lib/typescript/commonjs/src/collector/exception/crash.d.ts +28 -0
- package/lib/typescript/{src → commonjs/src}/collector/exception/index.d.ts +7 -0
- package/lib/typescript/commonjs/src/collector/index.d.ts +6 -0
- package/lib/typescript/commonjs/src/expoConfigPlugin.d.ts +28 -0
- package/lib/typescript/commonjs/src/index.d.ts +6 -0
- package/lib/typescript/{src → commonjs/src}/processor/session-processor.d.ts +2 -0
- package/lib/typescript/{src → commonjs/src}/reporter/index.d.ts +3 -1
- package/lib/typescript/commonjs/src/reporter/monitor-reporter.d.ts +8 -0
- package/lib/typescript/{src → commonjs/src}/shell.d.ts +11 -0
- package/lib/typescript/commonjs/src/types/crash.d.ts +95 -0
- package/lib/typescript/commonjs/src/utils/action.d.ts +63 -0
- package/lib/typescript/commonjs/src/utils/crash.d.ts +12 -0
- package/lib/typescript/commonjs/src/utils/platform.d.ts +22 -0
- package/lib/typescript/{src → commonjs/src}/utils/session.d.ts +4 -0
- package/lib/typescript/module/src/NativeRumSdkReactnative.d.ts +49 -0
- package/lib/typescript/module/src/collector/action/index.d.ts +21 -0
- package/lib/typescript/module/src/collector/exception/crash.d.ts +28 -0
- package/lib/typescript/module/src/collector/exception/index.d.ts +32 -0
- package/lib/typescript/module/src/collector/index.d.ts +6 -0
- package/lib/typescript/module/src/collector/resource/api.d.ts +21 -0
- package/lib/typescript/module/src/collector/view/perf.d.ts +1 -0
- package/lib/typescript/module/src/collector/view/pv.d.ts +16 -0
- package/lib/typescript/module/src/expoConfigPlugin.d.ts +28 -0
- package/lib/typescript/module/src/index.d.ts +6 -0
- package/lib/typescript/module/src/plugin.d.ts +3 -0
- package/lib/typescript/module/src/processor/default-processor.d.ts +6 -0
- package/lib/typescript/module/src/processor/session-processor.d.ts +11 -0
- package/lib/typescript/module/src/reporter/index.d.ts +18 -0
- package/lib/typescript/module/src/reporter/monitor-reporter.d.ts +8 -0
- package/lib/typescript/module/src/shell.d.ts +57 -0
- package/lib/typescript/module/src/types/client.d.ts +27 -0
- package/lib/typescript/module/src/types/crash.d.ts +95 -0
- package/lib/typescript/module/src/types/index.d.ts +118 -0
- package/lib/typescript/module/src/utils/action.d.ts +63 -0
- package/lib/typescript/module/src/utils/api.d.ts +59 -0
- package/lib/typescript/module/src/utils/base.d.ts +8 -0
- package/lib/typescript/module/src/utils/crash.d.ts +12 -0
- package/lib/typescript/module/src/utils/platform.d.ts +22 -0
- package/lib/typescript/module/src/utils/session.d.ts +41 -0
- package/lib/typescript/module/src/utils/url.d.ts +17 -0
- package/lib/typescript/module/src/utils/view.d.ts +13 -0
- package/package.json +51 -28
- package/lib/module/collector/action/index.js.map +0 -1
- package/lib/module/collector/exception/index.js.map +0 -1
- package/lib/module/collector/resource/api.js.map +0 -1
- package/lib/module/collector/view/perf.js.map +0 -1
- package/lib/module/collector/view/pv.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/plugin.js.map +0 -1
- package/lib/module/processor/default-processor.js.map +0 -1
- package/lib/module/processor/session-processor.js.map +0 -1
- package/lib/module/reporter/index.js.map +0 -1
- package/lib/module/shell.js.map +0 -1
- package/lib/module/types/client.js.map +0 -1
- package/lib/module/types/index.js.map +0 -1
- package/lib/module/utils/api.js.map +0 -1
- package/lib/module/utils/base.js.map +0 -1
- package/lib/module/utils/platform.js.map +0 -1
- package/lib/module/utils/session.js.map +0 -1
- package/lib/module/utils/url.js.map +0 -1
- package/lib/module/utils/view.js.map +0 -1
- package/lib/typescript/src/collector/action/index.d.ts.map +0 -1
- package/lib/typescript/src/collector/exception/index.d.ts.map +0 -1
- package/lib/typescript/src/collector/resource/api.d.ts.map +0 -1
- package/lib/typescript/src/collector/view/perf.d.ts.map +0 -1
- package/lib/typescript/src/collector/view/pv.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -4
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/plugin.d.ts.map +0 -1
- package/lib/typescript/src/processor/default-processor.d.ts.map +0 -1
- package/lib/typescript/src/processor/session-processor.d.ts.map +0 -1
- package/lib/typescript/src/reporter/index.d.ts.map +0 -1
- package/lib/typescript/src/shell.d.ts.map +0 -1
- package/lib/typescript/src/types/client.d.ts.map +0 -1
- package/lib/typescript/src/types/index.d.ts.map +0 -1
- package/lib/typescript/src/utils/api.d.ts.map +0 -1
- package/lib/typescript/src/utils/base.d.ts.map +0 -1
- package/lib/typescript/src/utils/platform.d.ts +0 -15
- package/lib/typescript/src/utils/platform.d.ts.map +0 -1
- package/lib/typescript/src/utils/session.d.ts.map +0 -1
- package/lib/typescript/src/utils/url.d.ts.map +0 -1
- package/lib/typescript/src/utils/view.d.ts.map +0 -1
- /package/lib/typescript/{src → commonjs/src}/collector/resource/api.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/collector/view/perf.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/collector/view/pv.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/plugin.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/processor/default-processor.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/types/client.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/types/index.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/api.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/base.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/url.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/view.d.ts +0 -0
- /package/lib/typescript/{package.json → module/package.json} +0 -0
package/README.md
CHANGED
|
@@ -15,9 +15,20 @@
|
|
|
15
15
|
## 安装
|
|
16
16
|
|
|
17
17
|
```sh
|
|
18
|
-
npm install @arms/rum-reactnative
|
|
18
|
+
npm install @arms/rum-reactnative
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
> 自 `0.1.3` 起,SDK 内置原生持久化实现(iOS `NSUserDefaults` / Android `SharedPreferences`),不再依赖 `@react-native-async-storage/async-storage`,无需额外安装。详见下方 [存储说明](#存储说明)。
|
|
22
|
+
|
|
23
|
+
SDK 包含原生崩溃采集模块(iOS:ObjC++ + KSCrash;Android:C/C++ + CMake),安装后**必须重新构建原生工程**,否则会报 TurboModule 方法缺失:
|
|
24
|
+
|
|
25
|
+
- **iOS(bare workflow)**:`cd ios && pod install`,再在 Xcode 重新 Build。
|
|
26
|
+
- **Android(bare workflow)**:Gradle Sync 后重新 Build。
|
|
27
|
+
- **Expo**:`expo prebuild --clean` 后再 `expo run:ios` / `expo run:android`。
|
|
28
|
+
|
|
29
|
+
> **原生编译环境**:Android 需安装 NDK 与 CMake(可在 Android Studio 的 SDK Manager 中安装),iOS 需 CocoaPods(`pod install` 时自动拉取并编译 KSCrash)。由于崩溃采集模块以源码方式编译,首次构建耗时会略有增加,后续增量构建不受影响。
|
|
30
|
+
|
|
31
|
+
|
|
21
32
|
## 快速开始
|
|
22
33
|
|
|
23
34
|
在应用入口处初始化SDK:
|
|
@@ -220,6 +231,44 @@ export default function App() {
|
|
|
220
231
|
}
|
|
221
232
|
```
|
|
222
233
|
|
|
234
|
+
## Expo 接入
|
|
235
|
+
|
|
236
|
+
SDK 提供一个零依赖的 Expo config plugin,便于在 Expo 工程中通过 `app.config` 声明 SDK 配置,避免在 JS 入口硬编码 `endpoint`。
|
|
237
|
+
|
|
238
|
+
在 `app.config.ts` 中:
|
|
239
|
+
|
|
240
|
+
```ts
|
|
241
|
+
const config = {
|
|
242
|
+
expo: {
|
|
243
|
+
plugins: [
|
|
244
|
+
['@arms/rum-reactnative', { endpoint: '<your-endpoint>', env: 'prod' }],
|
|
245
|
+
],
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
export default config;
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
随后照常 `expo prebuild` / EAS Build。运行时通过 `Constants.expoConfig?.extra?.rumSdk` 读取该配置:
|
|
252
|
+
|
|
253
|
+
```ts
|
|
254
|
+
import { Constants } from 'expo-constants';
|
|
255
|
+
import armsRum from '@arms/rum-reactnative';
|
|
256
|
+
|
|
257
|
+
const cfg = (Constants.expoConfig?.extra as any)?.rumSdk;
|
|
258
|
+
armsRum.init({ endpoint: cfg?.endpoint, env: cfg?.env });
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
> 即便不使用 config plugin,Expo 工程在 `npm install` 后执行 `expo prebuild --clean` 即可由 autolinking 自动接入原生模块;plugin 仅提供配置透传的便利。
|
|
262
|
+
|
|
263
|
+
## 原生代码集成方式
|
|
264
|
+
|
|
265
|
+
SDK 的原生崩溃采集层通过**源码编译**集成,不预编译二进制随 npm 包发布:
|
|
266
|
+
|
|
267
|
+
- **iOS**:KSCrash 通过 CocoaPods 源码依赖(`s.dependency "KSCrash"`)引入,`pod install` 时自动编译。
|
|
268
|
+
- **Android**:`librum_crash.so` 由宿主工程 Gradle 通过 `externalNativeBuild`(CMake)在构建时编译,需 NDK / CMake(RN 工程通常已具备)。
|
|
269
|
+
|
|
270
|
+
原生模块会在宿主工程构建时自动编译,无需额外的预编译产物或手动步骤。
|
|
271
|
+
|
|
223
272
|
### 自定义API解析(evaluateApi)
|
|
224
273
|
|
|
225
274
|
当默认的API事件解析逻辑不满足需求时,可通过 `evaluateApi` 自定义解析。函数接收以下参数:
|
|
@@ -340,6 +389,35 @@ armsRum.init({
|
|
|
340
389
|
});
|
|
341
390
|
```
|
|
342
391
|
|
|
392
|
+
## 存储说明
|
|
393
|
+
|
|
394
|
+
SDK 仅持久化一个键 `_arms_uid`(匿名用户 UID),用于跨冷启动保持 UV 稳定。底层采用各平台原生轻量级 KV 存储:
|
|
395
|
+
|
|
396
|
+
| 平台 | 实现 | 命名空间 |
|
|
397
|
+
|------|------|----------|
|
|
398
|
+
| iOS | `NSUserDefaults`(独立 suite) | `com.aliyun.arms.rum.reactnative` |
|
|
399
|
+
| Android | `SharedPreferences`(独立 prefs 文件) | `com.aliyun.arms.rum.reactnative` |
|
|
400
|
+
|
|
401
|
+
### 原生存储 API
|
|
402
|
+
|
|
403
|
+
原生模块提供以下能力(全部为异步 Promise,且仅作用于上表的独立命名空间,不会读写宿主 App 的偏好数据):
|
|
404
|
+
|
|
405
|
+
| 方法 | 返回 | 说明 |
|
|
406
|
+
|------|------|------|
|
|
407
|
+
| `getItem(key)` | `Promise<string \| null>` | 读取字符串值,不存在返回 `null` |
|
|
408
|
+
| `setItem(key, value)` | `Promise<void>` | 写入字符串值 |
|
|
409
|
+
| `removeItem(key)` | `Promise<void>` | 删除指定 key |
|
|
410
|
+
| `clear()` | `Promise<void>` | 清空 SDK 命名空间下的所有 key |
|
|
411
|
+
| `getAllKeys()` | `Promise<string[]>` | 列出 SDK 命名空间下的所有 key |
|
|
412
|
+
|
|
413
|
+
> 该原生模块主要服务于 SDK 内部,不属于公开 API;如有定制场景需要直接调用,可从 `@arms/rum-reactnative` 内部模块引入,**未来版本可能调整签名**。
|
|
414
|
+
|
|
415
|
+
### 升级 / 接入注意事项
|
|
416
|
+
|
|
417
|
+
1. **必须重新构建原生工程**:新增了 TurboModule 方法,升级或首次接入后需要重新执行 iOS 的 `pod install`、Android 的 Gradle Sync;Expo 工程请执行 `expo prebuild --clean` 后再编译,否则会报 protocol method 缺失。
|
|
418
|
+
2. **隔离命名空间,不污染宿主 App**:iOS 走独立 `NSUserDefaults` suite、Android 走独立 prefs 文件,与宿主 App 自身的偏好数据互不干扰;用户卸载 / 抹机时会一并清除。
|
|
419
|
+
3. **从旧版本(依赖 AsyncStorage)升级会重置一次 UID**:原 AsyncStorage 中的 `_arms_uid` 不会自动迁移到新存储,老用户首次升级后会被分配新 UID(仅影响一次 UV 统计的连续性,不影响功能与后续使用)。如对历史 UID 连续性有强诉求,请提 issue。
|
|
420
|
+
|
|
343
421
|
## 相关文档
|
|
344
422
|
|
|
345
423
|
- [ARMS用户体验监控文档](https://help.aliyun.com/zh/arms/user-experience-monitoring/)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = "RumSdkReactnative"
|
|
7
|
+
s.version = package["version"]
|
|
8
|
+
s.summary = package["description"]
|
|
9
|
+
s.homepage = package["homepage"]
|
|
10
|
+
s.license = package["license"]
|
|
11
|
+
s.authors = package["author"]
|
|
12
|
+
|
|
13
|
+
s.platforms = { :ios => min_ios_version_supported }
|
|
14
|
+
s.source = { :git => "https://code.alibaba-inc.com/aliyun-rum/rum-sdk-reactnative.git", :tag => "#{s.version}" }
|
|
15
|
+
|
|
16
|
+
s.source_files = "ios/**/*.{h,m,mm,c,cpp}"
|
|
17
|
+
s.private_header_files = "ios/**/*.h"
|
|
18
|
+
|
|
19
|
+
s.resource_bundles = {
|
|
20
|
+
"RumSdkReactnativePrivacy" => ["ios/PrivacyInfo.xcprivacy"]
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# KSCrash 通过 CocoaPods 源码依赖引入。KSCrash 不发布官方 XCFramework,
|
|
24
|
+
# 故不自行预编译,直接由宿主工程 `pod install` 时源码编译。
|
|
25
|
+
s.dependency "KSCrash", "~> 2.0"
|
|
26
|
+
|
|
27
|
+
install_modules_dependencies(s)
|
|
28
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
ext.getExtOrDefault = {name ->
|
|
2
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['RumSdkReactnative_' + name]
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
apply plugin: "com.android.library"
|
|
6
|
+
apply plugin: "kotlin-android"
|
|
7
|
+
|
|
8
|
+
apply plugin: "com.facebook.react"
|
|
9
|
+
|
|
10
|
+
def getExtOrIntegerDefault(name) {
|
|
11
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["RumSdkReactnative_" + name]).toInteger()
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
android {
|
|
15
|
+
namespace "com.rumsdkreactnative"
|
|
16
|
+
|
|
17
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
18
|
+
|
|
19
|
+
defaultConfig {
|
|
20
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
21
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
22
|
+
|
|
23
|
+
ndk {
|
|
24
|
+
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// librum_crash.so 由宿主工程构建时通过 CMake 源码编译,不预编译随 npm 包发布。
|
|
28
|
+
// 显式指定 c++_shared STL:rum_test_crash.cpp 使用 C++ 异常(<stdexcept>),
|
|
29
|
+
// 精简的 system STL 不支持。RN 工程本身即依赖 c++_shared。
|
|
30
|
+
externalNativeBuild {
|
|
31
|
+
cmake {
|
|
32
|
+
cFlags "-fno-omit-frame-pointer", "-Wno-format"
|
|
33
|
+
arguments "-DANDROID_STL=c++_shared"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
externalNativeBuild {
|
|
39
|
+
cmake {
|
|
40
|
+
path "src/main/jni/CMakeLists.txt"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
buildFeatures {
|
|
45
|
+
buildConfig true
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
buildTypes {
|
|
49
|
+
release {
|
|
50
|
+
minifyEnabled false
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
lintOptions {
|
|
55
|
+
disable "GradleCompatible"
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
compileOptions {
|
|
59
|
+
sourceCompatibility JavaVersion.VERSION_1_8
|
|
60
|
+
targetCompatibility JavaVersion.VERSION_1_8
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
sourceSets {
|
|
64
|
+
main {
|
|
65
|
+
java.srcDirs += [
|
|
66
|
+
"generated/java",
|
|
67
|
+
"generated/jni"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
repositories {
|
|
74
|
+
mavenCentral()
|
|
75
|
+
google()
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
79
|
+
|
|
80
|
+
dependencies {
|
|
81
|
+
implementation "com.facebook.react:react-android"
|
|
82
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
83
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
+
<application>
|
|
3
|
+
<!--
|
|
4
|
+
崩溃处理器自启动:通过 ContentProvider 在 Application.onCreate() 之前安装
|
|
5
|
+
Thread.UncaughtExceptionHandler,无需宿主 App 显式调用 SDK 初始化方法。
|
|
6
|
+
-->
|
|
7
|
+
<provider
|
|
8
|
+
android:name="com.rumsdkreactnative.crash.CrashInitProvider"
|
|
9
|
+
android:authorities="${applicationId}.rum-crash-init"
|
|
10
|
+
android:exported="false"
|
|
11
|
+
android:initOrder="100" />
|
|
12
|
+
</application>
|
|
13
|
+
</manifest>
|