# play-billing-library-version-upgrade

Скилл ведёт Android-проект с устаревшей Google Play Billing Library до актуальной стабильной версии. Он сам находит зависимость в Gradle и проверяет сборку после каждого шага.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1900 установок · ★ 9764
- Автор: Google LLC
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/android/skills/tree/HEAD/play/play-billing-library-version-upgrade/SKILL.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/skills/play-billing-library-version-upgrade

## Что делает

Скилл проводит проект через обновление Play Billing Library: ищет зависимость `com.android.billingclient:billing` в `build.gradle`, `build.gradle.kts` или `libs.versions.toml`, пробует собрать проект и только после падения сборки лезет в код искать устаревшие API. Отправная точка считается по последнему месту, где эти API ещё жили: если в коде остался `SkuDetails`, за базу берётся PBL v7 или ниже, что бы ни было написано в Gradle.

Дальше он сверяет гайды миграции и release notes по каждой мажорной версии, печатает чек-лист правок и идёт по нему. Внутри два файла: `references/migration-logic.md` с паттернами замены и `references/version-checklist.md` со списком проверок по версиям.

Разрыв больше двух мажоров означает ступенчатую миграцию: после каждого прыжка через две версии запускается `./gradlew assembleDebug`. Пропустить эту проверку нельзя, иначе пропущенные breaking changes всплывут только на финальной версии. Заодно выравниваются требования к SDK: PBL 9, например, требует `compileSdk` 35. В конце идут `./gradlew test`, `./gradlew clean assembleDebug`, `./gradlew sync` и `./gradlew build`, а отчёт объясняет каждое удаление вроде самописного `retryConnection()`, которое теперь заменяет `enableAutoServiceReconnection()`.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill play-billing-library-version-upgrade -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/play-billing-library-version-upgrade/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/play-billing-library-version-upgrade/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill play-billing-library-version-upgrade -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/play-billing-library-version-upgrade/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill play-billing-library-version-upgrade -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/play-billing-library-version-upgrade/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install android/skills play-billing-library-version-upgrade
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/play-billing-library-version-upgrade/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill play-billing-library-version-upgrade -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/android/skills --path play/play-billing-library-version-upgrade
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/play-billing-library-version-upgrade/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill play-billing-library-version-upgrade -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/android/skills/tree/HEAD/play/play-billing-library-version-upgrade/SKILL.md

## Когда брать
- Поднять зависимость `com.android.billingclient:billing` до актуальной стабильной версии
- Определить реальную версию PBL, когда версия в Gradle расходится с кодом
- Заменить устаревшие API вроде `SkuDetails` на текущие классы
- Разбить миграцию через несколько мажоров на шаги с проверкой сборки
- Прогнать чек-лист по всем пропущенным версиям и тесты перед релизом

## Примеры запросов агенту
- Обнови Play Billing Library до последней стабильной версии, зависимость лежит в `libs.versions.toml`
- В коде ещё остался `SkuDetails`. Разберись, какая версия PBL реально стоит, и проведи миграцию
- Пройди чек-лист по всем пропущенным версиям PBL и прогони `./gradlew test`

## Похожие
- [rc-alternative-billing](https://affpapa.org/nevibecode/skills/rc-alternative-billing.md) — скилл · 603 установки
- [capacitor-app-upgrade-v7-to-v8](https://affpapa.org/nevibecode/skills/capacitor-app-upgrade-v7-to-v8.md) — скилл · 704 установки
- [capacitor-app-upgrade-v6-to-v7](https://affpapa.org/nevibecode/skills/capacitor-app-upgrade-v6-to-v7.md) — скилл · 643 установки
- [play-developer-console](https://affpapa.org/nevibecode/skills/play-developer-console.md) — скилл · 666 установок
- [rc-revenuecat-vs-raw-billing](https://affpapa.org/nevibecode/skills/rc-revenuecat-vs-raw-billing.md) — скилл · 601 установка
- [google-play](https://affpapa.org/nevibecode/skills/google-play.md) — скилл · 3600 установок

Из того же набора: [android/skills](https://affpapa.org/nevibecode/by/android/skills.md) — 24 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
