[英]How to obtain Signing certificate fingerprint (SHA1) for OAuth 2.0 on Android?
我正在尝试按照https://developers.google.com/console/help/#installed_applications中的步骤注册我的 android 应用程序,这导致我关注http://developer.android.com/tools/publishing/app-签名.html 。
但是,我不确定如何获取签名证书指纹(SHA1)。
我首先使用 Eclipse ADT 插件来导出和创建密钥库/密钥。 然后,我尝试执行keytool -list keystore mykeystore.keystore
并且它给了我一个 MD5 证书指纹。 我是否需要重做签名(意味着我不能使用 eclipse 导出向导)?
我可以先使用调试证书吗?
启动导出过程,为您的应用创建 apk 并使用您的生产密钥。 最后一页显示您的 SHA1 和 MD5 证书指纹
我知道这个问题已经得到解答,但这就是我找到默认密钥库签名的方式。 在 Eclipse 中,如果你去 Windows -> Preferences -> Android -> Build
我认为这将完美地工作。 我用了同样的:
对于安卓工作室:
如果您使用的是 Mac 甚至 Linux,只需将其复制并粘贴到终端应用程序上,您将立即获得 SHA1 密钥。 不需要改变任何东西。
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
示例输出:
Alias name: androiddebugkey
Creation date: 17 Feb 12
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4f3dfc69
Valid from: Fri Feb 17 15:06:17 SGT 2012 until: Sun Feb 09 15:06:17 SGT 2042
Certificate fingerprints:
MD5: 11:10:11:11:11:11:11:11:11:11:11:11:11:11:11:11
SHA1: 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:01:11
Signature algorithm name: SHA1withRSA
Version: 3
在命令行中使用它
c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key
打开终端(在Unix 中,在MAC 中),(在Windows 中为cmd
)并cd
到此(您的 java)路径:
C:\Program Files\Java\jdk1.6.0_43\bin>
运行此命令:
keytool -list -v -keystore C:\Users\leon\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
只需更改debug.keystore
的路径,您将获得 MD5 和 SHA-1 指纹。
keytool -list -v -keystore "keyStoreName"
从应用程序密钥库所在的目录运行此命令。
如果您使用的是 IntelliJ(12+?),请转到菜单Build/Generate signed Api
填充弹出后,获取“key store path”字段中的数据(例如C:\\Users\\user\\Documents\\store\\store)
并在命令行中运行:
>keytool -list -v -keystore "C:\Users\user\Documents\store\store"
....
MD5: 11:C5:09:73:50:A4:E5:71:A2:26:13:E0:7B:CD:DD:6B
--> SHA1: 07:0B:0E:E8:F7:22:59:72:6A:1C:68:05:05:CF:2E:6F:59:43:48:99
SHA256: E6:CE:DA:37:C1:18:43:C1:A3:F0:9E:8F:1A:C2:69:AF:E6:41:F7:C0:18:
1D:1D:55:5D:F0:52:6C:EE:77:84:A7
...
祝你好运
如果有人使用 Android 工作室...
单击:Build > Generate Signed in APK 创建一个新密钥:这将生成“.jks”文件
使用以下命令读取数据(SHA1 和其他信息):
$ keytool -list -v -keystore 文件名.jks
对于使用 OpenSSL 的用户,您可以通过以下方式检索 SHA1 指纹:
OpenSSL> dgst -sha1 my-release-key.keystore
这将导致以下输出:
这是我的简单解决方案:
单击Gradle
按钮,您可以在右侧顶部找到。 你会看到所有的 gradle 文件。 现在转到android,然后双击signingReport。 gradle 构建完成后,您会看到 SHA 密钥。 检查下面的图像以获取分步指南。
单击 Gradle 后,请检查以下图像。 希望这可以帮助某人。
第1步:
第2步:
试试这个:Windows----preferences----Android--build---sh1 code copy from here
如果您使用的是 Android Studio。 您可以通过Gradle Tasks快速获取SHA1 证书指纹(调试、发布...所有构建类型!!):
签约报告
SHA1 显示在消息日志中
Android 插件(在 gradle 应用程序中配置)默认创建调试模式。
com.android.application
到密钥库的文件路径:
主页/.android/debug.keystore
我建议将debug.keystore附加到 build.gradle。 为此,将文件 debug.keystore 放入应用程序文件夹,然后在 gradle 应用程序中添加 SigningConfigs:
apply plugin: 'com.android.application'
android {
................
signingConfigs {
debug {
storeFile file("../app/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
release {
storeFile file("../app/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
}
........
}
额外:如果您想为发布创建,请将文件 release.keystore 放入应用程序文件夹。 (此示例使用相同的 debug.keystore)
我第一次很困惑,但我建议你为 Windows 提供最终的工作解决方案:
1) 打开 cmd 并转到您的 Java/jdk/bin 目录(只需按cd ..
返回一个文件夹,然后按cd ..
cd NAME_FOLDER
向前移动一个文件夹),在我的情况下,最终文件夹: C:\\Program Files\\Java\\jdk1.8.0_73\\bin>
2) 现在输入这个命令keytool -list -v -keystore C:\\Users\\YOUR_WINDOWS_USER\\.android\\debug.keystore -alias androiddebugkey -storepass android -keypass android
我认为这将完美地工作。 我用了同样的:
对于安卓工作室:
单击构建 > 生成签名的 APK。 您将收到一个消息框,只需单击“确定”即可。
现在将有另一个窗口,只需复制密钥存储路径。
现在打开命令提示符并转到 C:\\Program Files\\Java\\jdk1.6.0_39\\bin>(或任何已安装的 jdk 版本)。
键入 keytool -list -v -keystore 然后粘贴您的密钥存储路径(例如 C:\\Program Files\\Java\\jdk1.6.0_39\\bin>keytool -list -v -keystore "E:\\My Projects\\Android\\android工作室\\签名的 apks\\Hello World\\HelloWorld.jks”)。
现在它将询问密钥存储密码,提供您的密码并按 Enter 以获取您的 SHA1 和 MD5 证书密钥。
现在将此 SHA1 密钥添加到凭据选项卡中的 google 开发人员控制台,并将 android studio 中的构建变体更改为发布模式。
对于那些在 mac 上寻找 keytool 的人。 按着这些次序:
首先确保安装 Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html
然后在命令提示符中输入:
/usr/libexec/java_home -v 1.7
它会吐出类似的东西:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
keytool 与javac
位于同一目录中。 IE:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin
从 bin 目录中,您可以使用 keytool。
如果您使用的是 Mac/Linux,那么您可以通过在终端中写入以下行来获取 SHA1 指纹:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
在这之后有两件事可能
它会要求你输入密码
只需输入
安卓
然后按回车,你可以在下面显示的输出中找到 SHA1 密钥。
它会要求你下载一个合适的程序(并且会给出一些列表)
只需在终端中输入以下内容
sudo apt 安装 openjdk-8-jre-headless
然后再次在终端中运行以下命令: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
这一次,您将进入第 1 步,您只需输入密码即可
安卓
您将在输出中获得下面的 SHA1 指纹。
如果要从签名 keystore.jks 文件中获取指纹 sha1 密钥,请从终端运行以下命令:
keytool -list -v -keystore <.../path/keystore.jks>
例子
keytool -list -v -keystore /Users/Home/Projects/Keystore/myApp_keystore.jks
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name:myApp_alias
Owner: CN=xxx, OU=xxx Dev, O=ZZZ, L=Dhaka, ST=Dhaka, C=BD
..........
Certificate fingerprints:
MD5: 12:10:11:12:11:11:11:11:11:11:33:11:11:11:11:11
SHA1: 11:44:11:11:55:11:17:11:11:66:11:11:88:11:11:77:11:11:01:11
.....................
使用portecle :
为发布和调试模式 android studio gradle 获取 SHA-1 的最简单方法。 检查这个
我想向那些与我有同样问题的人发布通知。 我完成了生成调试 SHA-1 和发布 SHA-1 的步骤。 我试图将 Google Sign-In API 与我的应用程序连接。
我遇到了调试 .apk 可以正常工作的问题,它可以连接并使用 Google Sign-In 进行身份验证。 当手动安装到手机时,我的发行版 .apk 也可以使用。 当我将发布的 .apk 发布到 Google Play 商店时,我的 google 登录无法通过身份验证,我会遇到问题!
很长一段时间我都想不通,但我发现我的应用被谷歌签名,即开发者控制台顶部的消息显示: Google Play App Signing is enabled for this app。
我转到我的发布管理选项卡,然后向下滚动到应用签名,并在那里找到了 SHA-1。 将此添加到我的代码和我用作 Google 登录后端的“firebase 控制台”上后,一切似乎都正常了。 看起来我的发布密钥库被谷歌签名证书取代了......我不确定这是不是发生了什么,但它解决了我的问题并允许我的 Google Play 商店发布 apk 正确地使用谷歌签名进行身份验证在!
分步解决:
将目录更改为 keytool 文件位置的目录。 使用命令cd <directory path>
更改目录。 (注意:如果任何目录名称有空格,则在两个单词之间添加\\ 。示例cd /Applications/Android\\ Studio.app//Contents/jre/jdk/Contents/Home/bin/
)
要找到 keytool 的位置,请转到 android studio..打开您的项目。 然后去
File>project Structure>SDK location..并找到JDK位置。
通过这个命令运行keytool: keytool -list -v –keystore <your jks file path>
(注意:如果任何目录名称有空格,则在两个单词之间添加\\。例如keytool -list -v -keystore /Users/username/Desktop/tasmiah\\ mobile/v3/jordanos.jks
)
命令提示你输入密码..所以输入你的密码..然后你得到结果
这是懒惰程序员的工具:
1 添加依赖:
compile 'com.vk:androidsdk:1.6.9'
2 在您的活动/应用程序中的某处添加以下几行:
String[] fingerprints = VKUtil.getCertificateFingerprint(this, getPackageName());
Log.d("SHA1", fingerprints[0]);
3 打开 logcat 并捕获消息。
4 利润!
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\\.android\\debug.keystore
如果您仍然遇到问题,则需要先按照此操作:在此处输入链接描述
然后转到 pubspec.yaml 并执行pub upgrade ,然后键入 . /gradlew SigningReport在终端中。 它肯定会奏效!! ..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.