# 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` 检查 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 环境实际执行: ```bash 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 验收)。