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

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

科尔多瓦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用户在使用旧应用程序,因此,告诉他们所有人都先删除旧应用程序会很糟糕。

问题:

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

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

最佳答案

要回答我自己的问题,需要解决以下两个问题:

  • ,您将需要使用原始本机应用程序(与密码一起)签名的原始*.keystore文件(以及密码)
  • 确保在Android清单
  • 中禁用调试选项

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

    一旦创建了ant.properties文件,您只需要运行以下命令来创建已签名发布的apk文件platforms/android/ant-build/appname-release.apk:
    $ cordova build android --release
    

    07-24 09:50
    查看更多