首页 > 解决方案 > 105 char hex 的 Google Play 商店应用签名密钥问题

问题描述

我正在尝试将我的密钥库添加到 Google Play 应用签名中。

指南提到

java -jar pepk.jar --keystore = foo.keystore --alias = foo --output = output.zip --encryptionkey = The_Hex_Which_Is_105_Char

The_Hex_Which_Is_105_Char是 google 在说明中提供的 105 char hex。

我必须删除多余的空格才能使其正常工作。

java -jar pepk.jar --keystore=my.keystore --alias=myAlias --output=output.zip --encryptionkey=The_Hex_Which_Is_105_Char

但运行这个我得到一个错误:

Error: Unable to export or encrypt the private key
java.lang.IllegalArgumentException: Hex encoded byte array must have even length but instead has length: 105. Hex encoded string: The_Hex_Which_Is_105_Char
    at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.fromHex(ExportEncryptedPrivateKeyTool.java:225)
    at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.run(ExportEncryptedPrivateKeyTool.java:149)
    at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.main(ExportEncryptedPrivateKeyTool.java:110)

密钥应该如何生成?为什么 google 给我一个 105 char 十六进制密钥,而 pepk 工具不能使用?

标签: androidgoogle-playkeystoreandroid-keystorejar-signing

解决方案


有3个选项

  • 让 Google 创建和管理应用签名密钥(推荐)
  • 从 Java 密钥库导出和上传密钥和证书
  • 导出和上传密钥和证书(不是从 Java 密钥库)

我正在使用选项 2,因为我的密钥库已经创建。

我通过使用选项 3 中提供的加密密钥(136 个字符)让它工作

  • 导出和上传密钥和证书(不是从 Java 密钥库)
 java -jar pepk.jar --keystore = foo.keystore --alias = foo --output =
 output.zip --encryptionkey = KeyFromOption3WorksHere136CharactersLong

推荐阅读