如何使用上传密钥对您的应用进行签名

Mic*_*ael 22 android publish

我正在尝试将我的应用发布到Google Play商店,我无法弄清楚如何使用上传密钥签署应用,如https://developer.android.com/studio/publish/app-signing.html中所述

我使用的是Android Studio,我签了apk使用Build - > generate signed APK,并在我自己的密钥库路径/文件中创建了自己的密钥.现在,要发布,我需要使用谷歌上传密钥,这让我很困惑.所以,

  1. 我在哪里可以在Google Play控制台中找到我的上传密钥?在此应用程序的App签名下,我可以看到MD5,SHA-1,SHA-256的上传证书,甚至可以下载upload.pem文件.我该怎么办?

  2. 那么我究竟如何在Android Studio中使用Build - > generate signed APK来使用这个所谓的上传密钥进行签名?

我的应用使用谷歌登录来验证用户身份.现在它可以工作,如果我只是安装自己的apk.但是,如果我从谷歌商店下载它,它不能进行谷歌认证,我认为我搞砸了发布程序.

仅供参考,我正在使用"使用Google Play App Signing"流程.

请帮忙.

Rud*_*dyF 8

我想我已经想到了......

当您选择使用Google App Signing流程时,Google Play会将您上传的应用的签名更改为应用签名证书的SHA-1证书指纹(与上传证书相对).有关流程,请参阅此Studio文档中的图1 .

[顺便说一下,您可以在Google Play控制台上找到应用程序的证书 - >发布管理 - >应用程序签名]

这意味着,要使Oauth工作,您必须创建一个新的OAuth 2.0凭据(在console.developers.google.com上),凭据使用具有相同包名称的App签名证书的指纹(与上载证书的指纹相对).

您的软件包现在将拥有2个Oauth凭据,一个用于生产版本,另一个用于开发/测试.两者都具有相同的包名称; 生产凭证将使用应用程序签名指纹,而开发/测试凭据将使用上载(或本地密钥库)指纹.

显然,在您的应用首次部署到Google Play(GP指定)之前,您不会知道应用签名指纹.因此,在首次上传到Google Play之后,但在点击"部署到生产"之前,需要创建制作凭据.


Pau*_*and 5

使用新系统,上传密钥是一个简单而普通的密钥库,您可以使用 android studio 创建。因此,请对您的 apk 进行签名,然后将其发送到 Playstore。

Google 将删除此密钥,并使用声明的应用程序密钥(并在 google play 中生成)


Avi*_*Avi 1

您想遵循哪个流程,有两种方法可供选择:-

  1. 自行管理密钥和密钥库或
  2. 使用谷歌应用程序签名。(稍后提供对检索密钥的支持,即使您丢失了它)。

我们来谈谈第一个,它是使用次数最多且简单的。脚步:-

  1. 创建密钥库文件并将密码、别名和别名密码保存在某个安全的地方。
  2. 将该密钥库文件保存在保存具有上述凭据的文件的同一位置。
  3. 现在转到 build->Generate Signed APK-> 选择您刚刚创建的密钥库文件,提供所有必需的凭据,例如:密码、别名、别名密码。
  4. Android studio 为您生成签名 APK,您可以将其上传到 Playstore。
  5. 下次您再次生成 APK 时,您只需执行步骤 3 和步骤 4,因为您的密钥库文件将使用与之前使用的相同的文件,因为您正在推送应用程序更新。当您想要更新应用程序时,APK 应使用相同的密钥库进行签名,或者您可以说相同的 SHA 证书。

如果你想通过cammand完成整个过程,那么你可以在app.gradle文件中添加buildType,这是更好更合适的方式。

要添加 buildType 配置,请参阅 gradle 代码:-

android{
buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            storeFile file("path for release.keystore")
            storePassword keystore_password
            keyAlias keystore_alias
            keyPassword keystore_alias_password
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

在上面的配置中,您需要在storeFile 标签中提供发布密钥库文件的文件路径,还需要在 storePassword、keyAlias 和 keyPassword 中提供凭据,如上所述。

添加上述配置后,现在您可以通过简单的 gradlew 命令生成签名的 apk:-./gradlew clean assembleRelease

如果您想使用第二种方法,请在此处找到使用谷歌应用程序签名的密钥详细信息,如果您在任何步骤中遇到任何问题,请提及该步骤,以便我可以解决问题。

要首先生成上传密钥,您需要执行以下操作:-

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

然后使用以下命令对 apk 进行签名:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keys
Run Code Online (Sandbox Code Playgroud)

您还可以使用 github lib 从这里自动化整个过程。

或者您可以参考这里了解更多详情。

  • 我正在使用第二种方法,这是我遇到困难的地方(尝试纠正我之前犯的错误):--在步骤 1 的子步骤 1“为新应用程序创建上传密钥”中,我按照链接到“签署您的应用程序”——然后在“管理您的密钥”部分的“使用 Google Play 应用程序签名”小节中,它说我应该“然后您创建一个单独的上传密钥”。我怎么做?那么我该如何“向 Google 注册”呢? (2认同)