我即将使用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用户使用旧的应用程序,所以告诉他们所有人先删除旧的应用程序将是可怕的。
问题:
那么可以使用与用于构建本机应用程序的证书/签名相同的证书/签名吗?
有没有人有这种要求的经验,这有可能吗?
答案 0 :(得分:1)
要回答我自己的问题,需要2件事来解决这个问题:
*.keystore
文件,旧的原生应用程序已与该文件签名(连同密码)对于cordova构建,您必须创建一个名为ant.properties
的文件,如this post中所述。
创建ant.properties
文件后,您只需运行以下命令即可创建已签名的发布就绪apk文件platforms/android/ant-build/appname-release.apk
:
$ cordova build android --release