I have noticed that apps installed with Crashlytics Android Beta Distribution always reinstall app from scratch. Like all my preferences, databases, etc data get lost after each update of the app. Is there any way to configure the update process? Instead of a clean install to have it updating app the same way Play Market performs its updates.
When updating builds in Beta, a normal update should happen and non of your data should be lost.
Related
I am very new to React Native and Expo. I am now assigned to work on our company mobile app. While doing a build and pushing to Test Flight in Apple Connect, I noticed that my test code is getting Over the Air updated and going live. This is a big problem.
How do I tell from where my app is getting updated live?
I am using the Expo build tools. I checked the configuration for updates in the expo section of the app.json file. It looked like this:
"updates": {
"fallbackToCacheTimeout": 0,
},
Reading the Expo documentation it says the enabled flag is set to true by default. I assumed that was it, so I set the enabled to false.
"updates": {
"fallbackToCacheTimeout": 0,
"enabled": false
},
But my push, which just updated the version number in the app, was pushed live after the app was restarted.
From reading online the behavior is exactly like the Expo OTA update or Microsofts "Code Push". In other words, when users open the app after it's been closed it is the old version. But once they restart, the app updates to the new version.
My build process is this after pushing to my remote git repository:
expo build:ios
Then after the build is queued and builds, I take the download URL and download the .ipa bundle. From there, I use Transporter to check/upload the bundle to Test Flight. Once in Test Flight, I wait until it's done "processing", then I answer the compliance questions (encryption export).
THAT'S IT! I don't create a release in the production side or even touch that.
HOWEVER, if users (who are not beta tester BTW) close and open their app a few times, they get that version that is sitting out in test flight.
I know it's an OTA update for sure because I never issue the expo build:android command but yet....my android phone gets updated too.
I am at my wits end trying to track down where this thing is getting updated. The original developer of the app doesn't have any idea either (i.e. no help).
Any thoughts on how to tell where the thing is being hosted and how it's getting updated.
The reason you are seeing the updates to your production app is because each time you create a new build, expo "publishes" your latest build which pushes any changes OTA to all users unless you use 'release channels'.
Here is the expo documentation supporting the above statement:
https://docs.expo.dev/classic/building-standalone-apps/#3-start-the-build
"Please note: When you run expo build, Expo automatically publishes your app (with expo publish). In order to avoid accidentally publishing changes to your production app, you may want to use release channels."
https://docs.expo.dev/distribution/release-channels/
Once you establish a release channel separate from your production build, you can build separately, and publish OTA updates to that separate build apart from your app that is already live.
This may go without saying, but you can revert your production app using expo publish. As it stands with your current release channel setup, this will also update your TestFlight app.
Can someone please tell me if switching to Beta version of Android Studio, it doesn't make problems in future to publish app or app updates on Google Play?
App updates are related to your code, not the IDE. If you really wanted to, you could even write out the entire app in Notepad/Vim and compile via CLI.
The only difference between Android Studio GA and Beta versions is that Beta versions have tendencially got more bugs and issues. Nothing that should hinder publishing an app to App stores in any way.
Personally, if you are newby, I would stick with Release versions, keep them updated (your dependencies as well) but either way you should be OK.
Hope it helps.
I have built an android tablet application which is installed only from my web site - manual install.
I will need to be able to provide updates to existing users through the same site - without obliging users to uninstall the existing application.
What do I need to change in my (eclipse) project to permit this ?
Simon -
Apps are designed to be upgraded in place on Android. All you need to do is ensure that the version number of the app being installed is greater than the previous version.
You can still provide debug releases, simply increment a portion of the version to reflect that change and your users can keep getting updates. Otherwise, you may want to have an explicitly Debug and Release version that can be installed side by side and not conflict with each other, but that may be more trouble and confusing than its worth.
I have created an app through Eclipse and have uploaded it in the app store. I have the app installed in my phone.
Now I am working on an update. I am having trouble installing the app because it tells me the signature is different.
I know that this is due to using different keystores to sign each. But I dont want to uninstall the app 'cause I want to make sure that the app is able to go to the normal app update process.
Is there a way to go around this?
There are a few possible solutions to this for you:
Change the package name to some thing different like com.example.myapp.debug and remove that from the package name before publishing (this would have to be in the manifest)
Yes you could uninstall the app, do debug work, then uninstall the debug and reinstall from app store, push the update and wait for Google Play to register that version.
Do as Kai said, sign the new version and install it as an update, but then you won't get the updates as triggered by Google Play unless you uninstall and reinstall
Sign your new version, then you can install it as an update as opposed to uninstalling the Google Play version. This is probably the only way.
If you publish multiple app updates to the Android market, and the user hasn't downloaded them yet, will Android install each update in order when they finally do update or will they only install the most recent one?
The reason I ask is that we have some code to migrate from one data format to another. It would be nice to publish an update that does this migration, and then clean out our codebase to only use the new format going forward. It would be safe to do this is we could be sure the Android Market would install each update in order.
What do you think?
Android Market app will fetch and install the latest version. So if user has version 1.0 and you publish 1.1, then 1.2 and then 1.3, when user tries to update the app it will get version 1.3 directly.
By the way, if what you are upgrading is a Sqlite database, the SqliteDatabase's getVersion method could be handy.