docs: record STEP-060A prebuild fixes

This commit is contained in:
OpenAI Codex
2026-09-07 18:12:05 +08:00
parent 51b5802432
commit 7c771709e0
6 changed files with 85 additions and 13 deletions

View File

@@ -2,11 +2,14 @@
本说明只列出人工步骤;Codex 未执行 Android Gradle、发布、安装或 ADB。
1. 在当前 `particle/main` 编译并发布 custom OpenGL SDK:`cd platform/android && ./gradlew :MapLibreAndroid:publishToMavenLocal`。确认 `~/.m2/repository/org/maplibre/gl/android-sdk-opengl/13.4.1/` 是当前提交生成;建议先移走任何旧的同版本 artifact。
2. `cd integration/react-native/MapLibreParticleRNTestHost && yarn install && npx expo prebuild --platform android --clean`。检查生成 root Gradle 有 `MapLibreParticleRNTestHost custom OpenGL SDK` 标记、`nativeVersion=13.4.1`、`nativeVariant=opengl`,并且 Maven Central 对 `org.maplibre.gl` 被排除。
3. 用 JDK 17、AGP 8.5.0、Gradle 8.14.3、Kotlin 2.1.20、NDK 27.1.12297006、compile/targetSdk 36 编译/安装 Test Host;确认 Hermes 与 New Architecture 开启。
4. 启动后确认单一地图正常加载。style ready 后应显示 reactTag 和 `WAITING_FOR_FIELDS`,不提交 field 时粒子/色场为空是预期。
5. 对同一 reactTag 依次验证 Phase A:getState、enable、WeatherColor visible、particle visible、FPS 30 均得到结构化 Native result。
6. 验证 Phase B:PLAY/PAUSE、HALF/NORMAL/DOUBLE、epoch-ms seek、stops、独立 particle/trail RGBA、count/line/length/opacity/fade/WeatherColor opacity。不得出现 JS `PLAYING/PAUSED` 第二状态机。
7. 重载 style:旧 Runtime 必须 disposed;style ready attach 的新 Runtime 正常工作。remount Map 后,用旧 reactTag 调用必须返回 `MAP_VIEW_NOT_FOUND`,不得命中新 Map。
8. 卸载 Host:确认 view detach dispose;无持续 Handler wake、无全局 current map。STEP-061 前不要尝试 number[]、JSON/base64 大 field。
1. 确认当前为 `particle/main`,并记录 `git rev-parse HEAD`。
2. 移走或清理 `~/.m2/repository/org/maplibre/gl/android-sdk-opengl/13.4.1/` 的旧 artifact,避免相同版本号造成 provenance 混淆。
3. 手工发布当前 HEAD 的 custom OpenGL SDK:`cd platform/android && ./gradlew :MapLibreAndroid:publishToMavenLocal`。确认 Maven Local AAR/POM 是当前构建产物。
4. `cd integration/react-native/MapLibreParticleRNTestHost && npm ci && npx expo prebuild --platform android --clean`。`package-lock.json` 已在无 `--legacy-peer-deps` 的 npm dry-run 下解析;不要改用 Yarn 或生成 `yarn.lock`。
5. 检查生成 root Gradle 有 `MapLibreParticleRNTestHost custom OpenGL SDK` 标记、`nativeVersion=13.4.1`、`nativeVariant=opengl`,且 Maven Central 对 `org.maplibre.gl` 被排除;缺 custom AAR 时 resolution 必须失败而非 fallback。
6. 首次 prebuild 后实际记录 Gradle wrapper、AGP、Kotlin plugin、min/compile/targetSdk、NDK、JDK、Hermes 与 New Architecture。`8.5.0/8.14.3/2.1.20/27.1.12297006/24/36/36` 在此之前只是验收目标,不是已验证值。
7. 再按实际生成工程编译/安装 Test Host。启动后确认单一地图正常加载;style ready 后应显示 reactTag 和 `WAITING_FOR_FIELDS`,不提交 field 时粒子/色场为空是预期。
8. 对同一 reactTag 依次验证 Phase A:getState、enable、WeatherColor visible、particle visible、FPS 30 均得到结构化 Native result。
9. 验证 Phase B:PLAY/PAUSE、HALF/NORMAL/DOUBLE、epoch-ms seek、stops、独立 particle/trail RGBA、count/line/length/opacity/fade/WeatherColor opacity。不得出现 JS `PLAYING/PAUSED` 第二状态机。
10. 重载 style:旧 Runtime 必须 disposed;style ready attach 的新 Runtime 正常工作。remount Map 后,用旧 reactTag 调用必须返回 `MAP_VIEW_NOT_FOUND`,不得命中新 Map。
11. 卸载 Host:确认 view detach dispose;无持续 Handler wake、无全局 current map。STEP-061 前不要尝试 number[]、JSON/base64 大 field。