I have published an android app in the store, however, we lost the keystore, when I unpublish the current app and try to republish another app with the same name I've got a message saying that I couldn't publish an app with the same name, is there a manipulation to do ?
Thanks :)
Every application on Google Play needs to have a separate application id (like com.company.awesomeapp). So if you lost your keystore and can't upload the application with the id you had before, you will have to change the id (say, com.company.awesomeapp2).
One small note, now the application id is not the same as the application package. So you may continue to use the old application package internally (for the source files and in the manifest), but you need to change the applicationId in gradle.build to something new. If you reference the application id somewhere in the manifest, you can use a placeholder: ${applicationId}.
The solution for my problem was to rename the previous application and create an app with the same name.
I obviously had to change the app id also
Even though your old app is not available for download anymore, the Play Store still requires a different applicationId, because some users might still have the old app installed on their devices (it still may be 'supported' in the sense that users can buy in app purchases etc.), and it's the Android OS that explicitly denies installation of packages with the same name, and allows updates when the id and certificate is the same.
You could imagine a situation where you delete an app from the play store, and if it would allow creating a new one with the same applicationId, and someone got hold of your keystore and certificate, that person could upload a completely different app and trigger updates to users with your old app. Now, that would be very bad and simple solution is just to not allow same applicationIds.
Related
Our Android app will be taken over by a different company. This requires that the app-id/package-id be changed (from com.mycompany.app to com.newcompany.app). However, when a newer version of the apk is installed, it gets installed as a separate application as the app-ids don't match. Wondering if there is any hint we can add to the manifest indicating that the current version is an upgrade for the specific app-id. Guessing this would be a common problem for any company that acquires Android software product from another company. Regards.
There is nothing you can do to get one app (com.package.appA) to upgrade(via app store) to another app (com.package.appB).
That said, you don't really have to change the package name to transfer the app. Most users aren't aware of the package name of the app they install so it won't really buy you any credibility.
What you would have to do is provide the new company is the release signing key for your application. They are going to need this to upload new versions of the app to the play store. Hopefully you have just one for this app.
Tips for the future if you're planning on transferring more apps:
Use more generic package names (com.mysite.calculator vs apps.calculator). Package names are just identifiers so use them as such.
Use a single signing key per project so that you can give it away with the code and won't expose all your other apps.
If your Gradle file specifies an application ID:
You can go ahead and change the app's package name. (However, this would require a lot of updates to the app's source code, since the generated R class will end up with a new package name. Also, the package name used to resolve relative class names in the manifest would change.)
But, you must keep the same application ID if you want Android to consider the result to be the same app. Furthermore, you must keep using the same signing certificate as well!
So I have learnt my lesson in backing up my keystore and the new one is now safely tucked away from now on. { and yes I have looked for the old one for ages :-( }
I need to un-publish my current app and so I can reuse the app name and create a new app version 1 with the new keystore I have created.
I can only un-publish my app and not delete it as Google need to keep it as unpublished for legal reasons etc etc so understand that.
How do I create a new app with the same name as right now play store says that the name is already in use.
Still digging and investigating a solution but any help would be appreciated.
So after talking with Google support I really wanted to get the correct solution that only changed what needed to be changed and leave what could be left alone.
So for all the folk out there like me who lost their keystore file, here is the necessary steps for republishing your app where you have lost your keystore.
Unplubish your app.
So under ALL APPLICATIONS you see this and the app shows as Unpublished under Status.
Change the name of your unpublished app.
Here i just added the word old to the app name.
Rebuild your app with a new package name as follows:
if the current package name is com.mycom.myapp then use a new one such as com.mynewapp.myapp
Make a new keystore and when they say to KEEP IT SAFE they really do mean it, KEEP IT SAFE.
( I am still in the process of republishing the app so I will update my answer with more info once published.)
Google Play allows many apps to have the same title. However, the application package for each app needs to be unique within Google Play. This is the package attribute value that you provide for the <manifest> tag in the AndroidManifest.xml file of your project. The package name serves as a unique identifier for the application.
For example:
com.yourwebsite.yourappname or com.yourwebsite.yoursuitename.yourappname.
Here's the link for Android manifest :http://developer.android.com/guide/topics/manifest/manifest-element.html#package
How do I create a new app with the same name as right now play store
says that the name is already in use.
You cannot use the same name or package name. An app once published cannot be deleted and the package name is forbidden going forward once published to avoid re-publishing of banned/forbidden apps.
Same name can be used by a different developer but not by the same developer who already has an app with that name. (This is my understanding from a time when i entered the same name by mistake)
You will need to use a different package name and app name. But, if it was banned there is a high probability that it will survive with the new package name for long. It will get banned again and probably also lead to banning of the developer account. Be careful.
Our contracted Android developer provided us with the source code of the work performed for us, as per our contract. After the contract finished, the developer became busy and is now not reachable. We are moving to another developer to maintain the application. However, we do not have the first developer's keystore so the application is not allowing us to update it.
Is there anyway for us to maintain this application if we cannot get ahold of the original developer? We have lots of customers who have the app with data they have generated, and they need our updates.
If you have push notification feature in your old App then you can send a push to all your user that there is another updated version is available.
And Just upload updated version with different package name. And even you can send play store link in that push message as well. Most of people use this technique and they got success to move all user from old app to new.
No you can't update your app on the store without the published keystore.
You can publish the app with another name and keystore (a new app so with a different package name) but you can't update it.
I have an app that is currently on the Play Store, and I would like to publish an update that will replace the existing app with another app that is an improved version of the old one. They were developed separately, so the two apps are way different, although they serve all the same purposes.
What needs to be the same in the new version and the old version for me to be able to publish is as an update instead of a brand new app?
The case you are describing sounds like a complete rewriting of the application. This is perfectly in line with the application update process of Google Play.
Google-play determines that an application is an update based on two criteria only:
the package name of the app
and its version code
To be considered as an update, your new app should have exactly the same package name as the former one ("com.example.myapp"), and its android:versionCodeshould be higher, in your AndroidManifest.xml file. Of course, your APK should be signed with your account's private key, like any application you publish under your account.
All the rest is up to you.
If they share the same unique key, you can overwrite the existing app with the new one. It doesn't make any difference how much it's changed. Play will automatically take care of notifying exising users of updates, and depending on their settings, update them automatically.
If your new version does NOT share the same unique key, you have no choice but to put up a new app.
I would like to know whether it is technically possible, not whether it is easy or not, to change the actual package name of an Android app that is on Google Play. What I mean by package name is the name that will show up in the URL. Please, can anyone tell me why this is / is not possible?
Thanks!
From Dianne Hackborn:
Things That Cannot Change:
The most obvious and visible of these is the “manifest package name,” the unique name you give to your application in its AndroidManifest.xml. The name uses a Java-language-style naming convention, with Internet domain ownership helping to avoid name collisions. For example, since Google owns the domain “google.com”, the manifest package names of all of our applications should start with “com.google.” It’s important for developers to follow this convention in order to avoid conflicts with other developers.
Once you publish your application under its manifest package name, this is the unique identity of the application forever more. Switching to a different name results in an entirely new application, one that can’t be installed as an update to the existing application.
More on things you cannot change here
Regarding your question on the URL from Google Play, the package defined there is linked to the app's fully qualified package you have in your AndroidManifest.xml file. More on Google Play's link formats here.
Nope, you cannot just change it, you would have to upload a new package as a new app. Have a look at the Google's app Talk, its name was changed to Hangouts, but the package name is still com.google.android.talk. Because it is not doable :) Cheers.
As far as I can tell what you could do is "retire" your previous app and redirect all users to your new app. This procedure is not supported by Google (tsk... tsk...), but it could be implemented in four steps:
Change the current application to show a message to the users about the upgrade and redirect them to the new app listing.
Probably a full screen message would do with some friendly text. This message could be triggered remotely ideally, but a cut-off date can be used too. (But then that will be a hard deadline for you, so be careful... ;))
Release the modified old app as an upgrade, maybe with some feature upgrades/bug fixes too, to "sweeten the deal" to the users. Still there is no guarantee that all users will upgrade, but probably the majority will do.
Prepare your new app with the updated package name and upload it to the store, then trigger the message in the old app (or just wait until it expires, if that was your choice).
Unpublish the old app in Play Store to avoid any new installs. Unpublishing an app doesn't mean the users who already installed it won't have access to it anymore, but at least the potential new users won't find it on the market.
Not ideal and can be annoying to the users, sometimes even impossible to implement due to the status/possibilities of the app. But since Google left us no choice this is the only way to migrate the users of the old apps to a "new" one (even if it is not really new).
Not to mention that if you don't have access to the sources and code signing details for the old app then all you could do is hoping that he users will notice the new app...
If anybody figured out a better way by all means: please do tell.
No, you cannot change package name unless you're okay with publishing it as a new app in Play Store:
Once you publish your application under its manifest package name, this is the unique identity of the application forever more. Switching to a different name results in an entirely new application, one that can’t be installed as an update to the existing application.
Android manual confirms it as well here:
Caution: Once you publish your application, you cannot change the package name. The package name defines your application's identity, so if you change it, then it is considered to be a different application and users of the previous version cannot update to the new version.
If you're okay with publishing new version of your app as a completely new entity, you can do it of course - just remove old app from Play Store (if you want) and publish new one, with different package name.
If you are referring to com.example.app, no I understand you can't it would be considered a new app
Never, you can't do it since package name is the unique name Identifier for your app.....
Complete guide :
https://developer.android.com/studio/build/application-id.html
As per Android official Blogs :
https://android-developers.googleblog.com/2011/06/things-that-cannot-change.html
We can say that:
If the manifest package name has changed, the new application will be
installed alongside the old application, so they both co-exist on the
user’s device at the same time.
If the signing certificate changes, trying to install the new
application on to the device will fail until the old version is
uninstalled.
As per Google App Update check list :
https://support.google.com/googleplay/android-developer/answer/113476?hl=en
Update your apps
Prepare your APK
When you're ready to make changes to your APK, make sure to update your app’s version code as well so that existing users will receive your update.
Use the following checklist to make sure your new APK is ready to update your existing users:
The package name of the updated APK needs to be the same as the current version.
The version code needs to be greater than that current version. Learn more about versioning your applications.
The updated APK needs to be signed with the same signature as the current version.
To verify that your APK is using the same certification as the previous version, you can run the following command on both APKs and compare the results:
$ jarsigner -verify -verbose -certs my_application.apk
If the results are identical, you’re using the same key and are ready to continue. If the results are different, you will need to re-sign the APK with the correct key.
Learn more about signing your applications
Upload your APK
Once your APK is ready, you can create a new release.