Play Billing Library: Smart Version-Specific Checklist
Use this checklist to verify that every technical requirement between your [Current Version] and [Target Version] has been met.
PBL v1.x through v3.x
- [ ] [v1.0] Builder Pattern: Verify
BillingClient.newBuilder(context)is used. - [ ] [v2.0] Mandatory Acknowledgment: Verify
acknowledgePurchase()orconsumeAsync()is called within 3 days. - [ ] [v2.0] Response Types: Logic must handle
BillingResultobjects instead of raw integers. - [ ] [v3.0] Legacy Removal: Verify
ChildDirectedandUnderAgeOfConsentparameters are deleted.
PBL v4.x Series
- [ ] Async Purchasing: Confirm
queryPurchases()is replaced withqueryPurchasesAsync(). - [ ] Multi-SKU Accessors: Replace
getSku()withgetSkus()(returns a list) inPurchaseobjects. - [ ] Subscription Refactor: Verify
setSubscriptionUpdateParams()is used for change logic.
PBL v5.x Series
- [ ] Data Model Swap: Replace all instances of
SkuDetailswithProductDetails. - [ ] Personalized Pricing: Implement
setIsOfferPersonalized()for EU price disclosures.
PBL v6.x Series
- [ ] Replacement Mode: Replace
ProrationModewith theReplacementModeenum. - [ ] User Choice Billing: Replace
AlternativeBillingListenerwithUserChoiceBillingListener.
PBL v7.x Series
- [ ] SDK Compliance:
compileSdkis set to 34 or higher. - [ ] Pending Purchases: Replace parameterless
enablePendingPurchases()withenablePendingPurchases(PendingPurchaseParams). - [ ] API Cleanup: Replace
setOldSkuPurchaseToken()withsetOldPurchaseToken().
PBL v8.x Series
- [ ] SDK Compliance:
compileSdkis set to 34 or higher. - [ ] Terminology Shift: Rename "in-app items" to "one-time products" in UI/strings.
- [ ] Signature Enforcement:
onProductDetailsResponsesignature MUST be(BillingResult, QueryProductDetailsResult). - [ ] SUBS Offer Token: For
SUBStype,ProductDetailsParamsMUST include anofferToken. - [ ] Auto-Reconnection: Verify
enableAutoServiceReconnection()is used in the builder. - [ ] Min SDK Increase: Verify
minSdkVersionis at least 23.
PBL v9.x Series
- [ ] SDK Compliance:
compileSdkis set to 35 or higher. - [ ] API Removals: Ensure all usages of
SkuDetails,SkuDetailsParams, andSkuDetailsResponseListenerare removed and replaced with theirProductDetailsequivalents. - [ ] Blocked Store Error Handling: If targeting restricted device modes
(e.g., kids modes), ensure
androidx.coreis at v1.9+ and update error logic to catchBILLING_UNAVAILABLEinstead ofERROR. - [ ] External Payment Program Null-Safety: If using developer-provided
billing, update
DeveloperProvidedBillingDetails.getLinkUri()logic to explicitly check for bothnulland empty string ("") values before parsing.
Future Versions (PBL 10.0.0+)
- [ ] Dynamic Checklist Generation: For any version >=10.0.0, you MUST synthesize a new checklist for each new version header found in the Release Notes.
- [ ] Identify Version Delta: Review "Breaking Changes" and "Removed APIs"
for the new version and create a list of terms to
grep.