初学 Android,请教下当前 2020.3 的 AS 如何获取当前应用的开发版 sha1?

2021-12-29 23:33:15 +08:00
 Features

网上看的教程是说用 keytools 工具查看~/.android 下的 debug.keystore 但是我无法读取这个 keystore

请教下各位大佬应该怎么获取呢?

主要是我删了这个 debug.keystore 也能正常打包编译运行。。。 也没有给我重新生成一个

4701 次点击
所在节点    Android
16 条回复
eminemcola
2021-12-29 23:42:33 +08:00
理论上应该是可以读的,实在不行也可以考虑直接通过代码在运行时读一下当前的 signinfo 写到日志里看看。
Features
2021-12-29 23:45:50 +08:00
@eminemcola 使用命令: keytool -list -v -keystore .\debug.keystore
读取的时候报错:
```

keytool 错误: java.io.IOException: Invalid keystore format
java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1445)
at sun.security.tools.keytool.Main.doCommands(Main.java:794)
at sun.security.tools.keytool.Main.run(Main.java:342)
at sun.security.tools.keytool.Main.main(Main.java:335)

```

是我命令的参数有误吗?
learningman
2021-12-30 00:45:34 +08:00
所以你为啥要 debug 的证书 sha1 。。。
AItsuki
2021-12-30 01:01:28 +08:00
你删了没啥影响的,debug.keystore 每次运行都会给你重新生成一个,所以 sha1 也会一直变,你要将它拷贝出来放到项目目录中,然后配置下 debug 签名就行了。
至于命令就是 `keytool -list -v -keystore debug.keystore` 没错,可能是不需要.\这个路径?
tmtstudio
2021-12-30 08:25:12 +08:00
自己生成一个签名,在 build.gradle 里指定为 debug 的签名不就好了
AoEiuV020
2021-12-30 09:17:53 +08:00
应用模块有个任务叫 signReport 可以打印当前的 debug 和 release 签名指纹,包括 sha1 ,
另外我一般都是配置 debug 和 release 相同证书,以便用 debug 包覆盖 release 包调试,
unco020511
2021-12-30 10:09:19 +08:00
可以手动指定 debug 的签名啊,指定一个自己的签名呀
gtanyin
2021-12-30 11:24:21 +08:00
windows 电脑吗?直接点开下面的 terminal ,输入 gradlew.bat app:signingReport
但如果使用系统默认的证书,每台电脑都是不一样的,建议自己生成一个
Features
2021-12-30 11:32:28 +08:00
@learningman 一些第三方应用集成的时候要填写
Features
2021-12-30 11:36:57 +08:00
@AItsuki 尝试去掉 ./,也不行
有没有可能是我系统的 JDK 和 AS 内部的 JDK 版本不一致导致的?
jeepc
2021-12-30 11:48:28 +08:00
日志都不看的吗,keystore 格式不对( Invalid keystore format ),可能是版本不兼容,往这个方向去排查
Features
2021-12-30 11:48:56 +08:00
@gtanyin
@AoEiuV020
谢谢,很管用
Features
2021-12-30 11:49:51 +08:00
@jeepc 看了,就是不知道咋回事啊
是系统的 JDK 和 AS 的 JDK 版本不一致吗?
jeepc
2021-12-30 11:51:16 +08:00
@Features 我好久没搞 android 了,你直接 google 这个报错看看
learningman
2021-12-30 16:45:50 +08:00
或者你自己签一个证书,用 signingConfig 指定给 debug 类型的 buildType 也行
Features
2021-12-30 21:13:48 +08:00
@learningman 谢谢,搞定了,自己签了一个证书,原来有点搞不明白 gradle 的配置

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825177

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX