I am a little bit confused about two differents behavior and I would need some help.
I am working on an android application with App Links implemented.
I have configured my project to use a keystore for Released build version.
When I use RUN Application of Release version from Android Studio, my application will be opened as a deeplink (disambiguation dialog open when click on a link).
When I generate a SIGNED APK using the same keystore, my application is opened as an app link (direct to the app without dialog).
I have analyzed the two apps (Build APK & SIGNED APK):
RUN Application : App Link status is in ask mode when application is installed;
Signed APK : App Link status is in always mode when application is installed;
Is anyone could explain me what are the differences between RUN Application and Generate Signed APK which could lead to these two different behavior ?
Thanks
Build APK: this is testing APK you can say.in this, we don't need to use Keystore. And in this build Keys are not restricted as we use in Google maps or Facebook SDK. Not big
Signed APK: This is purely a live build you can say. we use live credentials in this build we normally won't use this build for testing.we generate Signed APK after complete testing normal APK.
BIG DIFFERENCE is that play store only accept the SIGNED APK.
So we generate signed APK normally when we have to submit our app to play store.
I am assuming you created the assetlinks.json using the release keystore.
Actually, in regards to app link, there is no difference between the RUN Application(release build) and the Signed APK.
The verification of the assetlinks.json file is done during the app installation. When you run the application from the android studio, the disambiguation dialog is showing because in the device, you might already have a pre-installed version of your app. So when you run the application, the app is not uninstalled and then installed. It just refreshes the code. So the assetlinks.json verification is not done.
So to test app links while running from android studio, first uninstall the app from the device/emulator, and then try triggering app link. The disambiguation dialog will not be shown.
You don't have to uninstall the app every time you want to run the application. But if you have changed the assetlinks.json file(at server side) or the manifest entry in manifest file, then uninstall the app and then run the application(release build) from android studio. The disambiguation dialog will not be shown.
Related
I generated APK by doing following in Android Studio: Build -> Generate Signed apk
I copied this APK in Phone's memory and launched it. It installed fine, but only for the first time. I then uninstalled the existing app and launched the same APK again, now it says "App Not Installed".
If I copy the same APK from my computer to this phone again, then again it cannot be installed anymore on this device.
I don't want to do with Play protect off on the device.
Is there a solution to installable the apk all the time?
Go to link And fill out the form. After about two weeks, if the app is OK, your problem will be resolved.
The web service protocol must be HTTPS.
Access permissions must be for a reason.
Etc
I generated signed apk - but the result non installable apk
Apk not installed and these are the initial warnings
generating debug (not signed apk) is not working with the client
Could not connect to development server (500)
I just can't share the apk with my client - that's too bad
Google Play Protect is a feature that protects your device by scanning apps that are downloaded from the store or installed with APK. I think it's good to set it up because it protects your smartphone, but sometimes you have to turn it off because it doesn't work when you install the APK as needed or because of this feature.
ex) Apps not installed during app installation.
Launch the Google Play Store and click on the left menu bar to
select Play Protect.
You can see that Play Protect is working here. To turn off
features, search the lower device for security threats and select
the feature supplement to detect harmful apps to turn off.
Click OK when the warning window appears.
If you are getting error like development server error, you need to generate release build apk of your project. There is a documation about how you should generate your apk in link below.
Documation
I developed this react Native mobile application called "ClkApp". I Published my application using expo and I can see the application on my phone.
Now, I want to publish this application on Google play. I completed all the required steps including paid the fee of 25 dollars. One of the step requires that I generate a signed APK. I saw some tutorials how to generate the Signed APK and all of them build the application using android studio and go to Build -> Generate Signed APK. I tried to open my app on Android studio, but I don't see any option under Build menu other than "Analyze APK" and "deploy Module to app engine". there is another option called "make", but that is disabled. Below is the image:
I created a new test application using android studio and I can see the options like generate signed APK, Build etc. for this test application. I don't want to create "ClkApp", my original app", application using android studio because that will take lot of time. Is their any way, I can generate the APK on this existing application and don't have to use android studio at all.
Any help will be greatly appreciated.
Since you have build your app with Expo. You can use Expo to generate apk (standalone app)
After you configure app.json and run expo build:android
Check this for details https://docs.expo.io/versions/v32.0.0/distribution/building-standalone-apps/
I want to run my application in phone but I get following message:
Installation failed with message:
INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package signatures do not match
the previously installed version; ignoring!.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?
In my phone I have installed previous version of app from google play. I know that uninstalling old version of app from my phone can fix the problem but I don't want to do this because then I might lose all app specific data.
What I tried:
generating signed version of app using the same keystore.jks like previously
changing versionCode and versionName in build.grandle file and then generating new version of app
And still I have the same problem. What should I do to update my app without losing data?
There are two possibilities I can think of
You use Google Play App Signing. If you use Google Play App Signing then the signature in apps coming from Google Play will always be different to the app coming from your IDE. The only way you can get the update to work is to update the app from Google Play. The best way to do this during development is to use an "Internal test track". Google launched these at Google I/O this year and they let you update your app in seconds from Google Play. So when you have an update, don't install from your IDE, upload to Google Play internal test track, republish, and then update from Google Play. It is really quick.
You don't use Google Play App Signing, but you are trying to install your debug build instead of your release/production build. Make sure you are building the production release APK, so it is signed with the same key as the one uploaded to Google Play.
If I'm understanding correctly you want to re install the "same" apk in your phone but with some changes in the code (updates) but Android Studio can't install the new apk.
I can only think in one thing, this is the explanation:
Please remember that android has different "Build Variants" there could be many but you will always have "debug" and "production" build variants, as I can read, you have installed the one in Play Store this means that you have a "production" build variant already installed in your phone, so you need a new "production" variant version of your app with the same build data (code and name version) and the updates in the code.
Build a signed apk with the same data as the previous version (code and name version) (Just like the one you used to upload to Play Store).
Find the signed apk.
Use adb to check your connected devices, expect a list
adb devices
Use adb to install this new apk.
adb -s <device_identifier> install <apk_name_include_apk>
Following those steps should let you install what you need.
Go in your React Native > Android >app
in the app folder,
you can see a build just delete this folder and Clear React Native project by npm cache clean cmd/Terminal Command.
Now try to run I hope it will Run for some of you.
It's working for me.
I have my application in Google Play, I've downloaded and installed it on my phone.
I'm also currently working on update of this application, and whenever I want to install my .apk file on my phone it shows me, that I can't do it, because the app is already here.
Where in Eclipse can I set some settings, which will allow me to install my updated app without installing original one?
EDIT
I want to have two versions on my device at the same time.
One simple solution is to change the package name, since that's how the OS identifies the .apk. Indeed, the package is unique to the Market: how does an android phone(or market) recognize an app
You can not install and run the app from eclipse because the app installed on the device (the one from play store) is signed with a different key.
When you export your app you sign the apk with a specific key and when u run it from eclipse you sign it with a different key - the debugkey.
If you HAVE to install another version on the device without uninstalling the old one from the device (the one you got from the play store) you should:
1.export your app and sign it with the same key you signed the app you uploaded to the play store.
2.upload the exported apk to the device.
3.install it.
EDIT:
If you want to versions on the same device you should change the app package name.