2013-09-28 2 views
14

Nehmen wir an, ich habe eine Cordova-Anwendung mit einer ID von com.StackOverflowExample.MyQuestion, die ich mit Cordova 3 mithilfe der CLI (cordova create) erstellt habe. Ich habe für meine App iOS- und Android-Plattformen hinzugefügt und die App an Apple und Google Play gesendet. Jetzt, nachdem ich meine App an Play gesendet habe, habe ich mein Passwort für den Keystore, mit dem ich meine APK-Datei signiert habe, verlegt. Ich habe alles versucht, und ich werde es auf keinen Fall wiederherstellen.Cordova: Ist es möglich, verschiedene App-IDs für Android- und iOS-Plattformen zu haben?

Da Google Play es mir nicht erlaubt, ein nachfolgendes APK unter der gleichen App-ID wie ein vorheriges APK zu signieren, das von einem anderen Schlüsselspeicher signiert wurde, muss ich eine neue App-ID erstellen und in Android neu beginnen. Mir ist klar, dass meine Benutzer eine neue Anwendung herunterladen müssen, aber zu diesem Zeitpunkt habe ich keine andere Wahl.

Was ich vermeiden möchte, ist dieses Problem in Apple überlaufen, wo ich bereits alle meine Zertifikate, Provisioning-Profile, Schlüssel, Signieranfragen, etc. erstellt und hochgeladen IPA mit einer Bündel-ID gleich als App-ID der ersten APK, die ich bei Google Play eingereicht habe.

Wenn Sie die CLI verwenden, fügt Cordova standardmäßig die von Ihnen angegebenen Plattformen mit einer einzelnen Anwendungs-ID hinzu, die Sie beim Ausführen von cordova create angeben.

Was würde Ich mag wissen, ist: Ist es möglich, wenn cordova platform add läuft eine neue Plattform unter einer benutzerdefinierten App-ID hinzuzufügen, und, als Folge, verschiedene Plattformen verschiedene App haben IDs innerhalb die gleiche Cordova-Anwendung?

Antwort

-1

Ja, das können Sie tun. Es gibt mehr Optionen für sie, es hängt davon ab, wie Sie Ihre Android-Anwendung bauen (wie erstellen Sie Ihre apk).

Wenn Sie die apk mit cordova erstellen, müssen Sie zuerst Ihre apk entschlüsseln:

apktool d <apkname>.apk <directory to decode> 
e.g: 
apktool d your.apk decodedir 

ändern das Paket = "com.StackOverflowExample.MyQuestion" string in AndroidManifest.xml.

Encode Ihre apk:

apktool b <directory> <new apk name> 
e.g: 
apktool b testdir/ your.repacked.apk 

Wenn Sie die apk mit beliebigen Android-Entwickler-Tools erstellen, können Sie die ID in der entsprechenden XML-Datei (AndroidManifest.xml) ändern, und die App bauen.

+1

Morris Hat das für dich funktioniert? Ich habe genau das gleiche Problem hier und ich bin auf der Suche nach einem automatisierten Weg, dies zu tun ... – Sebastian

+0

Ich endete eine neue App-ID für iOS und Android, um das Problem zu beheben, als es keine Antworten gab, als die Thema war aktuell für mich. –

35

Dies wird nun in CLI (endlich) gebaut:

In Sie config.xml File-

Beispiel:

<widget 
    android-packageName="com.example.android" 
    ios-CFBundleIdentifier="com.example.ios"> 

Quelle:

https://github.com/apache/cordova-lib/blob/master/cordova-common/src/ConfigParser/ConfigParser.js#L99

+2

Das Repository und die Datei selbst wurden verschoben. Der aktuelle Link wäre [Aktuell letzte Version] (https: // github.com/apache/cordova-lib/blob/64fcf851b5dc15936e3ee1c6f5cac9fc63648aa2/cordova-common/src/ConfigParser/ConfigParser.js # L99-L107) oder [Master-Version - könnte sich in Zukunft ändern] (https://github.com/apache/ cordova-lib/blob/master/cordova-common/src/KonfigParser/ConfigParser.js # L99-L107) –