我正在尝试在我的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,所以我无法快速得到答案。
答案 0 :(得分:2)
我解决了这个问题。关键是选择app
目录作为密钥存储路径。
以下是我在Android Studio中如何生成签名apk的详细说明:
示例签名配置:
signingConfigs {
release {
storeFile file("keystore.jks")
storePassword "StorePassword"
keyAlias "KeyAlias"
keyPassword "KeyPassword"
}
}
当然,拥有安全备份,并且一旦生成密钥库,就会极其保护密钥库。
答案 1 :(得分:1)
keytool -genkey -v -keystore name_of_your_file.keystore -alias your_alias -keyalg RSA -keysize 2048 -validity 10000
这是命令将生成新密钥
密钥库将在您调用此文件的文件夹中生成
然后将其添加到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上