This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Android application occurs twice in main menu
I'm using the android emulator to test my app and it's installing twice and the icon is duplicated in the application menu. Clicking on either Icon takes me to the same activity within my app. Any ideas on why two icons are showing up in the app menu? I've tried clearing and starting with a new emulator and the same things happens. I checked the manifest file and I only have one activity listed as launcher. Thanks
Android uniquely identifies a application with the application package name. When you change the name of the apps package name and try to install it on a device, android will look for a app with the same package name and if it exists it will update the exisitng aplication otherwise it will consider it a new applicaton. This is from the google documentation about updating apps
If the package name and signing
certificate do not match those of the existing version, Market will
consider it a new application, publish it as such, and will not offer
it to existing users as an update.
So once you decided on the package name, never change it.
This is a link to a application in the android market
https://market.android.com/details?id=com.quintetsolutions
You can notice at the end of the url that the appliations package name is used to refer it in the market.
Related
I uploaded a test-release for an App on both iOS & Android on AppStore/GooglePlay using their respective native programs. In other words I reserved their bundle-identifiers string.
Now I'm trying to code the App using Flutter, which is freshly new to me.
Can I create a Flutter project (running on Android Studio) for this app and then change the bundle-identifiers names for each platform separately? and will it work so I could update these apps continuously?
For example,
One App created with a bundle-identifier for iOS like this: 'com.thisApp.thisApp', on itunessconnect (reserved).
Same App with a different bundle-identifier was created for Android on Google Play Console and reserved: 'com.anotherApp.anotherApp'.
None of the apps are LIVE.
Now, if I create a Flutter project I have to choose a package name say 'com.thisApp.thisApp'.
This package name will be created for both platforms by default!
Although I figured out that you could change the package name in Flutter,
as in this post - How to change package name in flutter?
However it's still isn't clear to me, if I DO change it, does the package-name must be identical foreach platform? i.e 'com.anotherApp.anotherApp' OR could the package-name/bundle-id for each platform differ? and even if it works on debug, will it work on release?
So I managed to solve this and answer my own problem.
Yes it is possible.
As already mentioned, before I started to work with Flutter, I used Android Studio and Xcode to upload a "draft version" of the App to the Google Play and App Store respectively in order to "reserve" these AppNamePackages.
Since in one store the same name/package was already taken, I used another name, for example:
com.thisApp.thisApp
and
com.anotherApp.anotherApp
To achieve this in Flutter you need to make sure that:
You change the desired applicationID in the Android-app level build.gradle file and in the AndroidManifest.xml
for this example lets call it com.thisApp.thisApp
You go through equivalent procedure for iOS by changing the desired package name in the info.plist.
for this example - com.anotherApp.anotherApp
By selecting any file under Runner folder (iOS folder in Flutter) you can click "Open iOS module in Xcode" and pick the correct App name and package in the App Project.
And that's it. Flutter didn't make problems considering the two different package names. The App bundles were uploaded based on their previous Google Play and iTunesconnet configurations.
I want to know is there any way to update a existing Android app in playstore with my new Android app?
Let me describe: I have a app published on playstore OK with any users. So now I have created a different app with same functionality With different package name and project name. So now I want to update existing app with new app without losing existing users. Is it possible?
What you are trying to achieve is not possible. You can't change the package name for an already published app. The best you could do is to drive your users to the new published app by adding a banner or link to the updated app inside the old one.
Google Play Store does not allow package names to be changed. It depends on a consistent package name to identify the individual listings.
For a user friendly solution you might add a splash screen to the old app with a link to the Play Store listing of your updated app.
Unfortunately you cant do that.
Thats because the package name is a unique identifier. So if you crate an app project in the PlayStore and upload an apk, this project is permanently bond to that package name.
Question: Was it necessary to change the package name?
If not, you could keep the existing packagename, change/relayout your app as you desire, and upload the new apk. Your users will then perform a regular update and everything will be kept (ratings, downloads, etc ...)
I am developing 2 android applications, which are clients for my server. I cannot install both applications on my android phone. I install the first app to phone, everything is ok. Then when I try to install the second app on the phone, I get the message that the application will replace another application (the first one), and then I get following error:
Application not installed: an existing package by the same name with a conflicting signature is already installed.
I mention that I have created one separate keystore file for every application, export them as in the android official signing application guide, then zipaligned them.
So the OS thinks that it is a single application? But in fact there are 2 different apps.
What am I doing wrong?
I think you are using the same package, which is not allowed for two different apps.
But for anyone who have the same error for installing another version on top of previously installed app:
I wanted to test released version of my app when the problem occured. I've had the app previously installed using eclipse, and than I wanted to install the same app but with released signature. I have even uninstalled the app using apps gallery, but the problem persisted.
The solution for me was to unistall the app using Settings->Apps->"the app"->top right corner menu->Uninstall for all users
I had the same error message, but these answers did not help. On a 4.3 nexus 7, I was using a user who was NOT the owner. I had uninstalled the older version but I kept getting the same message.
Solution: I had to login as the owner and go to the settings->apps... Scroll down to the end of the list where my old version was listed with a mark 'not installed'. Select it and press the 'settings' button in the top right corner and finally 'uninstall for all users'
Not sure what happens when you use the same signing key, because in all honesty, I never really tried it.
That being said, as Anand Tiwari, in his comment, has already simplified the answer, you cannot install two different applications with the same package name on one device. They, logically speaking, may be different to you, but for the OS, they are in fact, the same.
The problem also manifests itself when you try to upload the applications to the Android Market (Google Play). Google Play will simply not accept the second application. There is a short and simple explanation by Warren Faith here: https://stackoverflow.com/a/5788664/450534
As an example of how similar applications with a few changes are published to the Google Play store:
The free version of FriendCaster is: https://play.google.com/store/apps/details?id=uk.co.senab.blueNotifyFree
The paid version if the same app is: https://play.google.com/store/apps/details?id=uk.co.senab.blueNotify
Notice the ending of the package names. In this case, you will be able to install both the apps simultaneously on one device.
I think your problem is that both your files have the same package name. You can name both apps with similar packages, but they can't be identical. In fact, using the same package base can be used to communicate between applications ie. App1: com.mypkg.app1 and App2: com.mypkg.app2. However, they both can't be called com.mypkg.app - the package name is how Android identifies apps, and can't be identical.
You should be able to sign as many different apps (assuming their package is different) with the same key.
Make sure not to lose your signing certificate, if you lose it, you will not be able to upload a new app with the same package name. If you lose your signing certificate, you will be in big trouble.
Good luck.
This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
How to get package name from anywhere?
In my project I have selected an application from installed applications in the phone and stored it as a string. But later in the project I need to launch that application for which I need d package name.
Is it possible to get name of the package from application name??
Please help.
Thanks in advance
The package is the only official identity of an application. If you using anything to be a persistent identity of an app, it should be that, not some something else. (You are not clear on what you are currently using, but if by "application name" you mean the label that is shown to the user for the application, that is most definitely not what you should be doing. All the user needs to do is change their locale and poof you are lost. Or install an update to the app that changes its name... like Google Music becoming Play Music.)
I am developing an android app in sdk version 2.2, in which there is a searcher. The searcher searches for apps in market for things like app name, or publisher name, package name etc. We then want to show the list of app results in a our app (instead of in default market app) to let the user to select a particular app. Then the details page for that app will be launched in market app.
I found android-market-api, but it is not working properly for following scenarios:
When I am giving my own androidID instead of "dead000beef.
Sometimes "dead000beef" is also giving problem.
Is there any properly working sample code using this api or is there any other way to fulfill my above requirements?