无需用户知道,就可以使用基于cordova / phonegap的现有原生应用程序进行交换
我即将部署一个混合应用程序使用phonegap(对于Android和IOS)。 我们想在没有用户知道的情况下进行交换,所以我想我可以使用相同的设备ID(例如“de.company.myapp”) – 这样在下一次app store更新后,用户将安装新的应用程序。
请注意,在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"> ...
虽然testing这与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用户使用旧的应用程序,所以告诉他们所有的第一个删除旧的将是可怕的。
问题:
那么可以使用与用于构build本机应用程序相同的证书/签名?
有没有人有这种要求的经验,这是可能的吗?
为了回答我自己的问题,需要2件事来解决这个问题:
- 您将需要使用旧的本地应用程序签名的原始
*.keystore
文件(以及密码) - 确保在你的android清单中禁用debugging选项
对于cordova构build,您将不得不创build一个名为ant.properties
的文件,如本文所述。
只要创buildant.properties
文件,您只需运行以下命令来创build已签名的发布准备apk文件platforms/android/ant-build/appname-release.apk
:
$ cordova build android --release