困惑与签署Android APK?

Chr*_*ist 2 android jks gradle apk android-studio

我按照步骤按官员在释放模式数字签名我的Android application.for签署他们说使用表示.keystore文件,它的凭据像这样.我现在用的Android工作室,使我得到.jks的文件instead.So我需要在那里.jks根据构建我签名的APK 的文档保留文件?请对此进行简单的阐述.并说如果做错了什么?

谢谢.

Gab*_*tti 6

你可以把.jks文件放在任何地方.
这意味着您可以将文件放在项目中,也可以将文件放在外部文件夹中(只需查看下面的路径).这取决于您的政策.

只需使用gradle配置apk的签名即可.

android {

    signingConfigs {
        release
    }

    buildTypes {
            release {
                signingConfig signingConfigs.release
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

简单方法:只需在build.gradle文件中定义凭证即可.

signingConfigs {
     release {
            //Pay attention to the path. You can use a relative path or an absolute path
            storeFile file("../your_key_store_file.jks")
            storePassword 'some_password'
            keyAlias 'alias_name'
            keyPassword 'key_password'

     }
  }
Run Code Online (Sandbox Code Playgroud)

使用.properties文件将凭据存储在脚本之外(例如,如果您不想在git repo中推送凭据).

例: signing.properties

STORE_FILE=/path/to/your.keystore
STORE_PASSWORD=yourkeystorepass
KEY_ALIAS=projectkeyalias
KEY_PASSWORD=keyaliaspassword
Run Code Online (Sandbox Code Playgroud)

然后在build.gradle文件中获取这些值:

signingConfigs {
        release
 }
Run Code Online (Sandbox Code Playgroud)

然后定义:

def Properties props = new Properties()
def propFile = new File('signing.properties')
if (propFile.canRead()){
    props.load(new FileInputStream(propFile))

    if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
            props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
        android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
        android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
        android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
        android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
    } else {
        println 'signing.properties found but some entries are missing'
        android.buildTypes.release.signingConfig = null
    }
}else {
    println 'signing.properties not found'
    android.buildTypes.release.signingConfig = null
}
Run Code Online (Sandbox Code Playgroud)