Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于签名Android应用程序的密钥库_Android_Apk - Fatal编程技术网

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

用于签名Android应用程序的密钥库,android,apk,Android,Apk,我正在尝试在我的Androd应用程序中实现应用内计费,当我测试购买功能时,我得到错误“此版本的应用程序未配置为通过Google Play进行计费。” 我怀疑我没有正确生成已签名的APK,问题在于我的buil.gradle文件 我按照说明生成了一个密钥库并生成了.jks。我的问题是,在签名配置中,我到底要为存储文件() 以下示例来自Android文档: signingConfigs { release { storeFile file("myreleasekey.keyst

我正在尝试在我的Androd应用程序中实现应用内计费,当我测试购买功能时,我得到错误“此版本的应用程序未配置为通过Google Play进行计费。”

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

我按照说明生成了一个密钥库并生成了.jks。我的问题是,在
签名配置
中,我到底要为
存储文件()

以下示例来自Android文档:

signingConfigs {
    release {
        storeFile file("myreleasekey.keystore")
        storePassword "password"
        keyAlias "MyReleaseKey"
        keyPassword "password"
    }
}
简单地把路径放在我的.jks文件中是不起作用的。.jks文件与.keystore文件不同吗?如果是,如何生成.keystore

更新

我从中了解到.keystore和.jk是任意的文件扩展名

我的计划是简单地将My keystore.jks文件复制到app目录中,然后添加标记,如下所示:

    storeFile file("keystore.jks")
这是正确的吗?不幸的是,Google Play发布apk需要几个小时,所以我无法快速得到答案

keytool -genkey -v -keystore name_of_your_file.keystore -alias your_alias -keyalg RSA -keysize 2048 -validity 10000
这是一个生成新密钥的命令

  • 将\u文件的名称\u更改为您的名称
  • 还有你的化名
密钥库将在您称之为的文件夹中生成

然后将其添加到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改成你的密码 以及生成密钥库时使用的别名 将您的文件名改为kestore


清理您的项目并运行
/gradlew task assembleerelease

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

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

  • 转到生成->生成已签名的apk
  • 选择应用程序模块,单击下一步
  • 在密钥存储路径下,单击新建
  • 将弹出以下窗口。 为密钥库路径选择应用程序目录。它将创建一个默认名称为“keystore.jks”的密钥库。如果你愿意,你可以改变它
  • 输入密钥库的密码。我们称之为“StorePassword”
  • 输入密钥别名(我们称之为“KeyAlias”)和密钥密码(我们称之为“KeyPassword”)
  • 在build.gradle文件中添加以下内容:
  • 签名配置示例:

     signingConfigs {
        release {
            storeFile file("keystore.jks")
            storePassword "StorePassword"
            keyAlias "KeyAlias"
            keyPassword "KeyPassword"
        }
    }
    
  • 继续执行生成已签名的apk向导,输入适当的密码并生成apk。关键是确保build.gradle在最终签名的apk中更新
  • 要确认您已成功签署.apk,请参阅问题

  • 当然,要有安全的备份,并在生成密钥库后对其进行极端保护

    在Android Studio中,进入
    Build->Generate Signed apk
    并按照以下步骤操作您不需要在
    build.gradle
    中添加
    签名配置,至少在当前的android studio版本1.3.2

    上是这样,谢谢您的回答。我发布了使用Android Studio生成密钥库的问题解决方案。