Reputation: 1725
Let's say I have a Cordova application with an id of com.StackOverflowExample.MyQuestion, which I created with Cordova 3 using the CLI (cordova create
). I have added iOS and Android platforms for my app, and have submitted the app to Apple and to Google Play. Now, however, after submitting my app to Play, I seem to have misplaced my password for the keystore I used to sign my APK file. I have tried everything, and there is no way I will recover it.
Because Google Play does not allow me to sign a subsequent APK submitted to Play under the same app ID as a prior APK signed by a different keystore, I know I need to create a new app ID and start over in Android. I realize this will require my users to download a new application, but I have no other choice at this point.
What I would like to avoid, is having this problem spill over into Apple, where I have already created all of my certificates, provisioning profiles, keys, signing requests, etc. and uploaded an IPA with a bundle identifier the same as the app ID of the first APK I submitted to Google Play.
By default, when using the CLI, Cordova adds whatever platforms you specify using a single app ID, which you supply when you run cordova create
.
What I'd like to know is: Is it possible, when running cordova platform add
to add a new platform under a custom app ID, and, as a result, to have different platforms have different app IDs within the same Cordova application?
Upvotes: 27
Views: 10207
Reputation: 1874
This is now built into CLI (finally):
In you your config.xml file-
Example:
<widget
android-packageName="com.example.android"
ios-CFBundleIdentifier="com.example.ios">
Source:
https://github.com/apache/cordova-common/blob/master/src/ConfigParser/ConfigParser.js#L105-L113
Upvotes: 57
Reputation: 2332
Yes, you can do that. There is more option for them, it's depends on how do you build your Android application (how do you create your apk).
If you create the apk using cordova, first you have to decode your apk:
apktool d <apkname>.apk <directory to decode>
e.g:
apktool d your.apk decodedir
Change the package="com.StackOverflowExample.MyQuestion" string in AndroidManifest.xml.
Encode your apk:
apktool b <directory> <new apk name>
e.g:
apktool b testdir/ your.repacked.apk
If you create the apk using any Android developer tools, you can change the id in the appropriate xml file (AndroidManifest.xml), and build the app.
Upvotes: -3