我正在尝试按照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导出向导)?
我可以先使用调试证书吗?
25 回答
这是懒惰编码器的工具:
1添加依赖:
2在您的活动/应用程序中的某处添加以下行:
3打开logcat并捕获消息 .
4利润!
我知道这个问题已经得到解答,但这就是我找到默认密钥库的签名的方式 . 在Eclipse中,如果你去Windows - > Preferences - > Android - > Build
如果您使用的是Mac甚至Linux,只需将其复制并粘贴到 Terminal 应用程序上即可立即获得SHA1密钥 . 无需改变任何东西 .
输出示例:
对于那些在mac上寻找keytool的人 . 跟着这些步骤:
首先确保安装Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html
然后在命令提示符下输入:
/usr/libexec/java_home -v 1.7
它会吐出类似的东西:
keytool与
javac
位于同一目录中 . 即:从bin目录中,您可以使用keytool .
在Android Studio中,请按以下步骤操作:
单击android studio IDE右侧的Gradle属性菜单 .
展开任务树 .
点击signingReport你可以在底部控制台看到你的SHA1
我第一次这么混乱,但我建议你 final working solution for 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
结果你必须得到这样的东西:
我认为这将完美地运作 . 我使用了相同的:
对于Android Studio:
单击Build> Generate Signed 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中的构建变体更改为发布模式 .
如果您使用的是Android Studio . 您不需要使用cmd提示生成SHA1指纹 . 您只需要使用Android Studio的默认 Map 活动创建项目 . 在项目中,您可以在“值”文件夹下的google_maps_api.xml中获取指纹 . 希望这会帮助你 . :)
看看你是否想要使用
Google Map
,你需要MD5
指纹来生成api kay
,以便在Android应用程序中使用谷歌 Map .如果您使用
JDK 1.6
,Keytool命令会生成MD5
指纹,如果您使用JDK 1.7
,它会生成SHA1
指纹 .所以问题是,如果您想签署您的申请以进行发布,请阅读this .
如果你想使用
google-map
阅读this .如果有人使用Android工作室......
单击:构建>生成登录APK创建新密钥:这将生成“.jks”文件
使用以下命令读取数据(SHA1和其他信息):
$ keytool -list -v -keystore filename.jks
我认为这将完美地运作 . 我使用了相同的:
对于Android Studio:
点击 Build > Generate Signed APK .
您将看到一个消息框,只需单击“确定” .
现在将有另一个窗口复制 Key Store Path .
现在打开命令提示符并转到 C:\Program Files\Java\jdk1.6.0_39\bin> (或任何已安装的jdk版本) .
键入 keytool -list -v -keystore ,然后粘贴 Key Store 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") .
现在它将询问 Key Store Password ,提供您的并按Enter键以获取SHA1和MD5证书密钥 .
如果您使用的是Android Studio . 您可以通过 Gradle Tasks 快速获取 SHA1 certificate 指纹(调试,发布... all Build Types !!):
SHA1显示在 Messages Logs 中
Android插件(在gradle应用程序中配置)创建默认的调试模式 .
到密钥库的文件路由:
HOME / .android / debug.keystore
我建议将 attach debug.keystore用于build.gradle . 为此,将文件debug.keystore放入app文件夹,然后在gradle app中添加SigningConfigs:
额外:如果你想要创建发布,将文件release.keystore放到app文件夹中 . (此示例使用相同的debug.keystore)
如果您使用的是Mac / Linux,那么您可以通过在终端中写下以下行来获取SHA1指纹:
在此之后有两件事可能发生
只需输入
然后按Enter键,您可以在下面显示的输出中找到SHA1键 .
只需在终端输入以下内容
然后再次在终端中运行:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
这一次,您将进入步骤1,您只需输入密码即可
并且您将在输出中获得下面的SHA1指纹 .
打开终端(在 Unix , MAC 中),(
cmd
在 Windows 中)和cd
到此(您的java)路径:运行此命令:
只需将路径更改为
debug.keystore
,您将获得MD5和SHA-1指纹 .这是我的简单解决方案:
点击
Gradle
按钮,你可以在右侧顶部找到 . 你会看到所有的gradle文件 . 现在转到android,双击signingReport . gradle构建完成后,您会看到SHA键 . 请查看以下图像,了解分步指南 .单击Gradle后,请检查以下图像 . 希望这有助于某人 .
STEP 1:
STEP 2:
在命令行中使用它
试试这个:Windows ----偏好---- Android - build --- sh1代码拷贝从这里开始
从存在应用程序密钥库的目录中运行此命令 .
我想向那些与我有同样问题的人发布通知 . 我完成了生成调试SHA-1和发布SHA-1的步骤 . 我试图将Google登录API与我的应用相关联 .
我遇到了调试.apk工作正常的问题,它将与Google登录连接并进行身份验证 . 当手动安装到手机上时,我的发布.apk也可以正常工作 . 当我将我的发布.apk发布到Google Play商店时,我的Google登录将无法进行身份验证,我会遇到问题!
最长的时间我无法理解,但我发现我的应用程序是由谷歌签署的,即开发者控制台顶部的消息显示: Google Play App Signing is enabled for this app.
我进入了Release Management选项卡,然后向下滚动到App Signing,在那里找到了SHA-1 . 将此添加到我的代码和我用作Google登录后端的“firebase控制台”后,一切似乎都有效 . 看起来我的发布密钥库被谷歌签名证书取代了...我不确定这是不是发生了什么,但它解决了我的问题,并允许我的谷歌Play商店发布apk正确认证与谷歌标志在!
使用portecle:
File>打开Keystore文件
输入密钥库密码
右键单击别名>证书详细信息> SHA-1指纹
获取SHA-1的最简单方法用于发布和调试模式android studio gradle . Check this
如果您使用的是IntelliJ(12?),请转到菜单 Build/Generate signed Api
填写弹出窗口后,获取 "key store path" 字段中的数据(例如C:\ Users \ user \ Documents \ store \ store)
并在命令行中运行:
祝好运
一步一步的解决方案:
打开命令提示符或Terminal for Mac
将目录更改为keytool文件位置的目录 . 使用命令
cd <directory path>
更改目录 . (注意:如果任何目录名称有空格,则在两个单词之间添加\ . 示例cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/
)要找到你的keytool的位置,你去android studio..open你的项目 . 然后去
文件>项目结构> SDK位置..并找到JDK位置 .
通过以下命令运行keytool:
keytool -list -v –keystore <your jks file path>
(注意:如果任何目录名称有空格,则在两个单词之间添加\ . 示例keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks
)命令提示您输入密码..所以输入密码..然后你得到结果
启动导出过程以为您的应用创建apk并使用您的 生产环境 密钥 . 最后一页显示SHA1和MD5证书指纹
对于那些使用OpenSSL的用户,您可以通过以下方式检索SHA1指纹:
这将导致以下输出: