docs: record STEP-082 ios runtime distribution baseline
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# STEP-082 iOS Native FieldRuntime Facade 与 XCFramework 发行基线 Codex 完成报告 v1
|
||||
|
||||
## 1. 执行结论
|
||||
|
||||
IMPLEMENTED / WAITING_MAC_XCFRAMEWORK_VALIDATION。公开 facade、生命周期、V4 转发、Bazel public-header 接线和 distribution 模板均已实现;不能写 CLOSED/PASS,因为正式 `MapLibre.dynamic.xcframework` 被任务基线既有 style-codegen 阻断,未生成可检查的 XCFramework 或 zip。
|
||||
|
||||
## 2. Git 基线
|
||||
|
||||
- branch:`particle/main`
|
||||
- start commit:`3e03949d3411c830cfff4bf320cd350f5b6a7527`
|
||||
- implementation commit:`d94f2bffd68fa01f941b8de051d435a2cde074c2`
|
||||
- implementation message:`feat: add ios particle field runtime facade`
|
||||
- submodule:开始时已记录,未修改。
|
||||
|
||||
## 3. 实际实现
|
||||
|
||||
- 新增 public `MLNParticleFieldRuntimeConfiguration`、`MLNParticleFieldRuntime` 与 `MLNMapView (ParticleFieldRuntime)`;MapView associated object 强持有,runtime 弱持有 MapView,replace 先 dispose 旧对象,dispose 幂等。
|
||||
- attach 与每条命令都重新验证 current style 内 source/layer 的真实 Core 类型和 source 关联;不缓存 `RasterArraySource*`。map 不可用、style reload、source/layer missing/type mismatch 均以独立 NSError fail-closed。
|
||||
- `NSData` QBIN V4 submit 复用 Core parser 和 `RasterArraySource::submitEncodedField`;ObjC enum 无损映射十个 Core submit result。color/particle binding、forecast time/play/speed 和两种 clear 均接通现有 Core。
|
||||
- `MLNParticleFieldRuntime.h` 进入 `MLN_IOS_SDK_HEADERS` 和 `Mapbox.h`;`MLNMapView_Private.h` 未加入 public list,只由 `.mm` 实现使用。
|
||||
- 新增 `release/maplibre-particle/ios/` 的 README、SwiftPM binary target 模板和 `NOT_BUILT` manifest;module/product 固定为 `MapLibre`。
|
||||
|
||||
## 4. 验证记录
|
||||
|
||||
- PASS:`git diff --cached --check`(implementation commit 前)。
|
||||
- PASS:iPhoneOS arm64 public-header standalone import syntax check。
|
||||
- PASS:iPhoneOS arm64 Objective-C++ facade syntax check;最终仅出现既有 private header 的 EAGL deprecation warning。CMake 生成的 Xcode project 已含 `MLNParticleFieldRuntime.mm`,并实际产生 `MLNParticleFieldRuntime.o/.d/.dia`。
|
||||
- BLOCKED:`bazel build //platform/ios:MapLibre.dynamic` 在 facade 编译前失败。`//:generated_style_code` 声明 `src/mbgl/style/layers/particle_validation_layer.cpp` 为输出,但 `scripts/generate-style-code.mjs` 不生成它;错误为 `output ... was not created`。这是当前基线 Core/Bazel codegen 声明问题,不在本 Step 允许修改范围。
|
||||
- 未生成 XCFramework:因此无法核验 Headers、binary public symbol、private header 排除、zip size/SHA-256;manifest 诚实标为 `NOT_BUILT`。
|
||||
|
||||
## 5. 范围与未完成事项
|
||||
|
||||
未修改 Android、RN、NavSea、QBIN V2、FieldProfile/BindingProjection、renderer/Metal physics,未重做 STEP-081,也未提前进入 STEP-083。必须先在独立授权范围修复/确认 Bazel style-codegen 基线,再从此实现 commit 重跑 XCFramework、检查 public header/symbol 并记录真实 zip SHA-256。
|
||||
|
||||
## 6. 工作树、提交与推送
|
||||
|
||||
任务书列出的 `docs/doxygen/doxygen-awesome-css`、`platform/ios/app/MBXAppDelegate.m`、`platform/windows/vendor/vcpkg` 均未触碰、未暂存。用户提供的未跟踪 STEP-082 任务书也未加入 commit:其原始行尾空格会使 `git diff --check` 失败,故未改写。
|
||||
|
||||
本报告将以第二个 scoped docs commit 提交,然后执行 `git push origin particle/main`;最终 push 结果和 Final HEAD 以提交后事实为准。
|
||||
Reference in New Issue
Block a user