We have an Application which utilizes In App Billing. The problem that we're seeing is as follows:
When the versionCode of the App on the device is the same as the version code of the Application published in the Play Developer Console, Billing works fine.
When a build with a higher versionCode is uploaded to the Play Developer Console, In App Billing stops working on the App on the device (with a lower versionCode) saying that "The Application is not configured for Billing".
This is fine, when testing, but the question is - what is the behavior when the App is in the Google Play Store? When you replace the Application (to perform an update) does the Application that's in the wild (with a lower versionCode) stop working with In App Billing?
If so, what approach do people use to performing updates? Do you force the user to update before purchasing? Or is this problem only true prior to publishing?
Any advice would be greatly appreciated!
Thanks!
As long as the "newer" apk that you upload is signed using the same key as the existing one then you shouldn't run into any problems.
I have just tested running my app with a previous version (version code is lower) and in app billing still works.
The caveat is that you must not delete the apk from the market, simply deactivate it.
But what you say about forcing updates, I do prompt the user to update when they open the app regardless.
You may have already read it, but here is the official info on multiple apks.
Related
I had previously launched an app on both Google Play store and app store.
During the initial release process, few of my friends helped me test my app via internal testing for android users and testflight for iOS users.
After successful release, I continued working on my updated version, and now I have everything set up except testing.
For now, I have uploaded new version of an app on internal testing(android), testflight(iOS), and wait for further process.
What I am wondering about is that testers(my friends, in this case) had downloaded previously released version and they still can download and test newer version of my app.
To sum up, here are things I want to know.
Can people whom I listed previously as testers and had downloaded previous release version of my app still download and use newer version of an app for testing?
I found out that this process is considered as QA(Testing). How mobile app testing on physical devices be done in companies?
Thank you so much!
InternalTesting (on Google), same thing as TestFlight (on Apple), is done by sending invitations, so just remove relative Google/Apple account from their address lists and they cannot download updates and neither the App again.
The second point is not clear: what do you want to know exactly?
I prepared my own I published in android apps on Google Play. Downloading app. However, I publish every new device is installed after the application version is not automatically updated. I tried on all devices. I activated the automatic update option from the Google Play app.
Unfortunately, I get the same results. Is there that might help?
Solution.
Add validation code inside your own app to check application version and open Google Play if newer is released. You can store version somewhere in your own server.
Automatic application updates are not popular in Android devices. Sad but true.
Do not forget whether your enabled this option in your device https://support.google.com/googleplay/answer/113412?hl=en
My app uses AdMob. My app doesn't contain any inapp purchases. No device is excluded in developer console and devices tested had higher sdk version than minimum required. My app is optimized with proguard and then zipaligned. Users can install other apps without problems. Why are they getting this error? How can I solve it?
Also when trying to install it via browser on a PC? In this case, where does the error occur, on the pc or the mobile device?
Which app is it?
I think Google Play takes random amount of time even after app being published, before it becomes available for download. Same thing happened to other person I know. After few hours of app being published (not app being uploaded) his app could be downloaded. His app could be downloaded before mine even though mine app was uploaded before his.
Say I have an application that users have installed from the Play Store, if one of my users reports a bug and I want to send them a patched version of the app to test, they can install it to their phone just fine. But if I then update the app on the Play Store, will the user get the update? My testing seems to indicate this is the case, but is there any gotchas?
The way my build process works is that each time I build, it gets a higher version code, so the patched version will have a higher version code that the one currently in the Play Store and then the version I upload to the Play Store after sending my user the patch will have a higher version code again.
I'm taking a decently wild guess here, but it should work, provided the following are met:
The version code of the apk on Google Play is higher than that of the hotfix
The user originally installed the app from Google Play to begin with, and only updated it via side loading.
The hotfix and the Google Play update are both signed with the same key.
I'm decently sure this will work, as I recall a long discussion about this on one of the android google groups that ended with success. I unfortunately cannot find it right now.
If you do try it out, please post back with the results.
I don't see any issue with this workflow. As long as you increment the version number at each build.
Another way to ask the question: how to make inapp billing working with all versions of my app?
I have got an app with inapp billing. I want to update it.
My active apk on the developer console is in version 1. My problem is the following:
when I install my updated app (signed package) in version 2 on my device using adb, I get the following message: "This version of the application package is not configured for Market billing"
when I install my updated app (always signed package) in version 1 (same version as the one on the console) on my device (what I can't do on the console...I have to increase the version number !) using adb, verything works...
Consequently, it seems that inapp billing works only with one version of the app: the one which is active in the console. I imagine that my users will have the same issue: only the users with the last update of the app will be able to perform inapp billing...the others will get the error.
Anybody knows how to solve this issue ? How can I do so that all my apps already installed in the world will be able to do inapp billing whatever the version number is ??
Thanks !!!
By "console" do you mean your publisher's account?
I think this isn't a bug but a feature by design. If you attempt to make a purchase that doesn't have one of the 4 android.test.* item ids, and it is running a debug version or even a release version that is newer than the one you have published, you will receive this error:
For example, if you're running on your device a Release mode that's one version higher than what's in the Market and you try to purchase a real item (not an android.test.* one), you will get the aforementioned error.
To further clarify: If you run an application of a higher versionCode than the one in the AndroidMarket (with the same package name, of course) it will succeed in "making the purchase" if you use one of the 4 android.test.* item ids.
Please note that this is based on my own experience and observation as full documentation on this leaves something to be desired.
Here is what I have observed while using In-App-Billing.
When you upload your release apk (regardless of Alpha/Beta/Production), IAB will not work right away, you will have to wait for a few hours before it can work
Uploading a new version of the apk (higher version) will also be the same. You will have to wait for a few hours for it to eventually work. The older version with IAB will still work though. What I usually do is to upload my release apk as Beta, wait a few hours, then when it is already working, promote the apk to production.
i face this error. solution:please upload sign apk and test with your Product id:com.test.purchased and set as a in-app product.
(1)run on your mobile using export with sign apk .
(2)if error is occur then wait 1-2 hours because sometime google take response late.