在用户不知情的情况下,使用基于cordova / phonegap的现有应用程序交换现有应用程序

时间:2014-07-29 12:13:05

标签: android ios cordova hybrid-mobile-app

我即将使用phonegap(for android& ios)部署混合应用程序。我们想在没有用户知道的情况下交换它,所以我想我可以使用相同的设备ID(例如" de.company.myapp") - 所以这样在下一个应用商店更新后用户将安装了新的应用程序。

请注意,在iOS上,这似乎不是问题。

cordova config.xml

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns     = "http://www.w3.org/ns/widgets"
    xmlns:gap = "http://phonegap.com/ns/1.0"
    id        = "de.company.myapp"
    version   = "1.0.0">
...

在使用Android进行测试时我发现此错误:(请注意,旧的原生应用已安装在设备上)

...
Installing app on device...
>> 
>> /path/to/cordova/platforms/android/cordova/node_modules/q/q.js:126
>>                     throw e;
>>                           ^
>> ERROR: Failed to launch application on device: ERROR: Failed to install apk to device:   pkg: /data/local/tmp/Fahrschulcard-debug-unaligned.apk
>> Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

所以这意味着apk签名不匹配。删除旧的应用程序后我当然可以安装新的应用程序,但有很多Android用户使用旧的应用程序,所以告诉他们所有人先删除旧的应用程序将是可怕的。

问题:

那么可以使用与用于构建本机应用程序的证书/签名相同的证书/签名吗?

有没有人有这种要求的经验,这有可能吗?

1 个答案:

答案 0 :(得分:1)

要回答我自己的问题,需要2件事来解决这个问题:

  1. 您需要原始*.keystore文件,旧的原生应用程序已与该文件签名(连同密码)
  2. 确保在Android清单
  3. 中禁用调试选项

    对于cordova构建,您必须创建一个名为ant.properties的文件,如this post中所述。

    创建ant.properties文件后,您只需运行以下命令即可创建已签名的发布就绪apk文件platforms/android/ant-build/appname-release.apk

    $ cordova build android --release