关于 play-billing-library-version-upgrade
play-billing-library-version-upgrade 是用于升级 Android 项目中 Play Billing Library 的开发技能。它检查依赖和 API 使用情况,规划逐步或直接迁移,并通过测试与构建验证改动。
主要功能
- 01检查账单库依赖和有效版本
- 02规划直接或分阶段迁移
- 03按迁移指南重构 API 用法
- 04核对版本专属迁移清单
- 05运行测试与 Gradle 构建验证
适用场景
- 01升级过时的 Play Billing Library
- 02处理多个主版本之间的破坏性变更
- 03验证迁移后的 Android 项目
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ android/ skills --skill play-billing-library-version-upgrade安装后在 Claude Code 中输入/play-billing-library-version-upgrade确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/migration-logic.mdversion-checklist.mdreferences/android/google/play/billing/release-notes.md详细介绍
阶段 0:意图说明
报告操作:继续之前,立即告诉用户:“我将把 Play Billing Library 升级到最新版本。”
阶段 1:发现与情境感知
- 首要检查(构建版本):在
build.gradle、build.gradle.kts或libs.versions.toml中找到项目的计费依赖(例如com.android.billingclient:billing)。 - 初始编译测试:立即尝试同步并构建项目。
- 备用发现(有效版本):
- 触发条件:仅当构建立即失败时,扫描源代码以查找已弃用的项。
- 逻辑:存在已弃用的 API,表明“有效版本”——定义为这些特定 API 最后可用时的版本,而非它们引入时的版本。
- 示例:如果存在
SkuDetails,则将基准视为 PBL v7 或更早版本(无论build.gradle中的版本字符串是什么)。
- 确定目标与路径:访问版本工具或发行说明,以查找最新稳定版本,并根据有效版本基准计算[直接/分步]迁移路径。
- 计算迁移路径:
- 如果有效版本与目标版本相差不超过 2 个主版本:规划直接迁移。
- 如果落后超过 2 个主版本:规划分步迁移。每次迁移跨越两个主版本(例如 v4 -> v6 -> v8),直到与目标版本相差不超过两个版本。
- 报告操作:继续之前,告诉用户:“我检测到您实际上使用的是 PBL [Current],最新版本是 [Target]。我计划采用[直接/分步]迁移路径。”
阶段 2:上下文文档映射与规划
对于迁移路径中的每次主版本升级,必须综合以下内容中的说明:
- 迁移指南(其中
[X]是目标主版本)。 - 发行重点:相关发行说明中的“弃用”和“破坏性变更”部分。
- 开发者文档:参考你对 Google Play Billing 文档的了解,了解此应用使用的相关功能(例如订阅、一次性商品)。
- 制定计划:找出所需的每项具体代码更改(API 移除、类替换、逻辑调整),并以检查清单的形式列出。
阶段 3:执行说明
报告操作:对于以下每个步骤,请在执行前简要说明将要做什么,并在执行后简要总结完成的工作。
步骤 1:SDK 与环境对齐
- 操作:更新
build.gradle以满足 SDK 要求(例如,“PBL 9 要求compileSdk35”)。 - Gradle 版本:检查新库是否需要更新版本的 Android Gradle Plugin(AGP)或 Kotlin。
步骤 2:基于意图的重构
分析现有代码的意图,而不是单纯进行文本替换。
- 操作:必须遵循 references/migration-logic.md 部分、官方迁移指南,以及阶段 2 中指定的常规文档页面中的所有弃用说明和重构模式。
- 验证:确认已遵循所有文档中的全部步骤,并确保按照参考资料检查清单中的具体说明执行。
步骤 3:顺序验证(仅适用于分步迁移)
- 升级到迁移路径中的第一个主版本中间版本。
- 运行
./gradlew assembleDebug,确认没有遗漏任何中间版本的破坏性变更。 - 重复上述步骤,直到达到最终目标版本。
第 4 步:最终验证清单
- 智能清单验证:
- 打开 references/version-checklist.md,找到 智能版本专属清单。
- 操作:针对 [检测到的当前版本] 与 [检测到的新版本] 之间的每个版本,使用“在文件中查找”或结构分析,确认代码已处理每一项。
- 测试:运行所有单元测试和实现测试(
./gradlew test)。 - 干净构建:确认项目可以完成完整的干净构建:
./gradlew clean assembleDebug。然后运行./gradlew sync和./gradlew build,以便用户可以立即手动测试新版本。
最终报告
向开发者说明“原因”:
- “我将你的 SDK 更新到了 [版本],因为 PBL [版本] 根据 [文档中的原因] 要求使用该版本。”
- “我删除了你的自定义
retryConnection()逻辑,因为库现在会通过enableAutoServiceReconnection()原生处理此功能。” - “已成功从 PBL [旧版本] 升级到 PBL [新版本],并通过单元测试验证。根据对最新库功能和此应用当前功能集的分析,我建议你探索最新版本中的 [新功能](例如预付费计划或分期付款),因为该功能现已推出,但尚未实现。”
评论
支持 Markdown