为了账号安全,请及时绑定邮箱和手机立即绑定

在命令行运行 PEPK 应用签名工具时出错 (java -jar pepk.jar)

在命令行运行 PEPK 应用签名工具时出错 (java -jar pepk.jar)

MMTTMM 2021-09-12 19:56:09
我得到输出:错误:空从命令(在命令行执行):java -jar pepk.jar --keystore=my.keystore --alias=x --output=my.output --encryptionkey=1243任何人知道为什么或如何解决它?“my.keystore”文件存在并且是一个密钥库。别名正确且“my.output”文件不存在。我在上面的示例中更改了加密密钥值,但无论我使用什么值,我总是得到相同的输出。我试过双引号密钥库和输出值,并提供(带引号)密钥库文件和输出文件的完整路径。还是一样的错误输出。jar 正在执行,因为如果缺少某些内容,我会显示使用帮助。我还尝试在不同目录中运行该命令并确保输出目录中的权限正确。我正在使用 java 版本:java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181,混合模式)在 Windows 10 上。(我已经尝试了 / 和 的路径)。pepk.jar 是在我的应用程序的 Play 商店的应用程序签名页面发布此问题的同一天下载的。更新,自 2018 年 9 月 17 日起下载新版本:按照 Pierre 的建议下载新版本的 pepk.jar 后,输出现在是:Error: Unable to export or encrypt the private keyjava.lang.NullPointerExceptionat com.google.wireless.android.vending.developer.signing.tools.extern.export.KeystoreHelper.loadKeystore(KeystoreHelper.java:45)at com.google.wireless.android.vending.developer.signing.tools.extern.export.KeystoreHelper.getPrivateKey(KeystoreHelper.java:38)at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.run(ExportEncryptedPrivateKeyTool.java:114)at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.main(ExportEncryptedPrivateKeyTool.java:79)我已经通过使用 keytool -list -v -keystore 仔细检查了密钥库,它包含一个私钥。
查看完整描述

3 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

我终于通过使用标准的 Windows (10) 命令提示符(即“cmd”)解决了这个问题。System.getConsole 似乎正在为 cmd 返回一个非空值。

我无法找到有关 mingw64(我通常在 Windows 上使用的命令提示符)发生的情况以及为什么没有设置 System.getConsole 的任何信息。


查看完整回答
反对 回复 2021-09-12
?
炎炎设计

TA贡献1808条经验 获得超4个赞

我非常感谢@droidBomb 在之前的回答中给出的回应。

xamarin Android 的解决方案略有不同。必需的标志

--keystore 包含要导出的私钥的密钥库的路径(例如:C:\Users\YourName\Downloads\abc.keystore)"

--alias 密钥库中私钥的别名(例如:上传)

--encryptionkey 用于加密私钥的公钥。这将是公钥的十六进制编码字节。公开密钥是一个4字节的身份随后是64字节P256点(例如:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a)。

--output 用于输出加密私钥的文件。(例如:C:\Users\YourName\Downloads\private_key.pem)

  1. 打开命令提示符

  2. 从您的应用程序的 Google 控制台下载 pepk 文件。

  3. 准备如下命令

  4. Java的罐子 “C:\ Users \用户YOURNAME \下载\ pepk.jar” --keystore = “C:\ Users \用户YOURNAME \下载\ upload.keystore” --alias = “上传” --encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a --output ="C:\用户\你的名字\下载\private_key.pem"

将在输出路径生成相应的 pem 文件


查看完整回答
反对 回复 2021-09-12
?
慕容3067478

TA贡献1773条经验 获得超3个赞

您至少有 Java 版本 8(JDK 1.8)来运行语法:


java -jar PATH_TO_PEPK --keystore=PATH_TO_KEYSTORE --alias=ALIAS_YOU_USE_TO_SIGN_APK --output=PATH_TO_OUTPUT_FILE --encryptionkey=GOOGLE_ENCRYPTION_KEY


传奇:


PATH_TO_PEPK = 您下载的 pepk.jar 的路径,对于 Windows 用户可能类似于C:\Users\YourName\Downloads\pepk.jar。

PATH_TO_KEYSTORE = 用于签署发行版 APK 的密钥库路径。可能是类型的文件*.keystore或*.jks或不带扩展名。类似于C:\Android\mykeystore或C:\Android\mykeystore.keystore。

ALIAS_YOU_USE_TO_SIGN_APK = 用于签署发行版 APK 的别名的名称。

PATH_TO_OUTPUT_FILE = 带有.pem扩展名的输出文件的路径,类似于C:\Android\private_key.pem

GOOGLE_ENCRYPTION_KEY = 此加密密钥应始终相同。您可以在 App Signing 页面中找到它,复制并粘贴它。应该是这种形式:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a59b3ef27558a59b3ef27558a59b3ef9d616b3e6d628d68d6b38e6d

例子:


java -jar "C:\Users\YourName\Downloads\pepk.jar"

--keystore="C:\Android\mykeystore" --alias=myalias --output="C:\Android\private_key.pem" --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

在终端中输入命令后,您需要提供以下信息:


密钥库密码

别名密码

如果一切顺利,您现在将在PATH_TO_OUTPUT_FILE文件夹中拥有一个名为private_key.pem.


查看完整回答
反对 回复 2021-09-12
  • 3 回答
  • 0 关注
  • 1312 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信