apk更新版本无法安装
Apk updated version cannot be installed
我从 github 那里获取了一个项目,并开发了一些我需要供自己使用的功能。
完成这些后我创建了一个新的 apk,phone 将其识别为现有应用程序的新版本,但在 "Installing"[=26= 几秒钟后安装失败]. 应用程序未安装。
打印屏幕的链接:
https://gyazo.com/93b94183572f139d9a07b937c5a1eed2
https://gyazo.com/bdbee5e182f7e8d69ee00c7daac88cf3
我显示了我当前的版本代码,大约是 10230000。试图在 gradle 中将其更改为 10230008,但仍然失败。也更改了我的应用程序版本名称,但没有任何积极结果。
模块 gradle 的初始版本是:
...
versionName rootProject.ext.versionName
versionCode rootProject.ext.versionCode
buildConfigField 'String', 'REALM_ENCRYPTION_KEY', "\"${rootProject.ext.realmEncryptionKey}\""
...
项目gradle:
...
apply plugin: 'kotlin'
ext {
versionName = project['version.major'] + '.' +
project['version.minor'] + '.' +
project['version.patch']
versionCode = (project['version.major'].toInteger() * 1000 * 1000 * 1000) +
(project['version.minor'].toInteger() * 1000 * 1000) +
(project['version.patch'].toInteger() * 1000) +
project['version.build'].toInteger()
bugsnagAPIKey = System.getenv('BUGSNAG_API_KEY') ?: ''
realmEncryptionKey = System.getenv('REALM_ENCRYPTION_KEY') ?: 'ZX06poC7a96dL9,FR_9|Ww<2%]?4Ij(3wR3DmyNj0[{(,8g%jX2{03P45_p`N6|2'
}
...
为什么识别为更新却无法安装?
如果您尝试更新应用程序,设备上的兴奋版本必须与新版本具有相同的签名,否则将无法安装。您可以尝试做的是卸载该应用程序,然后重新安装,然后它们就会正常运行。
也可能是因为你对新更新的表达不够
在 android 工作室尝试:
转到 File -> Settings -> Build, Execution, Deployment -> Instant Run
并关闭它。
然后试试你 android phone:
Settings -> Apps & notifications -> See all x apps ->
搜索您的应用并点击它并执行 FORCE STOP
和 UNINSTALL
。
如果您想从以前的 二进制版本 更新此应用程序(也就是说,您直接从 GitHub 获取此 .apk
,并安装它进入你的 phone,与从源代码构建以前的版本相比),那么你有两个选择:
- 请原始打包者(作者?)为您打包源代码。
- 卸载之前的 APK,然后安装新的。
破解签名密钥。
最简单的方法显然是第二种。
在我的记忆中,原问题的核心是那个.apk
文件的签名密钥。
我从 github 那里获取了一个项目,并开发了一些我需要供自己使用的功能。 完成这些后我创建了一个新的 apk,phone 将其识别为现有应用程序的新版本,但在 "Installing"[=26= 几秒钟后安装失败]. 应用程序未安装。 打印屏幕的链接: https://gyazo.com/93b94183572f139d9a07b937c5a1eed2 https://gyazo.com/bdbee5e182f7e8d69ee00c7daac88cf3
我显示了我当前的版本代码,大约是 10230000。试图在 gradle 中将其更改为 10230008,但仍然失败。也更改了我的应用程序版本名称,但没有任何积极结果。
模块 gradle 的初始版本是:
...
versionName rootProject.ext.versionName
versionCode rootProject.ext.versionCode
buildConfigField 'String', 'REALM_ENCRYPTION_KEY', "\"${rootProject.ext.realmEncryptionKey}\""
...
项目gradle:
...
apply plugin: 'kotlin'
ext {
versionName = project['version.major'] + '.' +
project['version.minor'] + '.' +
project['version.patch']
versionCode = (project['version.major'].toInteger() * 1000 * 1000 * 1000) +
(project['version.minor'].toInteger() * 1000 * 1000) +
(project['version.patch'].toInteger() * 1000) +
project['version.build'].toInteger()
bugsnagAPIKey = System.getenv('BUGSNAG_API_KEY') ?: ''
realmEncryptionKey = System.getenv('REALM_ENCRYPTION_KEY') ?: 'ZX06poC7a96dL9,FR_9|Ww<2%]?4Ij(3wR3DmyNj0[{(,8g%jX2{03P45_p`N6|2'
}
...
为什么识别为更新却无法安装?
如果您尝试更新应用程序,设备上的兴奋版本必须与新版本具有相同的签名,否则将无法安装。您可以尝试做的是卸载该应用程序,然后重新安装,然后它们就会正常运行。
也可能是因为你对新更新的表达不够
在 android 工作室尝试:
转到 File -> Settings -> Build, Execution, Deployment -> Instant Run
并关闭它。
然后试试你 android phone:
Settings -> Apps & notifications -> See all x apps ->
搜索您的应用并点击它并执行 FORCE STOP
和 UNINSTALL
。
如果您想从以前的 二进制版本 更新此应用程序(也就是说,您直接从 GitHub 获取此 .apk
,并安装它进入你的 phone,与从源代码构建以前的版本相比),那么你有两个选择:
- 请原始打包者(作者?)为您打包源代码。
- 卸载之前的 APK,然后安装新的。
破解签名密钥。
最简单的方法显然是第二种。
在我的记忆中,原问题的核心是那个.apk
文件的签名密钥。