创建android keystory/私钥命令行

jiv*_*lad 3 android android-build cordova

我已经使用cordova命令行构建了我的应用程序。现在我明白为了发布我需要获取密钥库和私钥。在 android 文档中,我看到我需要在 Android Studio 上执行此操作。 http://developer.android.com/tools/publishing/app-signing.html 但如果我正确理解,我将需要使用 android studio 而不是在命令行中构建项目。但我认为推荐的形式是在cordova 中使用命令行。

是否可以在命令行中创建密钥库/私钥?如果没有,是否可以使用 Adnroid studio 打开我在 codova 中构建的项目,创建密钥库/私钥,然后在cordova 中再次构建它。

您还需要为每个项目创建不同的密钥库/私钥吗?

ben*_*nka 5

检查本节
“您不需要 Android Studio 或 Eclipse 的 ADT 插件来签署您的应用程序”

如何手动签署您的应用程序。

使用 keytool 生成私钥。例如:

$ keytool -genkey -v -keystore my-release-key.keystore
-alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)

此示例提示您输入密钥库和密钥的密码,并为您的密钥提供专有名称字段。然后将密钥库生成为名为 my-release-key.keystore 的文件。密钥库包含一个密钥,有效期为 10000 天。别名是您稍后在签署应用程序时将使用的名称。

在发布模式下编译您的应用以获取未签名的 APK。

使用 jarsigner 使用您的私钥对您的应用进行签名:

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1
-keystore my-release-key.keystore my_application.apk alias_name
Run Code Online (Sandbox Code Playgroud)

此示例提示您输入密钥库和密钥的密码。然后就地修改 APK 以对其进行签名。请注意,您可以使用不同的密钥对 APK 进行多次签名。

验证您的 APK 是否已签名。例如:

$ jarsigner -verify -verbose -certs my_application.apk
Run Code Online (Sandbox Code Playgroud)

使用 zipalign 对齐最终的 APK 包。

$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
Run Code Online (Sandbox Code Playgroud)

zipalign 确保所有未压缩的数据以相对于文件开头的特定字节对齐开始,从而减少应用程序消耗的 RAM 量。