Google Play Billing purchase fails in locally installed Flutter APK but works from Internal Testing

13 hours ago 1
ARTICLE AD BOX

I am using Google Play Billing subscriptions in a Flutter app with the in_app_purchase package.

Issue

Subscriptions work correctly when the app is installed from Google Play Internal Testing.

However, purchases fail when the same app is installed locally using:

flutter run

Android Studio

manually installed APK

Purchase error:

The item that you were attempting to purchase could not be found

Working scenario

App installed from Google Play Internal Testing

Same tester Gmail account

Same subscription products

Purchase flow works correctly

Failing scenario

Same app installed locally

queryProductDetails() successfully returns products

purchase flow fails with item not found error

What I verified

applicationId matches Play Console package name

subscription IDs are correct

subscriptions and base plans are active

tester account is added in License Testing

same Gmail account is used on device

Additional test

I also signed debug/release builds using the same upload keystore:

signingConfigs { getByName("debug") { storeFile = file("upload-keystore.jks") storePassword = "xxx" keyAlias = "xxx" keyPassword = "xxx" } create("release") { storeFile = file("upload-keystore.jks") storePassword = "xxx" keyAlias = "xxx" keyPassword = "xxx" } }

But purchases still fail for locally installed APKs.

Question

Why does Google Play Billing allow purchases only for the Play Store Internal Testing install but not for locally installed debug/release APKs, even when package name, subscription IDs, and signing key all match?

Read Entire Article