2016-06-14 55 views
0

我正在尝试让jenkins工作自动编译并使用我在文件夹中的密钥库对APK文件进行签名。我试过这个:如何使用gradleW以从命令行获得已签名的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的其他项目)。

回答

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 
     } 

,然后让这些签约CONFIGS:

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