kimxogus / react-native-version-check

A version checker for react-native applications
MIT License
712 stars 172 forks source link

Google Play App displays "Open" instead of "Update" even when new version is available #143

Open CaptainJeff opened 3 years ago

CaptainJeff commented 3 years ago

It seems as though the google play store has a caching issue where users will see that they need to update (from react-native-version-check) they will go to the google play store and it will only present the option to Open but not to Update. If they remove the google play store app cache it will work but otherwise it'll just keep on showing open. Numerous users have reported this. Any thoughts? (I know its not an issue with this library but I suspect other people here might experience the same thing). Any help is appreciated

stephichau commented 3 years ago

@CaptainJeff I've had the same issue 😭😭, have u been able to fix it somehow?

CaptainJeff commented 3 years ago

@stephichau nope! Unfortunately still looking for a solution

namsangil commented 3 years ago

I'm thinking the same thing. There is a game that I enjoy playing. I found game is calling a market URL that no cached for Force Update. Now I'm trying to solve it the same way as a game. I will share it when I know how.

phatlaunchdeck commented 3 years ago

A lot of our clients are reporting the same issue for this, and I discovered that you need to actually close Google Play entirely and re-open to see the new update button for your app. But it is frustrating, because of this caching mechanism on Google Play, our clients are giving us 1-start saying we're forcing them to update to a version that doesn't exist on Play Store yet.

CaptainJeff commented 3 years ago

@phatlaunchdeck yeah same exact issue for us. It doesn't seem like other apps have this issue though.

My theory has been that there was something weird going on with the values i've set in my build.gradle versionCode or versionCodeOverride and google play doesn't know that the binary has incremented or something but I seem to be setting this properly.

Its a really frustrating issue

lychankinh commented 2 years ago

I met the same issue as yours guys. My app keep requiring my clients Update but there is no Update button on CH Play. The store displays Open instead. Some of my users gave me 1-star feedback and they certainly keep do it in future. I think this is the most disappointing point for this version check. Author, please help us find a way to fix this as soon as possible! Thanks

CaptainJeff commented 2 years ago

@lychankinh its not a bug with this version check project though. Its an issue with the google store cache. This check is right that there is an update but the google play store app isn't displaying the right button. Having said that, I think its in the best interest of this community to figure out a solution (or at least cause) to this issue.

@kimxogus @stdavis @adrianchinghc

Do you guys have any thoughts on this?

dabakovich commented 2 years ago

I think the best workaround here is to have a "fallback" to those users that are not able to update app from Google Play and add the ability to download a .apk directly from the application. Yeah, we need to add new permission for installing applications from your app, but at least it's a much more stable way for updating applications.

CaptainJeff commented 2 years ago

@dabakovich

Interesting. Thanks for your insight here. Two followup questions

1) I'm not familiar with the process of being able to download an apk from the application. Do you have any resources on that? 2) How would you "fallback"? There wouldn't be a way of knowing in our app if the user was able to update or not right? Are you saying just capture the click event and see if the version changed or something?

Really apprecaite your help. Thanks a lot

dabakovich commented 2 years ago

@CaptainJeff

  1. You can upload your APK right with the store release to your server. Then use something like react-native-apk-installer-n to trigger installation for downloaded APK.
  2. For example when a user press the "Update" button in your application you can show an additional view with the text like "Failed to update the app from the Google Play? Please, download and install it here" with a button that downloads your APK and then installing it.

Or you can play with another flow using sp-react-native-in-app-updates. Also not a bad user experience.

But I didn't use those ideas before. It is just thoughts of how to workaround the issue in my application.

CaptainJeff commented 2 years ago

@dabakovich

Amazing. Thanks for your response. I'll report back if I have success with these approaches

pedro10r commented 2 years ago

I'm having the same problem in my app. Has anyone managed to solve this?

yoursbank commented 2 years ago

Same problem here! :/

aaburkov commented 2 years ago

I ran into this problem today and received a lot of negative feedback from users ...

gilbertl commented 2 years ago

What if we make this to the package:

  1. scrape the "last updated" date from play store as part of the fetch
  2. don't return "updateNeeded" true unless the "last updated" date is > 1 day greater

This of course has the down side of users not seeing a "update needed" prompt until 24 hours later, but that's still better than users opening play store and not seeing any updates at all.

guiibussinger commented 2 years ago

I did manage to find a workaround, at least worked in my tests...

instead of using the https storeUrl from the lib, I used the play store deeplink:

const storeUrl = Platform.OS === 'android' ? 'market://details?id=your.app.bundle' : 'itms-apps://apps.apple.com/br/app/idYourAppId';

update: i still have to test in iOS but mind to change 'br' for your country in the app store deeplink

15110011 commented 2 years ago

I did manage to find a workaround, at least worked in my tests...

instead of using the https storeUrl from the lib, I used the play store deeplink:

const storeUrl = Platform.OS === 'android' ? 'market://details?id=your.app.bundle' : 'itms-apps://apps.apple.com/br/app/idYourAppId';

update: i still have to test in iOS but mind to change 'br' for your country in the app store deeplink

sorry did you try this way with the production environment? i just confirm for sure before deploying new version to store btw I'm using this url 'http://play.google.com/store/apps/details?id=com.appId' and got this bug

guiibussinger commented 2 years ago

For me works fine in production!

15110011 commented 2 years ago

For me works fine in production! Okay im gonna change the url to try. Thank you

15110011 commented 2 years ago

For me works fine in production!

it still shows Open button instead of Update button. I think google play cache is not fixed yet

mmestiyak commented 2 years ago

Sync your versionName in your android/app/build.gradle with package.json version

It will show Update instead of Open

chayanne32 commented 2 years ago

Hi I just encountered the same problem and this was the solution for my case.

Our app uses a custom API where we place a list of the supported versions of the mobile application.

I just had to make sure that the current version of the app is also included in the list of supported versions in the backend API.

mohamedadel1994825 commented 1 year ago

Aslamo Alikm Guys , I was try install app to test through apk with scrcpy on laptop so this issue happen to me but i found that install app apk through adb or other resources rather than internal testers or play store will cause this issue . same issue i talked about i this issue link https://github.com/kimxogus/react-native-version-check/issues/106