如何在开发环境中强制安装Android App?

Cod*_*oid 39 android

我厌倦了卸载而不是重新开发.
有没有办法做adb -force install some.apk?我的意思是这会节省很多时间.每次进入系统 - > apps->每次签名都不同时卸载.

显然调试是一个开发设置,所以我不明白为什么一个人经常需要手动卸载应用程序,这是多少浪费时间?任何可以使开发更容易的东西都会产生更好的代码,而更好的应用程序会带来什么呢?

我在较短的时间内部署到服务器端Java EE服务器.这在命令行上不是问题,因为可以通过卸载然后安装来卸载或替换adb脚本.
然而在日食中它仍然是一种痛苦.有人指出,这主要是签名的变化.是的.但是为什么签名会在开发和调试模式中发生变化,并导致重新安装问题?

小智 216

adb有[-r]参数重新安装.

adb install -r some.apk
Run Code Online (Sandbox Code Playgroud)

  • 对我不起作用.在适当的情况下接收INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES和INSTALL_FAILED_VERSION_DOWNGRADE. (8认同)
  • @kaspartus出于安全原因,它不会覆盖具有不同签名的应用程序(例如,在调试版和生产版之间).我为这些案例保留了卸载批处理文件. (3认同)
  • 您可以忽略-d标记的降级问题 (3认同)
  • 凉爽的!降级有效!只需要: ADB INSTALL -R -D <...apk> (3认同)

War*_*ith 12

更新:

感谢downvoters.如果您更喜欢仅解决问题一半的一行答案(如证书更改!),请随意提供您喜欢的答案.如果您对此答案进行了投票,请至少发表评论,告诉我为什么这样才能解决问题.那是公平的.谢谢.

原始答案:

正常的构建过程使用android调试密钥库,可以在主目录的android文件夹中找到(路径取决于您的操作系统).

使用此调试密钥库,您的应用程序将被签名.只要没有已安装其他签名的应用程序,此调试签名就可以安装在世界上的每个Android设备上.

当你说你只做代码检查时,重建和你的签名是不同的,可能你的构建过程被破坏了.您的调试密钥库至少有效一年,只要您在同一台PC上,而构建生成的APK就不应该有不同的签名.

为了进一步检查,您应该为您的开发过程带来一些启发.你用什么?日食?

如果您在不同的开发机器上工作,请从一台机器中选择一个密钥库并将其放入您的版本控制中,然后使用它来使用调试签名对您的apk进行签名.


Chr*_*ton 11

您可以进行的网络搜索显示您的adb问题的答案是:

adb uninstall some.package.name
Run Code Online (Sandbox Code Playgroud)

请注意,它不是与adb install一起使用的file.apk名称,而是它最终安装的实际包名称.


Rob*_*yan 6

adb install -r -d 路径/to/file.apk

-r 替换 -d 强制降级