我即将使用 phonegap(适用于 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 进行测试时,我收到此错误:(请注意,旧的 native 应用程序已安装在设备上)
...
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用户使用旧应用程序,所以让他们先删除旧应用程序是很糟糕的。
问题:
因此可以使用与用于构建 native 应用程序的证书/签名相同的证书/签名吗?
有没有人有过这种需求的经验,这可能吗?
最佳答案
要回答我自己的问题,需要做两件事来解决这个问题:
- 您需要原始的
*.keystore
文件,旧的 native 应用程序使用该文件进行签名(连同密码) - 确保在你的 android list 中禁用调试选项
对于 cordova 构建,您必须创建一个名为 ant.properties
的文件,如 this post 中所述。 .
一旦创建了 ant.properties
文件,您只需运行以下命令即可创建已签名的发布就绪 apk 文件 platforms/android/ant-build/appname-发布.apk
:
$ cordova build android --release
关于android - 在用户不知情的情况下用基于 cordova/phonegap 的应用程序交换现有的 native 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25015013/