我正在尝试按照https://developers.google.com/console/help/#installed_applications中的步骤注册我的Android应用,这导致我关注 http://developer.android.com/tools/publishing/app-signing.html
但是,我不确定如何获取签名证书指纹(SHA1)。
我首先使用Eclipse ADT插件导出并创建密钥库/密钥。
然后,我尝试了keytool -list keystore mykeystore.keystore
,它给了我一个MD5证书指纹。我是否需要重做签名(意味着我无法使用eclipse导出向导)?
我可以先使用调试证书吗?
答案 0 :(得分:173)
启动导出过程,为您的应用创建apk并使用您的生产密钥。最后一页显示SHA1和MD5证书指纹
答案 1 :(得分:138)
我知道这个问题已经得到解答,但这就是我找到默认密钥库的签名的方式。在Eclipse中,如果你去Windows - >偏好 - > Android - >构建
答案 2 :(得分:86)
我认为这将完美无缺。我使用了同样的东西:
对于Android Studio:
答案 3 :(得分:67)
在命令行中使用它
c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key
答案 4 :(得分:63)
如果您使用的是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
答案 5 :(得分:57)
打开终端(在 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指纹。
答案 6 :(得分:38)
keytool -list -v -keystore "keyStoreName"
从应用程序密钥库所在的目录运行此命令。
答案 7 :(得分:15)
在Android Studio中,请按以下步骤操作:
答案 8 :(得分:13)
在您的Android应用中使用谷歌地图时,看看您是否想要Google Map
使用MD5
指纹来生成api kay
。
MD5
, Keytool命令会生成JDK 1.6
指纹,如果您使用SHA1
,则会生成JDK 1.7
指纹。
所以,如果您想签署申请以进行发布,请阅读this。
如果您想使用google-map
阅读this。
答案 9 :(得分:12)
如果您使用的是IntelliJ(12+?),请转到菜单构建/生成已签名的Api
填写弹出窗口后,在“密钥库路径”字段中获取数据(例如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
...
祝你好运
答案 10 :(得分:12)
如果有人使用Android工作室...
点击:构建>生成签名APK 创建一个新密钥:这将生成“.jks”文件
使用以下命令读取数据(SHA1和其他信息):
$ keytool -list -v -keystore filename.jks
答案 11 :(得分:4)
对于使用OpenSSL的用户,您可以通过以下方式检索SHA1指纹:
OpenSSL> dgst -sha1 my-release-key.keystore
这会产生以下输出:
答案 12 :(得分:3)
如果您使用的是Android Studio。您可以通过 Gradle Tasks 快速获取 SHA1证书指纹(调试,发布...... 所有构建类型 !!):
signingReport
SHA1显示在消息日志
中Android插件(在gradle应用程序中配置)创建默认的调试模式。
com.android.application
到密钥库的文件路径:
HOME / .android / debug.keystore
我建议附加 debug.keystore到build.gradle。为此,将文件debug.keystore放入app文件夹,然后在gradle app中添加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放入app文件夹。 (此示例使用相同的debug.keystore)
答案 13 :(得分:3)
以下是我的简单解决方案:
点击Gradle
按钮,您可以在右侧顶部找到。你会看到所有的gradle文件。现在转到android,然后双击signingReport。 gradle构建完成后,您会看到SHA键。请查看以下图像,了解分步指南。
点击Gradle后,请检查以下图片。希望这有助于某人。
第1步:
第2步:
答案 14 :(得分:3)
我第一次感到很困惑,但我建议你最终解决方案 适用于Windows:
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
答案 15 :(得分:3)
试试这个: Windows ----首选项---- Android - build --- sh1代码拷贝从这里开始
答案 16 :(得分:2)
请从菜单右侧单击Gradle 然后点击:app 然后点击android文件夹 然后那里存在SigningReport文件名 双击。 它将开始执行,并在一段时间内向您显示SHA-1代码 只需复制代码即可。 并将其粘贴到您需要的地方
答案 17 :(得分:1)
我认为这将完美无缺。我使用了同样的东西:
对于Android Studio:
点击Build>生成签名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 studio \ signed apks \ Hello World \ HelloWorld.jks“)。
现在它将询问密钥存储密码,提供您的密码存储密码并按Enter键以获取SHA1和MD5证书密钥。
现在将此SHA1密钥添加到凭据选项卡中的google开发人员控制台,并将android studio中的构建变体更改为发布模式。
答案 18 :(得分:1)
对于那些在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
位于同一目录中。即:
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin
从bin目录中,您可以使用keytool。
答案 19 :(得分:1)
如果要从对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
.....................
答案 20 :(得分:1)
如果您使用的是Mac / Linux,那么您可以通过在终端中写下以下行来获取SHA1指纹:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
此后有两件事可能
它会要求您输入密码
只需输入
机器人
然后按回车键,您可以在下面显示的输出中找到SHA1键。
它会要求你下载一个合适的程序(有些列表会 给予)
只需在终端
sudo apt install openjdk-8-jre-headless
然后再次在终端中运行:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
这一次,您将进入第1步,您需要输入密码
机器人
您将在输出中获得下面的SHA1指纹。
答案 21 :(得分:0)
在最新版本的 Android Studio 中,获取 SHA-1 密钥的最佳方式是表单终端。 ,
答案 22 :(得分:0)
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
答案 23 :(得分:0)
这是惰性编码器的工具:
1添加依赖项:
compile 'com.vk:androidsdk:1.6.9'
2在您的活动/应用程序中的某处添加以下行:
String[] fingerprints = VKUtil.getCertificateFingerprint(this, getPackageName());
Log.d("SHA1", fingerprints[0]);
3打开logcat并捕获消息。
4个利润!
答案 24 :(得分:0)
逐步解决方案:
将目录更改为keytool文件位置的目录。使用命令cd <directory path>
更改目录。 (注意:如果任何目录名称有空格,则在两个单词之间添加 \ 。示例cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/
)
要找到你的keytool的位置,你去android studio..open你的项目。然后转到
文件&gt;项目结构&gt; SDK位置..并找到JDK位置。
通过此命令运行keytool:
keytool -list -v –keystore <your jks file path>
(注意:如果任何目录名称有空格,则在两个单词之间添加\。示例
keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks
)
命令提示您输入密码..所以输入密码..然后你得到结果
答案 25 :(得分:0)
我想向那些与我有同样问题的人发布通知。我完成了生成调试SHA-1和发布SHA-1的步骤。我试图将Google Sign-In API与我的应用相关联。
我遇到了调试.apk工作正常的问题,它将与Google登录连接并进行身份验证。当手动安装到手机上时,我的发布.apk也可以正常工作。当我将我的发布.apk发布到Google Play商店时,我的google登录将无法进行身份验证,我会遇到问题!
最长的时间我无法弄明白,但我发现我的应用程序是由谷歌签署的,即开发者控制台顶部的消息显示: Google Play App Signing已启用此应用。
我转到了我的版本管理选项卡,然后向下滚动到App Signing,在那里找到了SHA-1。将此添加到我的代码和&#34; firebase控制台&#34;我用它作为Google登录的后端,一切似乎都有效。看起来我的发布密钥库被google签名证书取代了...我不确定这是不是发生了什么,但它解决了我的问题,并允许我的Google Play商店发布apk正确验证谷歌登录!
答案 26 :(得分:0)
获取SHA-1的最简单方法用于发布和调试模式android studio gradle。 Check this
答案 27 :(得分:0)
使用portecle: