Add credentialed Android device tests for Billing 9 and Play Games v2
- Dominant language
- Rust
- Stars
- 212
- Forks
- 14
- Avg merge
- 7h 23m
- Merged PRs (30d)
- 13
Description
## Context
PR #175 modernizes Crossbow to Android API 36, Play Billing 9, and Play Games Services v2. Its repository tests validate API contracts, Kotlin compilation, manifest processing, packaging, and generated project metadata, but real Billing and Play Games behavior requires a configured Play Console application, licensed tester accounts, signed builds, and Google Play-enabled devices.
## Goal
Add a repeatable credentialed test plan, automated where practical and otherwise documented as a release-gating manual run, without exposing account credentials or purchase data.
## Prerequisites
- Play Console application linked to the Crossbow test package
- Internal-testing release signed with the registered certificate
- Billing license tester with configured one-time products, subscriptions, base plans, and offers
- Play Games Services v2 project with tester access, achievements, leaderboards, events, player stats, and Saved Games enabled
- Google Play-enabled physical device or supported hosted-device provider
- Secrets stored only in GitHub environments or the selected device provider, with approval gates and log redaction
## Billing 9 coverage
- connect, reconnect, disconnect, and resume behavior
- query one-time and subscription ProductDetails, including unfetched products
- launch purchases using explicit offer tokens
- pending, cancelled, successful, acknowledged, and consumed purchases
- restore/query owned purchases
- replace a subscription using the existing purchase token, old/new product IDs, offer token, and each supported replacement mode
- verify emitted dictionaries contain both the new ProductDetails payload and documented legacy compatibility keys
## Play Games Services v2 coverage
- automatic authentication and explicit sign-in fallback
- verify the success payload is a stable Play Games Player ID and is not used as primary in-game identity
- achievements, leaderboards, events, player stats, and player info
- save/load snapshots across reinstall or a second device
- verify programmatic sign-out reports unsupported behavior without corrupting authentication state
## Device matrix
- minimum supported Android API 23
- current target API 36
- at least one current physical Google Play-certified device
## Acceptance criteria
- A versioned test plan and setup guide exist in the repository.
- Tests can be run without committing credentials or personal identifiers.
- Automated jobs are manually dispatched and protected by a GitHub environment when credentials are required.
- Failures preserve useful redacted artifacts and logs.
- A successful run is recorded before publishing the Android modernization release.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing PR #175 and the repository's existing API, compilation, manifest, packaging, and generated-metadata tests to understand the Android modernization. Add a versioned credentialed test plan and setup guide covering the stated Billing 9 and Play Games Services v2 matrix, protected manual dispatch, redacted artifacts, and release-gating evidence without committing credentials or personal identifiers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, rust
- Domain
- mobile, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100