I explain my problem.
Current situation
We are delivering an application that must be released for 2 separated country, in details i have 2 myApp.apk (package name "com.my.app") built and signing with the same key but both have some hardcoded javascript configurations that are different (not in the manifest but only in the app code).
Build system
We are building with the phonegap service so i haven't the full control on the manifest created.
Goal
Publish the apk diversificate for country visibility.
eg. italian users can see the app "MyApp" which has an IT sever configuration wrote in the code and swiss users can see them app called with the same name but that contains different configuration.
What we tried
In the play console i tried to add another app project calling it with a different name (with the same package name of the previous one just published) but when i finish the upload google said me that currently an application with the name "com.my.app" already exist
Question
Is exist a way to diversificate the second application based on the delivery country?
Thanks in advance
You cannot have two apps with the same package name targeted on country. This answer gives a good explanation on why.
So you have two options:
Release your app with two different package names, eg com.myapp.it and com.myapp.de
Have your app change configuration based on country using something like Firebase Remote Config
Which answer will be best depends on the use case. For your use case, the second option sounds best.
Related
I need to temporarily change the package name of an Android app.
The reason I need to do this is because my customer does not yet have a Google Play account, but wants to test the app I've been developing for him. So I want to put it on an internal testing channel using my Play account, but I want to do so under a different package name.
When I develop iOS apps, there is a mechanism in Xcode by which any app can have multiple targets, and each target can have a separate bundle ID, and other properties, creating a unique app from the same source code. Then I can switch between targets at will to produce either version of the app.
What is the correct way to do this in Android?
The answers I've found online suggest that a wholesale refactoring of all the package names in the actual source code files is necessary -- I don't think this is the right answer in my case. I just want to toggle between two package names the same way you would toggle between build variants.
Thanks,
Frank
Use applicationIdSuffix ".demo" to extend the given name (the namespace does not really matter, the package name only has to be unique). One probably cannot completly override the applicationId; the merge output of AndroidManifest.xml would show what is broken.
Better publish to Firebase App Distribution first (can be linked to Play Store).
There the obstacles are generally lower - and one can also see remote crashes.
The docs for publishing WearOS apps consistently state that:
Ensure that both the watch and phone app modules have the same package name.
However I'm wondering if it actually means applicationId from the build.gradle file instead of package name (my understanding of what package name means is in the package statement at the top of source files - maybe that's wrong?)
The reason I'm wondering this is that another part of the docs say that:
Every Android app has a unique application ID that looks like a Java package name, such as com.example.myapp. This ID uniquely identifies your app on the device and in Google Play Store. If you want to upload a new version of your app, the application ID (and the certificate you sign it with) must be the same as the original APK—if you change the application ID, Google Play Store treats the APK as a completely different app. So once you publish your app, you should never change the application ID.
So, it sounds like it's the applicationId that is important when publishing apps, not the package name. Maybe I'm getting my terminology confused, or maybe the terms 'package name' and 'applicationId' are used interchangeably?
Also, I'm futher confused by the fact that you can have a package attribute in the application element of Manifest (eg package="com.example.myapp") - I currently don't have that so I assume it's optional.
I'm a bit confused, if anyone could clarify what exactly is meant by package name when it says Ensure that both the watch and phone app modules have the same package name that would be great. Thanks :)
I have Android Apps A and B waiting to be published on Android Play-store.Is it possible to keep same fingerprint for multiple Apps, with different package names?
This is to allow Just one of the two Apps to be installable in a supporting device. How to do this
I could use the same fingerprint to publish apps in Play-Store. But I was able to do an Install of both the Apps on the same phone.This is not what was intended. Any Solution ?
The application ID is what distinguishes apps on your device and in Google Play. I don't think it is possible to force only one app to be installed at a time if they have different application ID. Android has an "application ID" which is used to uniquely identify your app. It has nothing to do with what keystore is used to sign the APK.
But, the application ID is not necessarily the package name. An excerpt from the docs:
Although your project's package name matches the application ID by default, you can change it. However, if you want to change your package name, be aware that the package name (as defined by your project directory structure) should always match the package attribute in the AndroidManifest.xml file
So you can have two different apps with the same application ID, but different package names. And then only one of them could be installed on a device. I'm not sure if that's what you're going for, though.
And I'm not sure that your reasoning for doing this is great. Maybe you can expand upon what you mean by
This is to allow Just one of the two Apps to be installable in a supporting device.
so that maybe someone can suggest a better alternative for your situation.
I wanted to know if it is possible to submit multiple versions of the same app to the Google Play store. I know that Google Play allows developers to submit multiple APK's to the target certain device configurations, but we would like to release a different name of the app to each of our clients. Things that would be different in each app are the logos, app names, access to different types of information for each customer. I wanted to know if this would violate the Google Play Store's submission guidelines (it is an app built using Adobe Phonegap build, each app package name would be the same), would it be subject to rejection? I know that there are multiple questions on this site similar to this, but they are older questions and I wanted to see if this is something that Google Play is offering. Thank you.
"each app package name would be the same"
AFAIK, that not possible, since package name is used as ID in play store.
The package names must be different. Ideally, you would have unique security keys that signed the APKs as well. It prevents one app from accessing the private data of another app. Other than that, there's no policy or technical block stopping you from posting the same APK with different flavors.
As has been said - the package name is used as the ID in the Play Store.
But the way around this is very simple - just use different package names!
You'll be making the same app with different branding anyway so you'll already have different code bases.
Copy your entire app folder.
Find the config.xml. It looks like this (from the docs): http://docs.phonegap.com/phonegap-build/configuring/#example
Change the id. If you have two apps you'd have:
com.phonegap.appname1
com.phonegap.appname2
Upload each app to a different PhoneGap Build repository. This will create two different apps. Easy.
What are the things to do for posting an app to the Android market when posting their first app to the market?
Most of it is explained in official docs, I'll add some points from experience:
Create your key store for App signing. Make sure you put some relevant info in your certificate if your App has copyright. keep a backup and guard it in every possible way, play store only accepts apk updates signed with same key as the original one, so does the device when installing an update.
Finalize your package name, make it unique , in future if you lose the signing key, you will have to re-upload app under a different package name.
Make a thorough review of code, watch out for test code, notes, useless comments and unwanted logging traces you might have placed there. Check your TODO items, run a code inspection from your IDE, remove any critical issues if found. Clear useless jar files, and resources. Also consider externalizing hard-coded strings to xml, so that you can add translations later on.
Check and validate manifest file, update version name and version code. Version name is shown when your app is listed in play store. Version code is incremented whenever you upload updated apk to play store. If its a major release you can bump up version name too.
Finally, build your apk in release mode, and optionally run pro-guard. If your app uses plain vanilla android API and no fancy external libraries such as RoboGuice etc, proguard will run fine. Other wise you will have to tell proguard to ignore classes under those packages. Proguard is optional, you can upload app without using it. Some IDE's have a nice GUI to do this.
Sign your apk with the key you created. Install it on test device, do a test run. Additionally, use emulator to test it across android versions. Take some screen shots, maybe a video too.
Prepare publishing material, write down few lines about your app, a list of features and any additional notes. Also, create a 512x512 icon image for your app.
If you have a website about your App, great, else make ready a valid mail id as a developer contact point.
Log in to developer console, upload apk file, fill in relevant screen shots, description, contact details etc etc. Save and publish. It can take anywhere between 2 to even 9-10 hours for your app to be visible in play store listings.
Your app url will be like https://play.google.com/store/apps/details?id=com.example.myapp. Keep an eye on statistics, put keywords along with app name like "muzo - music player" , most people don't know "muzo" they usually search for "music player". Have your app reviewed, links pointing to your app improve its search ranking.
There is an excelent topic in the android documentation talking about how to prepare your app for release. The procedure is the same for your 1st or you 1000st published app.
Please see here: http://developer.android.com/tools/publishing/preparing.html
PS: And a +1 for you, interesting question.