expo-harmony-toolkit 1.7.1 → 1.7.3
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.en.md +20 -9
- package/README.md +22 -11
- package/build/core/autolinking.d.ts +10 -0
- package/build/core/autolinking.js +421 -0
- package/build/core/build/commands.d.ts +19 -0
- package/build/core/build/commands.js +61 -0
- package/build/core/build/compatibilityShims.d.ts +1 -0
- package/build/core/build/compatibilityShims.js +272 -0
- package/build/core/build/localHar.d.ts +13 -0
- package/build/core/build/localHar.js +337 -0
- package/build/core/build/reporting.d.ts +19 -0
- package/build/core/build/reporting.js +67 -0
- package/build/core/build/rnohCompatibility.d.ts +1 -0
- package/build/core/build/rnohCompatibility.js +38 -0
- package/build/core/build.d.ts +4 -12
- package/build/core/build.js +70 -762
- package/build/core/constants.d.ts +2 -1
- package/build/core/constants.js +3 -2
- package/build/core/dependencyInspection.d.ts +2 -0
- package/build/core/dependencyInspection.js +112 -0
- package/build/core/env.js +1 -1
- package/build/core/report.js +33 -10
- package/build/core/signing.d.ts +2 -0
- package/build/core/signing.js +30 -0
- package/build/core/template/capabilityRegistry.d.ts +9 -0
- package/build/core/template/capabilityRegistry.js +84 -0
- package/build/core/template/expoModulesCoreShim.d.ts +2 -0
- package/build/core/template/expoModulesCoreShim.js +279 -0
- package/build/core/template/metro.d.ts +2 -0
- package/build/core/template/metro.js +213 -0
- package/build/core/template/nativeFiles.d.ts +8 -0
- package/build/core/template/nativeFiles.js +333 -0
- package/build/core/template/renderers/camera.d.ts +4 -0
- package/build/core/template/renderers/camera.js +612 -0
- package/build/core/template/renderers/fileSystem.d.ts +4 -0
- package/build/core/template/renderers/fileSystem.js +814 -0
- package/build/core/template/renderers/imagePicker.d.ts +4 -0
- package/build/core/template/renderers/imagePicker.js +753 -0
- package/build/core/template/renderers/location.d.ts +4 -0
- package/build/core/template/renderers/location.js +836 -0
- package/build/core/template/runtimeShims.d.ts +2 -0
- package/build/core/template/runtimeShims.js +192 -0
- package/build/core/template/support.d.ts +11 -0
- package/build/core/template/support.js +108 -0
- package/build/core/template.d.ts +2 -6
- package/build/core/template.js +47 -3966
- package/build/data/capabilities.js +45 -19
- package/build/data/dependencyCatalog.js +10 -0
- package/build/data/publicDocs.d.ts +11 -0
- package/build/data/publicDocs.js +28 -0
- package/build/data/validatedMatrices.js +9 -1
- package/build/docs/render.d.ts +9 -0
- package/build/docs/render.js +248 -0
- package/build/types.d.ts +12 -0
- package/docs/cli-build.md +1 -1
- package/docs/npm-release.md +1 -0
- package/docs/official-app-shell-sample.md +2 -1
- package/docs/official-minimal-sample.md +2 -1
- package/docs/official-native-capabilities-sample.md +28 -47
- package/docs/official-ui-stack-sample.md +2 -1
- package/docs/signing-and-release.md +3 -0
- package/docs/support-matrix.md +38 -16
- package/package.json +13 -5
- package/docs/v1.5.1-acceptance.md +0 -385
- package/docs/v1.6.0-acceptance.md +0 -193
- package/docs/v1.7.0-acceptance.md +0 -111
- package/docs/v1.7.1-acceptance.md +0 -111
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
路径:`examples/official-native-capabilities-sample`
|
|
4
4
|
|
|
5
|
-
这个 sample 是 `v1.7.
|
|
5
|
+
这个 sample 是 `v1.7.3` 的官方 preview native-capability walkthrough。它的目标不是把 preview 能力包装成 `verified`,而是把四项能力当前真实可承诺的 `🟡` 子集集中演示出来,并把 preview 边界收敛到真机 / release 证据,而不是接口缺口。
|
|
6
6
|
|
|
7
7
|
标记说明:
|
|
8
8
|
|
|
9
9
|
- `🟡` 当前可用子集:这部分已经有可信实现,样例和模拟器路径可用;下一步主要缺真机 / release 证据
|
|
10
|
-
- `🟠` 当前未纳入子集:包本身已进入 `preview`,但这个具体子 API 还没有到可信对外承诺;这不是“只差真机”
|
|
11
10
|
|
|
12
11
|
## 当前覆盖
|
|
13
12
|
|
|
@@ -29,20 +28,13 @@
|
|
|
29
28
|
|
|
30
29
|
`🟡 当前可用子集`:
|
|
31
30
|
|
|
32
|
-
-
|
|
33
|
-
- UTF-8 写入
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
- `
|
|
37
|
-
- `copyAsync`
|
|
38
|
-
- `moveAsync`
|
|
39
|
-
- 删除生成产物
|
|
40
|
-
|
|
41
|
-
`🟠 当前未纳入子集`:
|
|
42
|
-
|
|
43
|
-
- `base64`
|
|
31
|
+
- sandbox 目录创建
|
|
32
|
+
- UTF-8 写入 / 读回
|
|
33
|
+
- base64 roundtrip
|
|
34
|
+
- append / partial read
|
|
35
|
+
- `getInfoAsync({ md5: true })`
|
|
44
36
|
- `downloadAsync`
|
|
45
|
-
-
|
|
37
|
+
- 清理生成产物
|
|
46
38
|
|
|
47
39
|
### `/image-picker`
|
|
48
40
|
|
|
@@ -50,52 +42,42 @@
|
|
|
50
42
|
|
|
51
43
|
- media permission
|
|
52
44
|
- camera permission
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
- 多选、多媒体、更深一层的系统恢复语义
|
|
45
|
+
- 单选图库选择
|
|
46
|
+
- 多选图库选择
|
|
47
|
+
- mixed image+video library selection
|
|
48
|
+
- system photo capture
|
|
49
|
+
- system video capture
|
|
50
|
+
- pending result 恢复
|
|
51
|
+
- image / video asset metadata 展示
|
|
61
52
|
|
|
62
53
|
### `/location`
|
|
63
54
|
|
|
64
55
|
`🟡 当前可用子集`:
|
|
65
56
|
|
|
66
57
|
- foreground permission
|
|
58
|
+
- background permission
|
|
67
59
|
- `getCurrentPositionAsync`
|
|
68
|
-
- `
|
|
60
|
+
- `watchPositionAsync`
|
|
61
|
+
- `getHeadingAsync`
|
|
62
|
+
- `watchHeadingAsync`
|
|
69
63
|
- `geocodeAsync`
|
|
70
64
|
- `reverseGeocodeAsync`
|
|
71
65
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
- `watchPositionAsync`
|
|
75
|
-
- background permission parity
|
|
76
|
-
- `watchHeadingAsync`
|
|
77
|
-
- `getHeadingAsync`
|
|
66
|
+
说明:
|
|
78
67
|
|
|
79
|
-
|
|
68
|
+
- 背景权限按 Harmony 的独立后台权限契约暴露,不伪装成 Expo 的完全同构平台行为
|
|
69
|
+
- heading 使用 Harmony 传感器方向语义,属于最接近 Expo 的等价语义,不复用 GPS `direction`
|
|
80
70
|
|
|
81
71
|
### `/camera`
|
|
82
72
|
|
|
83
73
|
`🟡 当前可用子集`:
|
|
84
74
|
|
|
85
|
-
-
|
|
86
|
-
- 通过 Harmony system camera UI 完成 still-photo capture
|
|
87
|
-
- 把返回 asset metadata 回传给 JS
|
|
88
|
-
- denied / canceled / successful capture 三类结果展示
|
|
89
|
-
|
|
90
|
-
`🟠 当前未纳入子集`:
|
|
91
|
-
|
|
92
|
-
- embedded live preview
|
|
75
|
+
- embedded `CameraView` preview
|
|
93
76
|
- `pausePreview` / `resumePreview`
|
|
94
|
-
-
|
|
95
|
-
- video recording
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
这些 `🟠` 项不是“已经实现,只差真机验证”,而是当前还没补齐到可信实现,所以暂时不纳入对外可承诺子集。
|
|
77
|
+
- still photo capture
|
|
78
|
+
- video recording start / stop / toggle
|
|
79
|
+
- microphone permission snapshot
|
|
80
|
+
- denied / canceled / successful result 展示
|
|
99
81
|
|
|
100
82
|
## 推荐命令
|
|
101
83
|
|
|
@@ -126,7 +108,7 @@ pnpm run harmony:doctor:strict
|
|
|
126
108
|
如果要继续验证 release 构建,先准备本地签名覆盖文件:
|
|
127
109
|
|
|
128
110
|
```bash
|
|
129
|
-
|
|
111
|
+
cp .expo-harmony/signing.local.example.json .expo-harmony/signing.local.json
|
|
130
112
|
$EDITOR .expo-harmony/signing.local.json
|
|
131
113
|
pnpm run harmony:env
|
|
132
114
|
pnpm run harmony:build:release
|
|
@@ -134,6 +116,7 @@ pnpm run harmony:build:release
|
|
|
134
116
|
|
|
135
117
|
说明:
|
|
136
118
|
|
|
119
|
+
- `.expo-harmony/signing.local.example.json` 是可直接复制的本地 signing 範本
|
|
137
120
|
- `.expo-harmony/signing.local.json` 是本地 signing 入口
|
|
138
121
|
- toolkit 会把本地 signing 合并进 `harmony/build-profile.json5`
|
|
139
122
|
- 即使 release 构建可走通,在没有真机前,这四项能力也仍保持 `preview`
|
|
@@ -142,7 +125,5 @@ pnpm run harmony:build:release
|
|
|
142
125
|
|
|
143
126
|
- 这个 sample 属于 `preview` 主线,不等于已经进入 `verified`
|
|
144
127
|
- `doctor-report.json` 与 `toolkit-config.json` 中的 `runtimeMode` / `evidence.*` 会如实反映这些能力距离 verified 还缺哪些证据
|
|
145
|
-
- `🟡` 项可以理解为“只差真机 / release 证据的下一步”
|
|
146
|
-
- `🟠` 项不能理解成“只差真机”,因为当前实现边界本身还没有补齐
|
|
147
128
|
- 当前重点是“模拟器下真正可用、核心流清楚、文档一致”
|
|
148
129
|
- 等未来补齐真机 gate 后,才讨论 capability promotion
|
|
@@ -47,7 +47,7 @@ pnpm run harmony:build:debug
|
|
|
47
47
|
如果要继续验证 release 构建,先准备本地签名覆盖文件:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
|
|
50
|
+
cp .expo-harmony/signing.local.example.json .expo-harmony/signing.local.json
|
|
51
51
|
$EDITOR .expo-harmony/signing.local.json
|
|
52
52
|
pnpm run harmony:env
|
|
53
53
|
pnpm run harmony:build:release
|
|
@@ -55,6 +55,7 @@ pnpm run harmony:build:release
|
|
|
55
55
|
|
|
56
56
|
说明:
|
|
57
57
|
|
|
58
|
+
- `.expo-harmony/signing.local.example.json` 是可直接复制的本地 signing 範本
|
|
58
59
|
- `.expo-harmony/signing.local.json` 是本地 signing 入口
|
|
59
60
|
- signing 缺失时,release 构建应明确失败,而不是假成功
|
|
60
61
|
|
|
@@ -27,6 +27,7 @@ expo-harmony env
|
|
|
27
27
|
|
|
28
28
|
- `debug` 构建仍可继续做本地验证
|
|
29
29
|
- `release` 构建不应视为 ready
|
|
30
|
+
- 可以直接从 `.expo-harmony/signing.local.example.json` 复制出 `.expo-harmony/signing.local.json` 再填入真实材料
|
|
30
31
|
|
|
31
32
|
## 推荐流程
|
|
32
33
|
|
|
@@ -40,6 +41,8 @@ expo-harmony build-hap --mode debug
|
|
|
40
41
|
### Release 验证
|
|
41
42
|
|
|
42
43
|
```bash
|
|
44
|
+
cp .expo-harmony/signing.local.example.json .expo-harmony/signing.local.json
|
|
45
|
+
$EDITOR .expo-harmony/signing.local.json
|
|
43
46
|
expo-harmony env
|
|
44
47
|
expo-harmony build-hap --mode release
|
|
45
48
|
```
|
package/docs/support-matrix.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
- `supportTier` 表示公开承诺层级
|
|
6
6
|
- `runtimeMode` 表示当前运行时接入形态:`shim`、`adapter`、`verified`
|
|
7
7
|
- `evidence` 表示距离 verified 还缺哪些证据格
|
|
8
|
+
- `evidenceSource` 表示每个证据格来自自动化、人工记录,还是当前无证据
|
|
8
9
|
|
|
9
10
|
`doctor --strict` 继续只代表 `verified`。
|
|
10
11
|
|
|
@@ -12,6 +13,7 @@
|
|
|
12
13
|
|
|
13
14
|
唯一 `verified` 矩阵仍是 `expo55-rnoh082-ui-stack`。
|
|
14
15
|
|
|
16
|
+
<!-- GENERATED:support-matrix-verified-matrix:start -->
|
|
15
17
|
| 项目 | 要求 |
|
|
16
18
|
| --- | --- |
|
|
17
19
|
| Expo SDK | `55` |
|
|
@@ -21,9 +23,10 @@
|
|
|
21
23
|
| `@react-native-oh/react-native-harmony-cli` | `0.82.18` |
|
|
22
24
|
| `@react-native-community/cli` | `20.x` |
|
|
23
25
|
| `metro` | `0.83.x` |
|
|
24
|
-
| App Shell 依赖 | `expo-router` `
|
|
26
|
+
| App Shell 依赖 | `expo-router` `55.x`、`expo-linking` `55.x`、`expo-constants` `55.x`、`@expo/metro-runtime` `55.x`、`react-dom` `19.1.1` |
|
|
25
27
|
| UI stack 依赖 | `react-native-reanimated` `3.6.0`、`react-native-svg` `15.0.0` |
|
|
26
28
|
| 原生标识 | 至少设置 `android.package` 或 `ios.bundleIdentifier` |
|
|
29
|
+
<!-- GENERATED:support-matrix-verified-matrix:end -->
|
|
27
30
|
|
|
28
31
|
## Support Tiers
|
|
29
32
|
|
|
@@ -36,26 +39,31 @@
|
|
|
36
39
|
|
|
37
40
|
## Verified Allowlist
|
|
38
41
|
|
|
42
|
+
<!-- GENERATED:support-matrix-verified-allowlist:start -->
|
|
39
43
|
- `expo`
|
|
44
|
+
- `@expo/metro-runtime`
|
|
40
45
|
- `expo-constants`
|
|
41
46
|
- `expo-linking`
|
|
42
47
|
- `expo-router`
|
|
43
48
|
- `react`
|
|
49
|
+
- `react-dom`
|
|
44
50
|
- `react-native`
|
|
45
51
|
- `expo-status-bar`
|
|
46
52
|
- `@babel/runtime`
|
|
47
53
|
- `@react-native-community/cli`
|
|
48
54
|
- `metro`
|
|
49
|
-
- `expo-harmony-toolkit`
|
|
50
55
|
- `@react-native-oh/react-native-harmony`
|
|
51
56
|
- `@react-native-oh/react-native-harmony-cli`
|
|
57
|
+
- `expo-harmony-toolkit`
|
|
52
58
|
- `react-native-reanimated`
|
|
53
|
-
- `react-native-svg`
|
|
54
59
|
- `@react-native-oh-tpl/react-native-reanimated`
|
|
60
|
+
- `react-native-svg`
|
|
55
61
|
- `@react-native-oh-tpl/react-native-svg`
|
|
62
|
+
<!-- GENERATED:support-matrix-verified-allowlist:end -->
|
|
56
63
|
|
|
57
64
|
## Capability Telemetry
|
|
58
65
|
|
|
66
|
+
<!-- GENERATED:support-matrix-capability-telemetry:start -->
|
|
59
67
|
所有 capability 从现在开始都同时公开:
|
|
60
68
|
|
|
61
69
|
- `supportTier`
|
|
@@ -64,42 +72,47 @@
|
|
|
64
72
|
- `evidence.debugBuild`
|
|
65
73
|
- `evidence.device`
|
|
66
74
|
- `evidence.release`
|
|
75
|
+
- `evidenceSource.bundle`
|
|
76
|
+
- `evidenceSource.debugBuild`
|
|
77
|
+
- `evidenceSource.device`
|
|
78
|
+
- `evidenceSource.release`
|
|
67
79
|
|
|
68
80
|
判读规则:
|
|
69
81
|
|
|
70
82
|
- `runtimeMode=shim`:说明当前还在桥接或占位阶段,即使 bundle / debug build 已完成,也不应宣称 verified
|
|
71
83
|
- `runtimeMode=adapter`:说明已经进入真实适配路径,但仍缺少某些验收证据
|
|
72
84
|
- `runtimeMode=verified`:说明能力已进入正式承诺,且证据闭环完成
|
|
85
|
+
<!-- GENERATED:support-matrix-capability-telemetry:end -->
|
|
73
86
|
|
|
74
87
|
为了避免把“只差真机”与“当前子 API 还没实现到位”混在一起,`v1.7.x` 文档额外使用以下标记:
|
|
75
88
|
|
|
76
89
|
- `🟡 可用待晋升`:当前子集已经有可信实现,样例和模拟器路径可用;下一步主要缺真机 / release 证据
|
|
77
|
-
- `🟠 未纳入当前子集`:包本身已进入 `preview`,但这个具体子 API 还没有到可信对外承诺;这不是“只差真机”
|
|
78
90
|
- `⛔ 完全不支持`:能力仍在 catalog 外,或根本不在当前公开承诺范围
|
|
79
91
|
|
|
80
92
|
## Preview 能力
|
|
81
93
|
|
|
94
|
+
<!-- GENERATED:support-matrix-preview-capabilities:start -->
|
|
82
95
|
| Expo 能力 | 当前层级 | runtimeMode | evidence | Harmony 依赖方向 | 受管权限 | 官方 sample route |
|
|
83
96
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
84
|
-
| `expo-file-system` | `preview` | `adapter` | `bundle=yes, debugBuild=yes, device=yes, release=no` |
|
|
85
|
-
| `expo-image-picker` | `preview` | `adapter` | `bundle=yes, debugBuild=yes, device=yes, release=no` |
|
|
86
|
-
| `expo-location` | `preview` | `adapter` | `bundle=yes, debugBuild=yes, device=yes, release=no` |
|
|
87
|
-
| `expo-camera` | `preview` | `adapter` | `bundle=yes, debugBuild=yes, device=yes, release=no` |
|
|
97
|
+
| `expo-file-system` | `preview` | `adapter` | `bundle=yes[automated], debugBuild=yes[automated], device=yes[manual-doc], release=no[none]` | react-native-fs | 无新增必需权限 | `/file-system` |
|
|
98
|
+
| `expo-image-picker` | `preview` | `adapter` | `bundle=yes[automated], debugBuild=yes[automated], device=yes[manual-doc], release=no[none]` | react-native-image-picker, react-native-permissions | ohos.permission.CAMERA、ohos.permission.MICROPHONE、ohos.permission.READ_IMAGEVIDEO | `/image-picker` |
|
|
99
|
+
| `expo-location` | `preview` | `adapter` | `bundle=yes[automated], debugBuild=yes[automated], device=yes[manual-doc], release=no[none]` | @react-native-community/geolocation, react-native-permissions | ohos.permission.LOCATION、ohos.permission.APPROXIMATELY_LOCATION、ohos.permission.LOCATION_IN_BACKGROUND、ohos.permission.ACCELEROMETER | `/location` |
|
|
100
|
+
| `expo-camera` | `preview` | `adapter` | `bundle=yes[automated], debugBuild=yes[automated], device=yes[manual-doc], release=no[none]` | react-native-camera-kit, react-native-permissions | ohos.permission.CAMERA、ohos.permission.MICROPHONE | `/camera` |
|
|
101
|
+
<!-- GENERATED:support-matrix-preview-capabilities:end -->
|
|
88
102
|
|
|
89
103
|
说明:
|
|
90
104
|
|
|
91
105
|
- 当前四项 preview capability 都已经完成 preview baseline 的 bundle / debug build / route walkthrough
|
|
92
|
-
- 四项 preview capability 都已经进入 `adapter` 路径;`device=yes`
|
|
106
|
+
- 四项 preview capability 都已经进入 `adapter` 路径;`device=yes[manual-doc]` 只表示已有人工设备验收记录,仍不代表 verified 或 release-ready
|
|
107
|
+
- 当前 preview baseline 的默认 evidenceSource 固定为:`bundle/debugBuild=automated`、`device=manual-doc`、`release=none`
|
|
93
108
|
- `expo-file-system`
|
|
94
|
-
- `🟡` 当前主路径是 UTF-8 sandbox I/O
|
|
109
|
+
- `🟡` 当前主路径是 UTF-8/base64 sandbox I/O、append/partial read、`getInfoAsync({ md5: true })` 与 `downloadAsync`
|
|
95
110
|
- `expo-image-picker`
|
|
96
|
-
- `🟡`
|
|
111
|
+
- `🟡` 当前主路径是单选、多选、mixed library selection、system photo/video capture、pending result 恢复,以及 image/video metadata 展示
|
|
97
112
|
- `expo-location`
|
|
98
|
-
- `🟡`
|
|
99
|
-
- `🟠` `watchPositionAsync`、背景权限与 heading API 当前未纳入 v1.7.x 可承诺子集;这不是“只差真机”,而是实现还没补齐到可信状态
|
|
113
|
+
- `🟡` 当前主路径是 foreground/background permission、current / watch、heading snapshot/watch、geocode / reverse-geocode
|
|
100
114
|
- `expo-camera`
|
|
101
|
-
- `🟡`
|
|
102
|
-
- `🟠` embedded preview、preview pause/resume、microphone、video 当前未纳入 v1.7.x 可承诺子集;这不是“只差真机”,而是实现还没补齐到可信状态
|
|
115
|
+
- `🟡` 当前主路径是 embedded preview、preview pause/resume、still capture、video recording 与 microphone permission
|
|
103
116
|
|
|
104
117
|
## Experimental 能力
|
|
105
118
|
|
|
@@ -110,6 +123,7 @@
|
|
|
110
123
|
|
|
111
124
|
## UI Stack 配对规则
|
|
112
125
|
|
|
126
|
+
<!-- GENERATED:support-matrix-ui-stack:start -->
|
|
113
127
|
canonical 包与 Harmony adapter 包固定为双向强制:
|
|
114
128
|
|
|
115
129
|
- `react-native-reanimated` ↔ `@react-native-oh-tpl/react-native-reanimated`
|
|
@@ -126,6 +140,7 @@ canonical 包与 Harmony adapter 包固定为双向强制:
|
|
|
126
140
|
|
|
127
141
|
- `@react-native-oh-tpl/react-native-reanimated`: `github:react-native-oh-library/react-native-harmony-reanimated#9fdbe676209937383907be0592291223c6ca7ad7&path:react-native-harmony-reanimated`
|
|
128
142
|
- `@react-native-oh-tpl/react-native-svg`: `github:react-native-oh-library/react-native-harmony-svg#97c31d2f72559931d62fa84a9c86e86d343753d3&path:react-native-harmony-svg`
|
|
143
|
+
<!-- GENERATED:support-matrix-ui-stack:end -->
|
|
129
144
|
|
|
130
145
|
## `doctor`
|
|
131
146
|
|
|
@@ -150,10 +165,15 @@ expo-harmony doctor --project-root /path/to/app --target-tier preview
|
|
|
150
165
|
- `capabilities[].evidence.debugBuild`
|
|
151
166
|
- `capabilities[].evidence.device`
|
|
152
167
|
- `capabilities[].evidence.release`
|
|
168
|
+
- `capabilities[].evidenceSource.bundle`
|
|
169
|
+
- `capabilities[].evidenceSource.debugBuild`
|
|
170
|
+
- `capabilities[].evidenceSource.device`
|
|
171
|
+
- `capabilities[].evidenceSource.release`
|
|
153
172
|
|
|
154
173
|
判读方式:
|
|
155
174
|
|
|
156
175
|
- 任一 `evidence.* = false`,表示晋升到 verified 前仍缺证据
|
|
176
|
+
- `evidenceSource.device = manual-doc`,表示该证据来自人工验收记录,不应被表述成自动化设备验证
|
|
157
177
|
- `runtimeMode !== verified`,表示即使已有部分证据,也仍不属于正式承诺
|
|
158
178
|
|
|
159
179
|
当前公开阻断 issue code 继续包括:
|
|
@@ -187,13 +207,14 @@ toolkit 受管的核心产物仍包括:
|
|
|
187
207
|
|
|
188
208
|
- `entry/src/main/module.json5` 的 `requestPermissions` 由 toolkit 根据已启用能力自动补齐
|
|
189
209
|
- preview / experimental 能力的 Metro import path 通过 `.expo-harmony/shims/<package>` 接管
|
|
190
|
-
- `toolkit-config.json` 会记录 capability 的 `runtimeMode` 与 `
|
|
210
|
+
- `toolkit-config.json` 会记录 capability 的 `runtimeMode`、`evidence` 与 `evidenceSource`
|
|
191
211
|
- verified UI stack 依赖继续走现有 autolinking + `.har` 管理逻辑
|
|
192
212
|
|
|
193
213
|
## Release Tracks
|
|
194
214
|
|
|
195
215
|
从 `v1.8` 开始,发布节奏按双轨设计:
|
|
196
216
|
|
|
217
|
+
<!-- GENERATED:support-matrix-release-tracks:start -->
|
|
197
218
|
- `latest`
|
|
198
219
|
- 只承接完整验收的 `verified` 能力
|
|
199
220
|
- 只允许 verified sample / gate 作为发布依据
|
|
@@ -201,6 +222,7 @@ toolkit 受管的核心产物仍包括:
|
|
|
201
222
|
- 承接 preview fast track
|
|
202
223
|
- 必须至少通过 preview sample、bundle、debug build gate
|
|
203
224
|
- 不得被描述为 verified 或 release-ready
|
|
225
|
+
<!-- GENERATED:support-matrix-release-tracks:end -->
|
|
204
226
|
|
|
205
227
|
## Capability Promotion Gate
|
|
206
228
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-harmony-toolkit",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.3",
|
|
4
4
|
"description": "面向 Managed/CNG Expo 项目的 HarmonyOS 迁移、准入检查与 UI-stack 构建工具链",
|
|
5
5
|
"main": "app.plugin.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -23,12 +23,21 @@
|
|
|
23
23
|
"README.md",
|
|
24
24
|
"README.en.md",
|
|
25
25
|
"LICENSE",
|
|
26
|
-
"docs"
|
|
26
|
+
"docs/cli-build.md",
|
|
27
|
+
"docs/npm-release.md",
|
|
28
|
+
"docs/official-app-shell-sample.md",
|
|
29
|
+
"docs/official-minimal-sample.md",
|
|
30
|
+
"docs/official-native-capabilities-sample.md",
|
|
31
|
+
"docs/official-ui-stack-sample.md",
|
|
32
|
+
"docs/roadmap.md",
|
|
33
|
+
"docs/signing-and-release.md",
|
|
34
|
+
"docs/support-matrix.md"
|
|
27
35
|
],
|
|
28
36
|
"scripts": {
|
|
29
|
-
"build": "tsc --project tsconfig.json",
|
|
37
|
+
"build": "rm -rf build && tsc --project tsconfig.json",
|
|
30
38
|
"clean": "rm -rf build coverage",
|
|
31
|
-
"
|
|
39
|
+
"docs:sync": "node ./scripts/update-generated-docs.js",
|
|
40
|
+
"pack:check": "node ./scripts/pack.js --dry-run --json",
|
|
32
41
|
"release:check": "node ./scripts/release-check.js",
|
|
33
42
|
"test": "jest --runInBand",
|
|
34
43
|
"prepare": "pnpm build"
|
|
@@ -77,7 +86,6 @@
|
|
|
77
86
|
"@types/jest": "^30.0.0",
|
|
78
87
|
"@types/node": "^24.5.2",
|
|
79
88
|
"@types/semver": "^7.7.1",
|
|
80
|
-
"expo": "^55.0.8",
|
|
81
89
|
"jest": "^30.2.0",
|
|
82
90
|
"ts-jest": "^29.4.4",
|
|
83
91
|
"typescript": "^5.9.2"
|