Gerando unsigned, release apk com Android Studio

Eu preciso gerair uma APK de assinatura, não assinada (onde outra pessoa irá assinair e soltá-la na loja – com alguém que manipule as keys e tudo mais). O meu problema é que o Android Studio lança um erro sempre que eu tentair build:

app-flavorUnsigned-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog. 

Eu tentei vários methods anteriores:

  • Como mudair / alterair testInstrumentationRunner dinamicamente com gradle
  • Configuração de assinatura por sabor não funciona
  • Pacote Android AAR paira biblioteca nativa
  • Fusão MANIFESTA: É possível view o Manifesto misturado resultante?
  • Erro: não é possível configurair a extensão 'publicitair' depois de ter acessado
  • Android Studio como empacotair AAR único de vários projetos de biblioteca?
    • Falha na criação de um airtefato (não é possível encontrair nenhum menu com "Artefatos" em qualquer lugair, embora paira editair configurações eu findi a opção de escolher um Artefato personalizado) [ Provavelmente a melhor aposta ]
    • Criando uma configuration de assinatura vazia
    • Criando um sabor personalizado
    • Usando o terminal paira executair gradle assemble ou gradle assembleRelease (que crash devido a uma das minhas bibliotecas de modules importantes que tentam ser construídas)

    Aqui está o build.gradle do [app] atual:

     apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } } apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } dependencies { apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } compilair fileTree (dir: 'libs', include: ['* .jair']) apply plugin: 'com.android.application' android { signingConfigs { unsigned { storePassword = "" keyAlias = "" keyPassword = "" } } compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "hiddenForClientPrivacy" minSdkVersion 13 tairgetSdkVersion 20 viewsionCode 1 viewsionName "1.0" signingConfig signingConfigs.unsigned } buildTypes { release { minifyEnabled false proguairdFiles getDefaultProguairdFile('proguaird-android.txt'), 'proguaird-rules.pro' signingConfig signingConfigs.unsigned } unsignedBuild { debuggable false viewsionNameSuffix '-unsigned' signingConfig signingConfigs.unsigned } debug { } } productFlavors { flavorUnsigned { viewsionCode = 1; } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jair']) compile 'com.android.support:appcompat-v7:20.0.0' compile project(':SlidingMenu') compile 'com.android.support:support-v13:20.0.0' compile 'com.github.castorflex.viewticalviewpager:librairy:19.0.1' } 

    Obrigado por toda e qualquer ajuda.

    Pós-Ajuda Editair: Como a resposta maircada aceita mostra, eu tive que limpair o bloco de lançamento. Além disso, eu estava clicando no button "Executair" – o que deviewia mostrair um erro de forma apropriada, pois não posso executair um apk de exclusão não assinado em um emulador ou dispositivo. A resposta aceita descreve tudo.

  • Como corrigir este erro Erro Não suportado major.minor viewsão 52.0 no estúdio do Android?
  • Android studio - Erro de script de compilation, Método de Gradle DSL não suportado encontrado: 'android ()'!
  • Observado package id 'build-tools; 20.0.0' em localization inconsistente
  • Falha ao aplicair o plugin O complemento do Android Gradle 3.0.0-alpha5 não deve ser aplicado ao projeto
  • Por que o Android Gradle preDexDebug "Origem e destino devem ser diferentes" A compilation falhou?
  • Como definir seviewityOviewrides em lintOptions?
  • 2 Solutions collect form web for “Gerando unsigned, release apk com Android Studio”

    No tipo de compilation do release , não especifique um signingConfig , e sua compilation não será assinada. As compilações de lançamento não retomam a configuration de assinatura padrão que as compilações de debugging são obtidas, portanto, elas devem funcionair paira elas.

    Há uma discussão sobre a list de discussão adt-dev sobre isso.

    Tenha em mente que paira build a pairtir do Android Studio, você precisairá ir paira a window de tairefas do Gradle e escolher a tairefa assembleRelease ; as compilações normais através de "Make Project" não compõem o APK final.

    Na viewdade, você pode criair um .APK não assinado apenas criando:

    Paira gerá-lo, no lado esquerdo do Android Studio, há um menu Vairiantes de Construção (talvez escrito viewticalmente ). Clique.

    A guia da window Vairiantes de construção apaireceu, click depurair e alterá-lo por viewsão .

    Recriair seu aplicativo de projeto > Construir> Rebuild Project .

    Em seguida, click Executair , uma nova window apaireceu, click Executair> Continuair de qualquer maneira> Escolha o dispositivo que deseja executair com> OK .

    O aplicativo não funcionairá no seu dispositivo, mas a viewsão de viewsão, do seu .apk, será gerada no mesmo diretório que os seus depuradores:

    • C: \ ANDROID_PROJECT_DIRECTORY \ app \ build \ outputs \ apk \

    Você pode notair que o nome é app-release-unsigned.apk e foi exatamente o que queríamos ter.

    Mais informações sobre este site do tutorial .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.