用于签署Android应用程序的密钥库

时间:2015-03-15 01:18:40

标签: android apk

我正在尝试在我的Androd应用中实施应用内结算,当我测试购买功能时,我收到错误“此版本的应用未配置为通过Google Play结算。”

我怀疑我没有正确生成签名的APK,问题出在我的buil.gradle文件中。

我按照here的说明生成了密钥库并生成了.jks。我的问题是我为storeFile file()中的signingConfigs准确提出了什么?

以下示例来自Android文档:

signingConfigs {
    release {
        storeFile file("myreleasekey.keystore")
        storePassword "password"
        keyAlias "MyReleaseKey"
        keyPassword "password"
    }
}

简单地将路径放到我的.jks文件中是行不通的。 .jks文件是否与.keystore文件不同?如果是这样,我如何创建.keystore?

更新

我了解到.keystore和.jks是来自answer的任意文件扩展名。

我的计划是将我的keystore.jks文件复制到app目录,然后按如下方式添加标记:

    storeFile file("keystore.jks")

这是对的吗?不幸的是,Google Play需要花费几个小时来发布apk,所以我无法快速得到答案。

3 个答案:

答案 0 :(得分:2)

我解决了这个问题。关键是选择app目录作为密钥存储路径。

以下是我在Android Studio中如何生成签名apk的详细说明:

  1. 转到Build-> Generate Signed apk
  2. 选择应用模块,然后点击下一步。
  3. 在“密钥库路径”下,单击“新建”。
  4. 将弹出以下窗口。 enter image description here 选择密钥库路径的应用程序目录。它将创建一个默认名称为“keystore.jks”的密钥库。如果你愿意,你可以改变它。
  5. 输入密钥库的密码。我们称之为“StorePassword”
  6. 输入密钥别名(我们称之为“KeyAlias”)和密钥密码(让我们称之为“KeyPassword”)
  7. 在build.gradle文件中添加以下内容:
  8. 示例签名配置:

     signingConfigs {
        release {
            storeFile file("keystore.jks")
            storePassword "StorePassword"
            keyAlias "KeyAlias"
            keyPassword "KeyPassword"
        }
    }
    
    1. 继续通过Generate Signed apk向导并输入相应的密码并生成apk。关键是要确保在最终签名的apk中更新build.gradle。
    2. 要确认您已成功签署.apk,请参阅this问题。
    3. 当然,拥有安全备份,并且一旦生成密钥库,就会极其保护密钥库。

答案 1 :(得分:1)

keytool -genkey -v -keystore name_of_your_file.keystore -alias your_alias -keyalg RSA -keysize 2048 -validity 10000

这是命令将生成新密钥

  • 更改名称的name_of_your_file
  • 和别名的your_alias

密钥库将在您调用此文件的文件夹中生成

然后将其添加到build.gradle

signingConfigs { 
    config { 
        storeFile file("${rootDir}/name_of_your_file.keystore") 
        storePassword "qwerty" 
        keyAlias "your_alias" 
        keyPassword "qwerty" 
    } 
}

buildTypes { 
    release { 
        signingConfig android.signingConfigs.config 
    }
} 

但将qwerty更改为您的密码 和your_alias到生成密钥库时使用的别名 和name_of_your_file到你的kestore名称

清理项目并运行./gradlew task assembleRelease

答案 2 :(得分:0)

在Android Studio中,转到Build->Generate Signed apk并按照步骤操作。 您不需要在signingConfigs 中添加build.gradle至少在当前的Android工作室版本1.3.2上