我不确定你做了什么来尝试签署你的应用程序,但这对我有用:
更新 (4/14/14)
一旦设置了正确的配置,实际上有一种更简单的方法可以在一个命令中完成所有这些操作,如此 SO 答案中所述:Android 版本自动化
我也在这里写了一篇关于它的博客文章:http://www。 adamwadeharris.com/android-automation/
确保您的应用程序运行良好
确保您已在 AndroidManifest.xml 中设置了版本号。除非它与商店中的以前版本不同,否则 Google Play 不会接受它。versionCode 是一个整数值,因此每次提交时只需将其递增 1,无论是主要更新还是次要更新。versionName 除了向用户显示之外没有任何用途,它是一个字符串,因此您可以随意命名。例如,您可以将其设置为 1.0.3,而 versionCode 可能为 3。 ( http://developer.android.com/tools/publishing/versioning.html#appversioning )
http://schemas.android.com/apk/res/android”>
创建密钥库文件
创建密钥库文件并设置密码。我不会详细介绍如何实际执行此操作。只要确保你不会丢失这个文件。如果您丢失了它,并且必须创建一个新应用,那么当您尝试将其添加到 Google Play 商店时,它将成为一个新应用。(http://developer.android.com/tools/publishing/app-signing.html#cert)
始终为每个应用程序使用不同的密钥库文件,因为它是您将应用程序上传到商店的私钥。如果您决定将您的应用程序转移给其他开发人员,则必须向他们提供密钥库文件,并且如果您还将该密钥库用于其他应用程序,那么您就会遇到安全问题。(http://developer.android.com/tools/publishing/app-signing.html#secure-key)
将密钥库文件放在计算机上的某个位置。在哪里并不重要。
告诉 ant 你的密钥库文件在哪里
然后,您只需要通过转到您的 android 项目文件夹(对于 phonegap,它位于平台/android 中)来告诉 ant 密钥库文件在哪里,并创建一个 ant.properties 文件并将以下内容放入其中:
key.store=/Users/username/Documents/path/to/my-release-key.keystore
key.alias=app_name
其中 key.store 等于从 C 驱动器开始的密钥库文件的路径,而 key.alias 就是您想简称为它的任何名称。您将在以下命令中使用别名。
构建您的应用
打开命令提示符,导航到您的项目并运行 phonegap build。
phonegap build android
在platforms/android/bin 你应该有:
AppName.ap_
AppName.ap_.d
AppName-debug.apk
AppName-debug-unaligned.apk
AppName-debug-unaligned.apk.d
登录发布模式
然后导航到 android 目录并运行 ant release:
cd platforms/android
ant release
它将提示您输入密钥库密码和别名“app_name”的密码。输入他们两个的密钥库密码。
在platforms/android/bin 中,您现在应该还有应用程序的发布版本:
AppName-release.apk
AppName-release-unaligned.apk
AppName-release-unsigned.apk
AppName-release-unsigned.apk.d
现在进入 bin 目录:
cd bin
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /Users/username/Documents/path/to/my-release-key.keystore AppName-release-unsigned.apk app_name
更新-根据下面的评论,如果您使用 -sigalg SHA1withDSA -digestalg SHA1 而不是 SHA1withRSA,您将不会在下一步收到警告
输入您的密钥库密码
jarsigner -verify -verbose -certs AppName-release-unsigned.apk
如果您收到这样的警告,请忽略它:警告:此 jar 包含未验证证书链的条目。
zipalign -v 4 AppName-release-unsigned.apk AppName.apk
它会说:验证成功
您的最终 apk (AppName.apk) 将在 bin 目录中创建。
(http://developer.android.com/tools/publishing/app-signing.html#releasemode)
然后您可以上传到 Google Play。
我希望这有帮助。如果您有任何问题,请告诉我。
http://www.adamwadeharris.com/sign-publish-phonegap-app-google-play-store-windows/