Google Play 的部署和上传密钥 - 如何将它们与 Cordova 一起使用
Deployment and upload key for Google Play - how to use them with Cordova
我创建了一个 Cordova 混合应用程序,并以某种方式设法为 Google Play 签名,使用两个命令启动该过程:
1. keytool ...
2. cordova run android --release keystore==... password=...
在 google 控制台上传已签名的应用程序并选择他们的上传密钥后,我可以访问两个证书文件:deployment_cert.der 和 upload_cert.der,以及他们的"hash-codes"。这让我很困惑。我该怎么办?我如何使用它们为 Google Play 的应用程序签名? (我只为项目使用 JavaScript 和 Cordova 命令。我需要 Java 还是什么?)
让我更加困惑的是,我能够忽略这些证书并在 Google Play 上启动应用程序,仅使用原始密钥库(通过重复上面的命令 2)。
那么我是否使用上传密钥对应用程序进行了签名?我不这么认为。我怎么能?
所以您基本上需要跟踪三个签名证书。第一个是通常通过 android 工作室安装的调试证书。
https://coderwall.com/p/r09hoq/android-generate-release-debug-keystores
第二把钥匙是你制作的释放钥匙。基本上,您是在指定使用 keytool 创建的密钥库文件。这是您用来签署您的应用程序以进行生产的那个。
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore nfty.keystore app-release-unsigned.apk [your app name]
/Users/admin/Library/Android/sdk/build-tools/27.0.3/zipalign -v 4 app-release-unsigned.apk [your app name].apk
但等等,还有更多。
Playstore 将使用它自己的密钥再次重新注册您的应用程序,您可以让它在每次更新时保留它。这是您发布应用程序以供发布应用程序进行身份验证所需的唯一密钥,它也是 base64 用于 facebook 登录的密钥。这是 .der 文件包含的内容,即您的密钥的 sha1。要获取 base64,您将使用:
cat [app name]_cert.der | openssl sha1 -binary | openssl base64
当您在 Google Play 应用签名计划中注册您的应用时,您让 Google 创建并拥有私钥,该私钥将用于对交付给最终用户的 APK 进行签名(即 部署密钥)。
您用于签署您首次上传到 Play 管理中心的 APK 的私钥就是 Play 所称的上传密钥。这是您需要用来签署您以后上传到 Play 管理中心的所有 APK 的密钥。 Play 管理中心的作用是查看您上传的第一个 APK,提取其证书,并会验证以后每次上传的 APK 是否与同一证书匹配。
应用签名页面中显示的证书仅供参考。 上传证书 是与您用于签署 APK 的私钥关联的证书,部署证书 是与私钥关联的证书Play 管理中心创建并用于 re-sign APK。如果您的应用程序使用 third-party API 需要身份验证才能使用该 third-party 服务注册您的应用程序,则您只需要这些哈希值。
我希望能澄清一点。
官方文档可以在这里找到:https://support.google.com/googleplay/android-developer/answer/7384423
我创建了一个 Cordova 混合应用程序,并以某种方式设法为 Google Play 签名,使用两个命令启动该过程:
1. keytool ...
2. cordova run android --release keystore==... password=...
在 google 控制台上传已签名的应用程序并选择他们的上传密钥后,我可以访问两个证书文件:deployment_cert.der 和 upload_cert.der,以及他们的"hash-codes"。这让我很困惑。我该怎么办?我如何使用它们为 Google Play 的应用程序签名? (我只为项目使用 JavaScript 和 Cordova 命令。我需要 Java 还是什么?)
让我更加困惑的是,我能够忽略这些证书并在 Google Play 上启动应用程序,仅使用原始密钥库(通过重复上面的命令 2)。 那么我是否使用上传密钥对应用程序进行了签名?我不这么认为。我怎么能?
所以您基本上需要跟踪三个签名证书。第一个是通常通过 android 工作室安装的调试证书。
https://coderwall.com/p/r09hoq/android-generate-release-debug-keystores
第二把钥匙是你制作的释放钥匙。基本上,您是在指定使用 keytool 创建的密钥库文件。这是您用来签署您的应用程序以进行生产的那个。
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore nfty.keystore app-release-unsigned.apk [your app name]
/Users/admin/Library/Android/sdk/build-tools/27.0.3/zipalign -v 4 app-release-unsigned.apk [your app name].apk
但等等,还有更多。
Playstore 将使用它自己的密钥再次重新注册您的应用程序,您可以让它在每次更新时保留它。这是您发布应用程序以供发布应用程序进行身份验证所需的唯一密钥,它也是 base64 用于 facebook 登录的密钥。这是 .der 文件包含的内容,即您的密钥的 sha1。要获取 base64,您将使用:
cat [app name]_cert.der | openssl sha1 -binary | openssl base64
当您在 Google Play 应用签名计划中注册您的应用时,您让 Google 创建并拥有私钥,该私钥将用于对交付给最终用户的 APK 进行签名(即 部署密钥)。
您用于签署您首次上传到 Play 管理中心的 APK 的私钥就是 Play 所称的上传密钥。这是您需要用来签署您以后上传到 Play 管理中心的所有 APK 的密钥。 Play 管理中心的作用是查看您上传的第一个 APK,提取其证书,并会验证以后每次上传的 APK 是否与同一证书匹配。
应用签名页面中显示的证书仅供参考。 上传证书 是与您用于签署 APK 的私钥关联的证书,部署证书 是与私钥关联的证书Play 管理中心创建并用于 re-sign APK。如果您的应用程序使用 third-party API 需要身份验证才能使用该 third-party 服务注册您的应用程序,则您只需要这些哈希值。
我希望能澄清一点。
官方文档可以在这里找到:https://support.google.com/googleplay/android-developer/answer/7384423