diff --git a/bazel/core.bzl b/bazel/core.bzl index 98e9ee59f..bd9590032 100644 --- a/bazel/core.bzl +++ b/bazel/core.bzl @@ -675,6 +675,9 @@ MLN_CORE_SOURCE = [ }) MLN_CORE_HEADERS = [ + "src/mln/renderer/symbol_render_inputs.hpp", + "src/mln/renderer/symbol_render_result.hpp", + "src/mln/renderer/symbol_shader_provenance.hpp", "include/mln/particle/field/field_data_adapter.hpp", "include/mln/particle/field/field_profile_contract.hpp", "include/mln/particle/field/field_profile_validator.hpp", diff --git a/docs/报告/V25_iOS实体机Bazel构建兼容性修复与资源溯源_v1.md b/docs/报告/V25_iOS实体机Bazel构建兼容性修复与资源溯源_v1.md new file mode 100644 index 000000000..f6ffd3ed5 --- /dev/null +++ b/docs/报告/V25_iOS实体机Bazel构建兼容性修复与资源溯源_v1.md @@ -0,0 +1,21 @@ +# 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 需另行严格验收。 diff --git a/platform/ios/BUILD.bazel b/platform/ios/BUILD.bazel index 93f0b28f8..b7526fb7d 100644 --- a/platform/ios/BUILD.bazel +++ b/platform/ios/BUILD.bazel @@ -143,8 +143,8 @@ apple_xcframework( bundle_name = "MapLibre", data = glob([ "resources/*.lproj/**", - "resources/*.xcassets/**", ]) + [ + "resources/Assets.car", "PrivacyInfo.xcprivacy", "resources/metal-cpp-ignores.txt", ], diff --git a/platform/ios/resources/Assets.car b/platform/ios/resources/Assets.car new file mode 100644 index 000000000..7164fa607 Binary files /dev/null and b/platform/ios/resources/Assets.car differ