如何获取Android上OAuth 2.0的签名证书指纹(SHA1)?
我正在尝试按照https://developers.google.com/console/help/#installed_applications中的步骤注册我的Android应用程序,这使我可以按照http://developer.android.com/tools/publishing/app- signing.html 。
但是,我不确定如何获取签名证书指纹(SHA1)。
我首先使用Eclipse ADT插件导出并创build密钥库/密钥。 然后,我试着做keytool -list keystore mykeystore.keystore
,它给了我一个MD5证书指纹。 我是否需要重做签名(这意味着我不能使用eclipse导出向导)?
我可以先使用debugging证书吗?
开始导出过程为您的应用程序创build一个apk并使用您的生产密钥。 最后一页显示您的SHA1和MD5证书指纹
我知道这个问题已经被回答,但这是我如何find我的签名默认密钥库。 在Eclipse中,如果你转到Windows – >首选项 – > Android – >生成
我认为这将是完美的。 我用同样的:
对于Android Studio:
- 点击Build > Generate Signed APK 。
- 你会得到一个消息框,只需点击确定。
- 现在将有另一个窗口只是复制密钥存储path 。
- 现在打开命令提示符并转到C:\ Program Files \ Java \ jdk1.6.0_39 \ bin> (或任何已安装的jdk版本)。
- 键入keytool -list -v -keystore然后粘贴你的密钥存储path (例如C:\ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore“E:\ My Projects \ Android \ android studio \ signed apks \ Hello World \ HelloWorld.jks“)。
- 现在它会询问密码商店密码 ,提供您的密码 ,然后按Enter键以获得您的SHA1和MD5证书密钥。
在命令行中使用这个
c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key
打开terminal(在Unix中 ,在MAC中 ),(在Windows中的 cmd
),并cd
到这个(你的Java)path:
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
只需将path更改为debug.keystore
,即可同时获得MD5和SHA-1指纹。
如果您使用的是Mac甚至是Linux,只需将其复制并粘贴到terminal应用程序上即可获得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
keytool -list -v -keystore "keyStoreName"
从您的应用程序的密钥库所在的目录运行此命令。
看看你是否想在当时使用Google Map
,你需要MD5
指纹生成在Android应用程序中使用谷歌地图的api kay
。
如果您使用JDK 1.6
,Keytool命令会生成MD5
指纹,如果您使用JDK 1.6
,则会生成SHA1
指纹。
所以事情是,如果你想签署你的应用程序发布然后阅读这个 。
如果你想使用google-map
阅读此 。
如果有人使用Android工作室…
点击:生成>在APK中生成签名创build一个新的密钥:这将生成“.jks”文件
使用以下命令读取数据(SHA1和其他信息):
$ keytool -list -v -keystore filename.jks
如果您正在使用IntelliJ(12+?),请转到菜单Build / Generate signed Api
填写popup窗口后,获取“密钥存储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 STUDIO中请按照以下步骤操作:1.单击android studio IDE右侧的Gradle properties菜单。 2.展开任务树。 3.点击签名报告你可以看到你的SHA1在底部的控制台在这里input图像描述
对于那些使用OpenSSL的用户,您可以通过以下方式检索SHA1指纹:
OpenSSL> dgst -sha1 my-release-key.keystore
这将导致以下输出:
如果您正在使用Android Studio。 您可以通过Gradle任务快速获得SHA1证书指纹(debugging,发布… 所有Buildtypes !!):
signingReport
消息日志中显示SHA1
Android插件(在gradle应用程序中configuration)创build一个默认的debugging模式。
com.android.application
到密钥库的文件路由:
HOME / .android / debug.keystore
我build议附加 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" } } ........ }
额外:如果你想创build释放,把一个文件release.keystore到一个应用程序文件夹。 (这个例子使用相同的debug.keystore)
如果您正在使用Android Studio。 使用cmd提示符不需要生成SHA1指纹。 您只需要使用Android Studio的默认Maps Activity创build项目。在该项目中,您可以在Values文件夹下的google_maps_api.xml中获取指纹。 希望这会帮助你。 🙂
试试这个:Windows —-首选项—- Android – 编译—从这里复制sh1代码
对于那些在Mac上寻找keytool。 按着这些次序:
首先确保安装Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html
然后在命令提示符下input:
/usr/libexec/java_home -v 1.7
它会吐出类似于:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
keytool位于与javac
相同的目录中。 即:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin
从bin目录可以使用keytool。
我认为这将是完美的。 我用同样的:
对于Android Studio:
点击Build> Generate Signed APK。 你会得到一个消息框,只需点击确定。
现在将有另一个窗口只是复制密钥存储path。
现在打开命令提示符并转到C:\ Program Files \ Java \ jdk1.6.0_39 \ bin>(或任何已安装的jdk版本)。
键入keytool -list -v -keystore然后粘贴你的密钥存储path(例如C:\ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore“E:\ My Projects \ Android \ android studio \ signed apks \ Hello World \ HelloWorld.jks“)。
现在它会询问密码商店密码,提供您的密码,然后按Enter键以获得您的SHA1和MD5证书密钥。
现在将这个SHA1键添加到凭证标签中的Google开发人员控制台,并将android studio中的构build变体更改为释放模式。
我第一次非常困惑,但是我build议你最后 的Windows 解决scheme :
1)打开cmd并进入你的Java / jdk / bin目录(只需按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
结果你必须得到这样的东西:
这是我的这个简单的解决scheme..
点击Gradle
button,你可以在右侧find顶部。 你会看到所有的gradle文件。 现在去android,双击signingReport。 一旦gradle构build完成,您将看到SHA键。 检查下面的图像一步一步的指导。
一旦你点击Gradle,检查下面的图像。 希望这有助于某人。
STEP1: Image第一步
第二步 : 图像第二步
使用portecle :
- 文件>打开密钥库文件
- input密钥库密码
- 右键单击别名名称>证书详细信息> SHA-1指纹
获取SHA-1的最简单方法对于发布和debugging模式android studio gradle。 检查这个
我想通知那些和我有同样问题的人。 我经历了这些步骤来生成我的debuggingSHA-1和我的版本SHA-1。 我试图将Google Sign-In API与我的应用程序连接起来。
我遇到了这个问题,debugging.apk会正常工作,它会连接和authentication与谷歌login。 当手动安装到手机上时,我的发行版.apk也可以工作。 当我将我的发布.apk发布到Google Play商店时,我的Googlelogin无法进行身份validation,而且会遇到问题!
最长的时间,我无法弄清楚,但我发现我的应用程序正在签署谷歌,即在开发人员控制台顶部的消息显示: 谷歌播放应用程序签名启用此应用程序。
我去我的发布pipe理选项卡,然后滚动到应用程序签名,并在那里find了SHA-1。 添加到我的代码和我用作Googlelogin后端的“firebase控制台”之后,一切似乎都奏效了。 它看起来像我的发行密钥库被取代谷歌签署的证书…我不确定是否这是发生了什么事情,但它解决了我的问题,并允许我的谷歌Play商店发布apk正确authentication与谷歌标志在!
一步一步的解决scheme:
- 打开您的命令提示符或Macterminal
-
将目录切换到keytool文件位置的目录。 通过使用命令
cd <directory path>
更改目录。 (注意:如果有任何目录名称有空格,则在这两个单词之间加上\例子cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/
)-
要find你的keytool的位置,你去android studio..open你的项目。 然后去
-
文件>项目结构> SDK位置。并findJDK位置。
-
-
使用以下命令运行keytool:
keytool -list -v –keystore <your jks file path>
(注意:如果任何目录名都有空格,那么在两个单词之间加上\例如keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks
) -
命令提示你input密码..所以键入你的密码..然后你得到的结果