25

假设我有一个 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,其包标识符与应用程序 ID 相同我提交给 Google Play 的第一个 APK。

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

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

4

2 回答 2

54

这现在内置在 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

于 2015-01-09T20:59:42.977 回答
-3

是的,你可以这么做。他们有更多的选择,这取决于你如何构建你的 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,然后构建应用程序。

于 2013-10-20T01:31:42.647 回答