Morris Singer
Morris Singer

Reputation: 1725

Cordova: Is it possible to have different app IDs for android and ios platforms?

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

Answers (2)

tabrindle
tabrindle

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

Balazs Nemeth
Balazs Nemeth

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

Related Questions