Cordova:是否有可能为Android和ios平台提供不同的应用ID?

时间:2013-09-28 17:22:35

标签: android ios cordova google-play cordova-3

假设我有一个ID为com.StackOverflowExample.MyQuestion的Cordova应用程序,我使用CLI(cordova create)创建了Cordova 3。我为我的应用添加了iOS和Android平台,并已将应用程序提交给Apple和Google Play。但是,现在,在将我的应用程序提交到Play之后,我似乎错误地将密码存放在我用来签署APK文件的密钥库中。我已经尝试了一切,我无法恢复它。

由于Google Play不允许我使用与之前由不同密钥库签名的APK相同的应用ID来签署提交给Play的后续APK,因此我知道我需要创建一个新的应用ID并在Android中重新开始。我意识到这将需要我的用户下载一个新的应用程序,但我现在别无选择。

我想避免的是,将此问题泄漏到Apple中,我已经创建了所有证书,配置文件,密钥,签名请求等,并上传了一个包含标识符的IPA。我提交给Google Play的第一张APK的应用ID。

默认情况下,使用CLI时,Cordova会使用您在运行cordova create时提供的单个应用ID添加您指定的平台。

我想知道的是:在运行cordova platform add时,是否可以在自定义应用ID下添加新平台,以及因此,让不同的平台在同一个Cordova应用程序中具有不同的应用程序ID?

2 个答案:

答案 0 :(得分:44)

现在内置于CLI(最后):

在你的config.xml文件中 -

示例:

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

来源:

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

答案 1 :(得分:-2)

是的,你可以这样做。它们有更多的选择,这取决于你如何构建你的Android应用程序(你如何创建你的apk)。

如果你使用cordova创建apk,首先你需要解码你的apk:

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

更改AndroidManifest.xml中的package =“com.StackOverflowExample.MyQuestion”字符串。

对你的apk进行编码:

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

如果您使用任何Android开发人员工具创建apk,则可以更改相应xml文件(AndroidManifest.xml)中的ID,并构建应用程序。