Files
MapLibreParticleLab/docs/50_Step记录/STEP-060C_MavenLocal签名隔离修正_v1.md
2026-09-07 22:28:13 +08:00

2.6 KiB
Raw Permalink Blame History

STEP-060C Maven Local 签名隔离修正

目标

修正 custom OpenGL AAR 的 Maven Local handoff:保持正式坐标 org.maplibre.gl:android-sdk-opengl:13.4.1 与精确 task :MapLibreAndroid:publishOpenglreleasePublicationToMavenLocal,但不要求本地拥有 PGP signatory;Maven Central 正式发布仍必须签名。

实现

  • 保留 Vanniktech signAllPublications(),使 Central publication 继续具备签名任务和语义。
  • SigningExtension.required 使用延迟 Provider<Boolean> 检查 task graph 是否含 *PublicationToMavenCentralRepository:Local graph 为 false,Central graph 为 true。
  • 因而 Maven Local 的 Sign task 可正常跳过,不读取 signatory;Central task graph 仍会执行且要求签名。
  • 未改变 AAR、artifactId、version、publication 名称、custom repository 来源或 RN bridge。

人工 Maven Local 验收(2026-09-07)

用户在 Gate C 封存 Linux 环境实际执行:

cd /mnt/sda1/MapLibreParticleLab/platform/android
./gradlew :MapLibreAndroid:publishOpenglreleasePublicationToMavenLocal --console=plain
  • :MapLibreAndroid:signOpenglreleasePublication SKIPPED;未出现 no configured signatory。
  • :MapLibreAndroid:publishOpenglreleasePublicationToMavenLocal 完成,BUILD SUCCESSFUL in 3m 33s(57 actionable tasks:49 executed、8 up-to-date)。
  • Maven Local 已有 AAR、POM、module metadata,坐标为 org.maplibre.gl:android-sdk-opengl:13.4.1;没有 .asc,符合 Local publication 不签名的设计。
  • 发布 AAR 与 platform/android/MapLibreAndroid/build/outputs/aar/MapLibreAndroid-opengl-release.aar SHA-256 一致,均为 2e73e25cfd31bb181f75ba2d84974afb949640f72de46bc0234d4579abe3ba38。
  • AAR classes.jar 含 org/maplibre/android/maps/MapLibreMap.class、org/maplibre/android/maps/WeatherRuntime.class,并含 arm64-v8a、armeabi-v7a、x86、x86_64 四 ABI。

47646fb708d096cf5ee0c3b8eeaeb7e6083081279c79f4a642db554efe88fad7 是 publication 前曾核对的中间 AAR SHA;publication 重新执行 bundleOpenglReleaseAar 后已由上述最终 SHA 取代,不得再作为当前 Maven Local artifact 引用。

验证与状态

  • 已完成:Maven Local signing isolation、Local publication、AAR/POM/module 存在与坐标核对、build output 与 Local AAR SHA 一致、两项 Host class 与四 ABI 核对。
  • 未完成:RN Test Host Android compile/install、STEP-060 Phase A/B、style reload/map remount/stale reactTag/detach lifecycle、Binary Field 与 STEP-061;这些均不属于本 Step 的 PASS 范围。
  • 状态:CLOSED / PASS(仅限上述 Maven Local signing isolation 与 publication 验收)。