2.7 KiB
2.7 KiB
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 optAssetCatalogCompile因 Xcodeactool返回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/ iOS6.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.carSHA-256 与输入997014...一致。 - 以上仅证明 iOS 实体机二进制可以构建,不代表 iOS 真机运行通过、NavSea RN 宿主端验收、正式公网发行已通过。正式 Build Source Commit、Android/iOS/RN 同源构建、GSRL Source Lock、远端制品 SHA 需另行严格验收。