2013-09-28 6 views
14

Diciamo che ho un'applicazione Cordova con un ID di com.StackOverflowExample.MyQuestion, che ho creato con Cordova 3 utilizzando la CLI (cordova create). Ho aggiunto piattaforme iOS e Android per la mia app e ho inviato l'app ad Apple e a Google Play. Ora, tuttavia, dopo aver inviato la mia app su Play, sembra che la mia password sia stata spostata in modo errato per il keystore utilizzato per firmare il mio file APK. Ho provato tutto, e non c'è modo di recuperarlo.Cordova: È possibile avere diversi ID di app per piattaforme Android e ios?

Poiché Google Play non mi consente di firmare un APK successivo inviato a Play con lo stesso ID app di un APK precedente firmato da un altro keystore, so che è necessario creare un nuovo ID app e ricominciare da capo in Android. Mi rendo conto che ciò richiederà ai miei utenti di scaricare una nuova applicazione, ma a questo punto non ho altra scelta.

Ciò che vorrei evitare, è che questo problema si diffonda in Apple, dove ho già creato tutti i miei certificati, profili di provisioning, chiavi, richieste di firma, ecc. E ho caricato un IPA con un identificatore di bundle lo stesso come ID app del primo APK che ho inviato a Google Play.

Per impostazione predefinita, quando si utilizza la CLI, Cordova aggiunge qualsiasi piattaforma specificata utilizzando un ID app singolo, che viene fornito quando si esegue cordova create.

Quello che mi piacerebbe sapere è: E 'possibile, durante l'esecuzione cordova platform add per aggiungere una nuova piattaforma sotto un personalizzato App ID, e, di conseguenza, di avere piattaforme diverse hanno ID applicazione diversi all'interno la stessa applicazione Cordova?

risposta

-1

Sì, puoi farlo. C'è più possibilità per loro, dipende da come costruisci la tua applicazione Android (come crei il tuo apk).

Se si crea l'apk con Cordova, prima devi decodificare il tuo apk:

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

cambiare il pacchetto = "com.StackOverflowExample.MyQuestion" stringa in AndroidManifest.xml.

codificare l'apk:

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

Se si crea l'apk utilizzando qualsiasi strumenti per gli sviluppatori di Android, è possibile modificare l'ID nel file XML appropriato (AndroidManifest.xml), e costruire l'applicazione.

+1

Morris , ha fatto questo lavoro per te? Ho esattamente lo stesso problema qui e sto cercando un modo automatico per fare questo ... – Sebastian

+0

Ho finito per fare un nuovo ID app per iOS e Android per risolvere il problema, in quanto non ci sono state risposte quando il la questione era attuale per me. –

35

questo è ora costruito in CLI (finalmente):

In voi il vostro config.xml file-

Esempio:

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

Fonte:

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

+2

Il repository e il file stesso sono stati spostati. Il collegamento attuale sarebbe [Ultima revisione attuale] (https: // github.com/apache/cordova-lib/blob/64fcf851b5dc15936e3ee1c6f5cac9fc63648aa2/cordova-common/src/ConfigParser/ConfigParser.js # L99-L107) o [versione master - potrebbe cambiare in futuro] (https://github.com/apache/ Cordova-lib/blob/master/Cordova-common/src/ConfigParser/ConfigParser.js # L99-L107) –