如何使用gradleW从命令行获取签名的apk?

时间:2016-06-14 19:30:59

标签: android gradle android-gradle

我试图让jenkins工作使用我在文件夹中的密钥库自动编译和签署我的APK文件。我试过这个:

SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_79
SET ANDROID_HOME=E:\androidsdk
SET PATH=%PATH%;%JAVA_HOME%;%ANDROID_HOME%
SET ZIPALIGN="%ANDROID_HOME%\build-tools\23.0.3\zipalign"

echo %cd%

gradlew assembleDebug & "%JAVA_HOME%\bin\jarsigner" -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key-jenkins\MyKey.jks -storepass rusavon app\build\outputs\apk\app-debug-unsigned.apk Mypassword& %ZIPALIGN% -v 4 app\build\outputs\apk\app-debug-unsigned.apk app\build\outputs\apk\debug-r%SVN_REVISION%.apk   

但它没有用。 (它曾用于使用gradle代替gradlew的其他项目。)

1 个答案:

答案 0 :(得分:2)

您应该考虑在build.gradle中添加构建类型和签名配置,然后运行./gradlew assembleRelease

它应该构建一个签名的apk。

对build.gradle进行以下更改。

buildTypes {
        // Debug Configuration
        debug {
            testCoverageEnabled = true
            debuggable true
        }
        // Release Configuration
        release {
            testCoverageEnabled = false
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.release
        }

然后有这些签名配置:

 signingConfigs {
        debug {
            storeFile file("xx-key.keystore")
            storePassword "xx123"
            keyAlias "xxxx"
            keyPassword "xx123"
        }
        release {
            keyAlias 'xxxx'
            keyPassword 'xx123'
            storeFile file('xxxxxx-Key.keystore')
            storePassword 'xx12'
        }
    }
  

运行命令生成签名的apk:./ gradlew assembleRelease