Detect Xamarin Forms mobile app update via gmail/playstore - xamarin.forms

I have an Xamarin forms app already installed on my android device say beta 1. suppose I want to install an update for it (Beta 2) via apk from gmail, I can click on apk and it gets installed. but I want to update some info after this update.
So which method is called after the update is done, so that I can add some code in there.
Thanks

I solved it by storing the version name to sqlite database. And in the main page I always check if the Android manifest's version name is same as stored version name in local sqlite db.

Related

Creating an app variant in a firebase unity project

I have en existing app (e.g com.company.app1)made in Unity, that occasionally pulls content from firebase in the live environment (after being built).
Now I am trying to make a second build, with a different project id (com.company.app2). This second build does not use firebase after being built - it loads data from firebase before being built, and therefore already contains the needed data.
I have added com.company.app2 as a second android app in my firebase configuration, but when trying to install the resulting app2.apk there's a clash between it and the existing installed app1.apk.
Below is the error Unity is showing when I press it's "Build and Run" button.
stderr[
adb: failed to install C:\Users\*\*\*\*\app2.apk: Failure [INSTALL_FAILED_CONFLICTING_PROVIDER: Scanning Failed.:
Can't install because provider name
com.company.app1.firebaseinitprovider (in package com.company.app2) is already used by com.company.app1]
]
My question is, how can I change the provider name in app2 so both app1 and app2 can coexist on the same device?
(I need to interface with firebase shortly before building, so I can't just remove the SDK).
Alright, so I ended up just removing the SDK, that works.
Sorry to anyone who has some similar problem.

Firebase distribution for iOS

We are develop an iOS app using react-native. And every time there is an update from developer, developer need to build and install on QA phone for testing.
Now, I am trying to use fastlane and firebase app distribution, to distribute new app for QA.
When I create new release, QA got an email notification about that, and they can check it on firebase app distribution. But there is no button for download and install, only message like this.
Device registered!
The developer now needs to update their app to run on your device. You'll get an email when the app is ready to test.
How to make it available to download?
Finally,
For release iOS app to firebase app distribution, you need to generate ad-hoc.
First, u need to create a profiles ad hoc key, u can create it on apple developer or use fastlane to generate it. Then save it inside your project.
Second, set export method inside build app to be ad-hoc.
Third, use get_provisioning_profile to get your profile ad hoc key.
I believe this is very likely because your version is already the same (I think it happened to me recently). Try updating your minor version of the app. (If you are not able to do this for some reason, you can just delete existing build and upload a new one).

Xamarin.Forms Application.Current.Properties retained on application upgrade?

We're using Application.Current.Properties to store settings data for our app.
When we release a new version of the app to the store (Apple App Store and Google Play), are these settings retained or cleared?
I've just run a test by distributing two versions to HockeyApp - both for iOS and Android - and the values stored in Application.Current.Properties (note, not Settings from any settings plugin) are retained on installation of the updated version.
This is good news for us and our customer!
See this thread in the Xamarin Forums
No, all values in the name-value dictionary are serialized to disk every time when the application goes to sleep. They are read back when the application is loaded again.
The data of your app is - generally speaking - not cleared when you install an update (it is deleted when the app is uninstalled), cf. here, here and here. Hence App.Current.Properties should be maintained when updating an app. But you can easily try it. Publish a beta on HockeyApp, TesFlight or whatever, update the app and see what happens.

how to use pre-populated database with tidesdk/titanium desktop

I'm in need of some help in developing a desktop application with a pre-populated database. I have tried numerous ways to get this working including those mentioned on both Tidesdk's API here http://tidesdk.multipart.net/docs/user-dev/generated/#!/api/Ti.Database.DB and at Titanium Desktops old API here http://developer.appcelerator.com/apidoc/desktop/latest/Titanium.Database-module.
While the later (using Titanium not Ti) works in creating a database in the apps directory it does not install my pre-populated sqlite database which is located in the resources file of my app.
A couple of my attempts located below
var db = Titanium.Database.openFile('test_db.sqlite', 'test_db');
var db = Titanium.Database.openFile(Ti.Filesystem.getFile(
Ti.Filesystem.getApplicationDataDirectory(), 'test_db.sqlite'));
var db = Ti.Database.open('test_db');
As stated most of these manage to create a database with the name given but when trying to run something as simple as a db.execute(SELECT) of something I know would exist in my pre-populated db I receive an error stating
Exception executing: SELECT name, id FROM people ORDER BY name COLLATE NOCASE, Error was: SQL Statement invalid or database missing
I have searched high and low for something to answer this but everyone continues to refer to the aforementioned API's or to the Mobile API's Ti.database.install() which does not work either.
Is it possible with titanium desktop to use a pre-populated sqlite database or do I have to populate it after I create it? If so any direction would be helpful (where to place the .sqlite file in the app and what functions to call).
I am currently using Titanium Studio with a titanium desktop osx SDK of 1.2.0.RC4 as requested by tidesdk.org until they have released there open source sdk.
Thanks in advance
This is possible, I just used this feature in a recent desktop app, deployed it successfully to Windows and Mac.
In my experience, sometimes your database file can be corrupted, for example if you use the Titanium.Database.install command, and it cant find the file to preload from (maybe the first time you specified the path wrong for instance), it will create the file itself, any subsequent install commands will not work because it already thinks this database has been installed.
Have you tried clearing out the application data? This is where titanium installs the database. For Mac this is in your /User/Library/Application Support/APPNAME directory. Their is a directory for databases, delete this and try again.
Also, this answer on Titanium Q&A may help, it talks about the process with the Mobile SDK but the Database stuff is the same.
Hope this helps!

Phonegap : What happens to my sqlite database?

I am using phonegap for my mobile application. I am creating a database from the application.
Everything is working fine and as expected.
But what happens to my database when I uninstall my application?
The database is also removed or do I have to remove the database manually?
I have created a different app to erase the database, but looking at the console.log()s it is seen that database also gets erased along with the application.
Is it true? or am I doing something wrong?
In my experience, when you deinstall the App like the user would by deleting the App on the Telephone, the Data of Database also gets deleted.
When I re-install the App for Developing, let`s say with
./adb install <packagename>
or from XCode, the Data does not get deleted.

Resources