2016-04-11 14 views
5

Ho il seguente codice sul mio build.gradle:Gradle sta generando APK debuggable sulla modalità di rilascio

productFlavors { 
     juridico { 
      applicationId "br.com.eit.appprovaconcursos" 
     } 
     enem { 
      applicationId "com.ioasys.appprova" 
     } 
    } 

    buildTypes { 
     defaultConfig { 
      debuggable false 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug { 
      debuggable true 
      testCoverageEnabled true 
     } 
     release { 
      debuggable false 
      testCoverageEnabled true 
      //noinspection GroovyAssignabilityCheck 
      signingConfig signingConfigs.release 
     } 
    } 

Per generare APK rilascio de Io uso il seguente comando:

./gradlew assembleEnemRelease

Quando caricamento dell'APK generato (app-enem-release.apk) su Google Play, ho ricevuto il seguente errore:

Hai caricato un APK debuggable. Per motivi di sicurezza, devi disabilitare il debug prima che possa essere pubblicato su Google Play. Ulteriori informazioni sugli APK di debugging.

Sono stato in grado di generare un APK non debugabile tramite hard coding su Android Manifest android:debuggable="false". Ma la configurazione di build funziona ancora come una build debugabile, come puoi vedere nel generare Build.config (io ricontrollo e questa configurazione è dalla cartella di rilascio, inoltre non sto ricevendo alcun dato su Crashlytics, e lo disabilito da Build di debug).

public final class BuildConfig { 
    public static final boolean DEBUG = Boolean.parseBoolean("true"); 
    public static final String APPLICATION_ID = "com.ioasys.appprova"; 
    public static final String BUILD_TYPE = "release"; 
    public static final String FLAVOR = "enem"; 
    public static final int VERSION_CODE = 20135; 
    public static final String VERSION_NAME = "3.0.1"; 
} 
+0

Stesso problema qui ... –

+0

@Guiherme Torres Castro: Per favore prova a sostituire il tuo file gradle con questo http://ideone.com/c376gt – dex

+0

Sto dando il link perché non sono sicuro della risposta, ma in in questo modo ho risolto il mio problema. – dex

risposta

7

Ho scoperto che questo strano risultato proviene da testCoverageEnabled true.

Se la versione di rilascio abilita la copertura di test, genera report di copertura, quindi l'APK diventa APK di debugging.

Impostare testCoverageEnabled su false risolvere il problema e ha anche senso non generare rapporti di copertura su build di rilascio.

3

Come workaround ho impostato debuggable al vero nel defaultconfig e nel rilascio sovrascrivo la configurazione e impostare debuggable su false.