I am surprised that not many people has reported this issue before. I have seen it from SDK v1x until now, and it is actually quite a serious issue.
Causing another bug for SDK v27
Even more serious now is that my new app based on SDK v27.0.0 is unable to use the location service after upgrading the standalone. But it works fine if I uninstall it and install a brand new one.
I suspect it is due to it loading the old js bundle (which is confirmed happening) for v25 in the new SDK v27 build and crashes something that cannot be reverted. No matter the cause of this, fixing the above issue should fixes this also.
Because of this, I am holding back my SDK v27 deployment after having gone through so much pain on waiting and fixing everything. Because my current user’s app will crash after updating.
Maybe set updates.fallbackToCacheTimeout to something like 10000 in your app.json.
re: the location problem. a few days ago, we had a bug where location stuff was broken for SDK27. If you build a new app using the build service from scratch, it should be resolved now. very sorry for that trouble. let us know if rebuilding your production app doesn’t solve that problem.
fallbackToCache should be talking about Automatic Updates, but I have already implemented my own manual update in background. So it is not needed.
This problem (using old bundle) is not starting from sdk v27, but long long time ago. I am expecting that when a user update his app from appstore and then open it, it should be using the js bundle within the new standalone, instead of the old/cached one
The whole Location package failed. The reproduction procedure is as follow:
Install app of SDK v25 version
Open it once and allow the permission
Update it
Open it and askAsync seems to be denied or undetermined (cannot confirm this in standalone, but at least I know its not grantes because of some custome logics of my own).
Close app and reopen, still the same
Uninstall and reinstall.
Works perfectly.
My guess is: the permission granted in app based on SDK v25 is not carried onto app based on SDK v27 crashes something permanantly. And will never recover even after closing the app.
Hi @carsonwah, regarding the old JS version, when you perform a standalone build, we embed the most recent publication you have for the project. You can view the most recent publication by running something like exp publish:history --platform ios in your project directory. Could you try publishing a more recent version of your project, then performing a build to see if that fixes things?
I understand the workflow of publishing and building, but the updated standalones just use the old JS (instead of the embedded JS) for the first launch. Newly installed standalones works perfectly.
Publish history
Here is my result from exp publish:history --platform ios:
hi @carsonwah, thank you for your detailed report, it really helped in figuring out what exactly the problem was. I’ve gone ahead and made a github issue to track this – https://github.com/expo/expo/issues/1719 .