codenameone / CodenameOne

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Home Page:https://www.codenameone.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Will need to update Billing Library on Android

danieltsai1230 opened this issue · comments

We've detected that this app is using an old version of Google Play Billing. From November 1, 2023, all app updates must use Billing Library version 5 or newer.

Action required: Please verify your publicly available APKs are updated to the latest version of the Play Billing Library. This includes any APK or App Bundle rolled out in production.

Is the issue related to querying subscribe status of the order on the server-side program?

  1. Starting on August 2, 2023, all new apps must use Billing Library version 5 or newer. By November 1, 2023, all updates to existing apps must use Billing Library version 5 or newer.
    (https://developer.android.com/google/play/billing/deprecation-faq).

@danieltsai1230 yes this is about the deprecation of the existing API level we use in Google Play.

@shannah new apps using this API will be blocked on August, is there an estimate on this issue?

Play Billing Library 5 and 6 include the deprecated methods querySkuDetailsAsync and BillingFlowParams.Builder.setSkuDetails that takes SkuDetails as a billing flow parameter. This means that you can gradually move to Play Billing Library 6 by planning different stages of migration.

As a first step to migration, you can just update the library version, leave your catalog and backend as they are, and test your app while it still uses the deprecated methods. If you are not using queryPurchases, launchPriceChangeFlow, or setVrPurchaseFlow, it should still work as intended. Afterwards, you can iterate to fully adopt the new subscription features released in May 2022.

https://developer.android.com/google/play/billing/migrate-gpblv6

Since we are "not using queryPurchases, launchPriceChangeFlow, or setVrPurchaseFlow, it should still work as intended"

I have added a build hint android.billingclient.version that can be used to override the billing client version. This will be available in the next release. E.g. android.billingclient.version=6.0.0.

Should I migrate the server-side program?
I use the sample server-side released by cn1.
ReceiptsScheduler.validateAndSaveReceipt

I haven't seen the build hint android.billingclient.version.
Let me know once you have done it.
I don't use Maven.
Thank you.

This went out in the release yesterday. Please give it a try.
You can verify that it "worked" by downloading sources and looking at the billing client library dependency in your gradle file.
You should have something like implementation 'com.android.billingclient:billing:6.0.0

Note: I have tested this build hint in an app and it appears to work, both on the server-side and client-side. Server-side required no changes, and I'm using the same logic as the sample IAP server that you are using @danieltsai1230 .

Thank you so much. I will try it.

I sent for Android build but still got the billing API depreciated warning.

Did you confirm that it is using version 6.0.0 in the billing client library version in your build.gradle file?

I don't see any words mention to version 6.0.0.
Should I add android.billingclient.version=6.0.0 to the build hint?

I add android.billingclient.version=6.0.0 to build hint but saw implementation 'com.android.billingclient:billing:4.0.0' in build.gradle.

The billing API depreciated warning disappear. But there is still exist an warning androidx.fragment:fragment (androidx.fragment:fragment) 1.0.0 depreciated.