Articles of keytool

如何在多台计算机上使用Google Maps API开发Android应用程序?

我想制作一个使用Google地图的Android应用程序。 我已经安装了Eclipse,Android JDK和一个AVD(Android虚拟设备)。 我遵循这个教程: http : //developer.android.com/resources/tutorials/hello-world.html,并做了我的第一个应用程序。 它的工作:) 但是,要开发使用Google Maps API的Android应用,您必须获取Google Maps API密钥。 根据此链接http://code.google.com/android/add-ons/google-apis/mapkey.html,您可以通过在JDK文件夹中获取debugging密钥的MD5指纹来获取密钥。 问题在于这个指纹是不同于电脑的。 所以我的问题是:我们必须在多台电脑上开发。 我们正在使用Subversion作为这个项目的源代码控制。 这怎么解决? 如果我注册我的MD5指纹并获得通用汽车API密钥,此密钥将无法在任何其他计算机上工作。 我知道一个解决scheme就是每个开发人员都有自己的API密钥,但我不认为这是一个顺利的解决scheme。 我试图读取MD5指纹,据我所知,你可以创build,导出和导入它们。 那么,解决scheme是我可以创build一个特定的指纹,导出它,发送给所有其他开发人员,然后他们可以导入它? 但据我所知,它必须是debugging证书? 在这种情况下,我如何制作,导出和导入一个? 我很想读这个,知道我使用keytool命令,但我找不到任何简单的例子。 请赐教:)

我们应该在Android Market的Keystore中使用“Distinguished Name”

我即将在Android电子市场发布一个应用程序。 我需要生成一个密钥库来签署我的应用程序。 这些文档是我支持-dname参数的一点点备用。 这是我正在使用的行: keytool -genkey -v -alias release -keyalg RSA -keysize 2048 -dname "CN=mydomain.com" -keystore my.keystore -validity 10000 -dname (专有名称)字段中需要什么? 我发现我可以包括CN领域。 在市场接受应用程序之前,我还有其他的领域吗? 任何好的可选的投入? 更新我发现我可以检查其他apk的使用: jarsigner -verify -verbose -certs nameof.apk 这里有些例子: 来自http://slideme.org/ X.509, CN=SlideME, OU=SlideME, O=SlideME, L=Seattle, ST=WA, C=US Opera Mini X.509, CN=Unknown, OU=Unknown, O=Opera Software ASA, L=Oslo, ST=Unknown, C=NO 另一个随机应用, X.509, CN=Romeo Ordos, O=GHOR […]

Google地图在发布模式下不会显示在Android上

我试图释放我的应用程序,但有谷歌地图的问题。 该应用程序包含一个显示地图的活动(MapActivity)。 在debugging模式下运行时,地图工作正常。 我以发布模式签署了我的应用程序,并获得了SHA1。 我根据需要在Google控制台上创build了一个新的android键(SHA1; packageName)。 得到了API密钥 在我的应用程序中,我根据需要引用了google-play-services-lib的副本。 我正在使用ADT。 map.xml <?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.SupportMapFragment" /> MapActivity.java public class MapActivity extends FragmentActivity { private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map); map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); } AndroidManifest.xml中 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.rentalcar" android:versionCode="1" android:versionName="1.0" > <uses-sdk […]

Keytool生成SHA1指纹而不是MD5?

我想在我的应用程序中使用Google地图,我按照本教程生成了我的eventappkey.keystore的MD5指纹。 但keytool会生成SHA1指纹而不是MD5,因此我无法注册Google API,因为Google接受密钥库的MD5指纹。 我看了其他的build议使用jdk1.6的答案。 但有没有更好的方法,所以我不需要移动到JDK1.6。 任何build议将不胜感激。

我无法通过keytool获取SHA1证书

我正在尝试使用以下命令在macos sierra上查找我的签名密钥存储区的SHA1哈希值: keytool -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android 结果如下所示: 别名:androiddebugkey 创作date:2017年10月25日 inputtypes:PrivateKeyEntry 证书链长度:1 证书[1]: keytool错误:java.util.IllegalFormatConversionException:d!= java.lang.String java.util.IllegalFormatConversionException:d!= java.base中的java.lang.String / java.util.Formatter $ FormatSpecifier.failConversion(Formatter.java: 4331)在java.base / java.util.Formatter $ FormatSpecifier.printInteger(Formatter.java:2846)在java.base / java.util.Formatter $ FormatSpecifier.print(Formatter.java:2800)at java.base / java 。java.util.Formatter.format(Formatter.java:2581)在java.base / java.util.Formatter.format(Formatter.java:2517)位于java.base / java.lang.String.format(String.java:2747 )在java.base / sun.security.tools.keytool.Main.printX509Cert(Main.java:3182)在java.base / sun.security.tools.keytool.Main.withWeak(Main.java:3151)。基于/ sun.security.tools.keytool.Main.doPrintEntry(Main.java:1995)在java.base / sun.security.tools.keytool.Main.doCommands(Main.java:1212)在java.base / sun。 security.tools.keytool.Main.run(Main.java:397)at java.base […]

修复debug.keystore以使用ADT 22和Google Maps v1 API密钥

在将我的Android SDK更新到版本22.0.1并更新了Eclipse ADT之后,我发现我不能再在设备上安装debugging版本。 控制台显示这个错误: Installation error: INSTALL_PARSE_FAILED_NO_CERTIFICATES 我发现我可以通过删除我的debug.keystore文件并让SDK / ADT重新创build它来解决这个问题。 这让我build立并安装一个debugging包。 但是,该应用使用Google Maps v1 API,该API需要一个与debug.keystore签名绑定的API密钥。 debug.keystore重新创build使API密钥失效,Google 不再提供新的v1 API密钥 。 所以当我运行我的debugging版本时,地图视图是空白的。 这不是一个showstopper,因为发布版本仍然正常工作。 但有没有什么办法可以“修复”我原来的debug.keystore ,使它可以与ADT 22一起使用,并匹配我的Maps v1 API密钥? FWIW,这里是keytool -list -v -keystore debug.keystore -storepass android的输出keytool -list -v -keystore debug.keystore -storepass android : Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry Alias name: androiddebugkey Creation […]

为什么我的新签名apk中的指纹不同?

将密钥库的types从PKCS12更改为JKS之后,我遇到了同样的问题。 为了进行更改,我创build了一个新的JKS密钥库,删除了其中的密钥,并从.p12文件中导入了我需要的密钥。 当使用keytool -keystore keystore.jks -listvalidationkeytool -keystore keystore.jks -list它输出的指纹: (SHA1): 21: … :39 这是.p12文件的指纹,谷歌指纹说我以前的apks已经。 当我用这个证书签名我的apk并尝试上传到playstore时,它说证书有指纹: SHA1: C7: … :AF 当我用KeyStore资源pipe理器检查原始.p12文件和新的.jks文件时,他们都将SHA1: C7: … :AF列为指纹。 EDIT1: keytool -keystore disneyquiz.p12 -storetype PKCS12 -alias 1 -list Enter keystore password: 1, Jun 4, 2014, PrivateKeyEntry, Certificate fingerprint (SHA1): 21: … :39 keytool -keystore quizstore.jks -list Enter keystore password: Keystore type: […]

用多个证书签署申请

从https://developer.android.com/studio/publish/index.html上的签名文档: 当系统正在安装应用程序的更新时,如果新版本中的任何证书都与旧版本中的任何证书相匹配,则系统允许更新。 这表示应用程序可以使用多个证书进行签名。 这是一个有趣的选项,允许多个实体签署一个应用程序。 例如:最初由设备制造商签名的系统应用程序。 进一步的更新可以由开发者签署。 我误读了文档还是这真的有可能? 如果是这样,怎么样? 是否有任何其他的方式来支持不同的证书的应用程序,有两个或更多的实体签署?

检查android密钥库keypass是否正确

我正在自动化一些涉及android keytool和jarsigner的事情。 该工具需要一个密钥库,密钥库的密码,别名和别名/密码的密码,我试图find一种方法来显式检查,以查看提供的别名/密钥密码是否正确。 有任何想法吗? 此外,我需要检查它没有一个jar文件签署 – 在我的上下文中获取该文件是漫长的,所以我想尽快中止,而不是稍后。

Keytool别名不存在

我正在尝试获取我的debug.keystore md5密钥,以便我可以获取Google地图的API密钥。 我运行命令: keytool –genkeypair -alias armand -keypass pass 然后运行命令: keytool -list -alias armand -keystore debug.keystore 然后我input我的密码,它给我以下错误: keytool error: java.lang.Exception: Alias <armand> does not exist 我究竟做错了什么?