Files
MapLibreParticleLab/docs/报告/V25_iOS实体机Bazel构建兼容性修复与资源溯源_v1.md
tei f32f6f45fd
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
build: fix v25 iOS device-only Bazel release inputs
2026-10-11 22:28:58 +09:00

2.7 KiB
Raw Blame History

V25 iOS 实体机 Bazel 构建兼容性修复与资源溯源 v1

日期:2026-10-11。范围:仅 Particle 统一发行的 iOS Metal 实体机 arm64 构建与 Bazel Core 文件声明;不改共享运行时 API,不引入 Simulator slice。

故障与原因

  • V25 首次统一发行 release.sh 25 build 的 Android 四 ABI Release AAR 与 Maven Local PASS;在 iOS Bazel opt AssetCatalogCompile 因 Xcode actool 返回 No available simulator runtimes for platform iphonesimulator 中断。手工指定 actool --platform iphoneos 亦同样失败,不能将其误读为 XCFramework 需要模拟器架构。
  • 后续尝试暴露 Bazel Core 声明缺失:当前源码已新增 src/mln/renderer/symbol_shader_provenance.hpp、symbol_render_inputs.hpp、symbol_render_result.hpp,原 bazel/core.bzl 中 MLN_CORE_HEADERS 未登记;已补齐三项。

实体机资源输入与溯源

  • v23 正式发行:13.6.1-particle.23 / iOS 6.29.0-particle.23,来源 release/maplibre-particle/13.6.1-particle.23/SOURCE_LOCK.json 的正式发行 iOS ZIP。该 ZIP 本地 SHA-256=9dbc477458377ab7e207bfd125d8f4106d3d83e7f923499a7bc048e39f74a76a,与 v23 Source Lock 一致。
  • 提取 ZIP 内 MapLibre.xcframework/ios-arm64/MapLibre.framework/Assets.car,本次纳入版本控制 platform/ios/resources/Assets.car,SHA-256=997014687d17e93b9a979b4a47229d082e04a03587b01b4718ac7cb20f1a196b。
  • 核对 git diff 87f3d1c59a52581fb8339f0ea7d106b9f4b94fef HEAD -- platform/ios/resources/Images.xcassets 为无差异;即资源原始输入自 v23 冻结源码未改变。保留原始 .xcassets 文件供其他构建使用,仅 apple_xcframework(name="MapLibre.dynamic") 的资源输入使用上述受控、可追溯的已编译 Assets.car,避免当前 Xcode 环境的 actool 错误。
  • 该预编译资源绑定 Xcode 26.3 (17C529) 工具链;后续原始资源改变或 Xcode 资源格式变更时,须重新生成并记录 Hash,不能无限期假设可复用。

验证与边界

  • 原 Bazel opt Metal 真机命令:bazel build -c opt --//:renderer=metal //platform/ios:MapLibre.dynamic。本阶段候选资源及头文件修正的验证结果为 Build completed successfully,exit 0;约 772 项,实际构建 563 actions 后的增量验证通过。
  • 产生 bazel-bin/platform/ios/MapLibre.dynamic.xcframework.zip,仅 ios-arm64,无 Simulator;ZIP 内 MapLibre.framework/Assets.car SHA-256 与输入 997014... 一致。
  • 以上仅证明 iOS 实体机二进制可以构建,不代表 iOS 真机运行通过、NavSea RN 宿主端验收、正式公网发行已通过。正式 Build Source Commit、Android/iOS/RN 同源构建、GSRL Source Lock、远端制品 SHA 需另行严格验收。