Android
Testing in-app purchases on Android devices using Google Play test tools
Essential Kit supports Google Play’s test flows out of the box. Use this streamlined checklist to cover license testing and Play Store tracks.
Quick Troubleshooting Reference
OnInitializeStoreComplete event not triggered
You may have Unity IAP installed along with Essential Kit Billing Services enabled
Essential Kit Billing Services(IAP) don't use Unity IAP as we code all native libraries on our own for better control. Remove Unity IAP package if it's already installed to resolve the issue.
“Item unavailable” dialog
Package name or signing key doesn’t match Play Console entry
Install a build signed and named exactly like the Play Console listing.
No test payment methods shown
Google account not listed as a license tester
Add the Gmail address underPlay Console → Settings → Monetization → License Testing, then reinstall.
Purchases charge real money
Tester isn’t a license tester
Add the account to the license tester list or warn QA when using test tracks.
SERVICE_UNAVAILABLE
when sideloaded
App never uploaded and account not a license tester
Upload at least one build to a track and/or add the tester as a license tester.
Transactions stay pending or fail verification
Missing/mismatched Google Play public key
Paste the Base64 public key into Essential Kit Settings → Billing Services → Android.
1. Configure License Testers (Recommended)
Open Play Console → select your app.
Navigate to Settings → Monetization → License Testing.
Add testers’ Gmail addresses (group by role if helpful) and save.
Wait a few minutes for Google Play to recognise new testers.
Why license testers? You can sideload debug builds, bypass the “billing library requires Play upload” restriction, and use the special “Test card” payment methods that never charge real money.
💡 Keep version codes and application IDs identical to the Play listing so sideloaded builds behave like the uploaded version.
2. Make Test Purchases
Sign into the Play Store on the device with the tester’s Gmail account.
Install from Play or sideload your Essential Kit build (package name + signing certificate must match the listing).
Trigger a purchase; the dialog should display “Test card” options.
Complete approvals/declines to exercise both success and error paths. Essential Kit surfaces results via
BillingServices.OnTransactionStateChange
.
3. Optional: Play Store Test Tracks
Use internal/closed/open tracks when you need broader distribution:
Upload and publish your signed AAB/APK to the chosen track (allow a few hours for availability).
Share the opt-in URL; testers tap Become a tester to install from Google Play.
Remember: purchases in test tracks hit real payment methods unless that account is also a license tester. Automatic refunds can take ~14 days.
4. Before Release
Confirm the Google Play public key matches in Essential Kit settings as invalid keys leave transactions pending making verification failed.
Run at least one production-track smoke test with a real payment before launch.
Last updated
Was this helpful?