web-dev-qa-db-fra.com

Génération non signée, libérez apk avec Android Studio

J'ai besoin de générer un fichier non signé, release APK (où quelqu'un d'autre le signera et le libérera au magasin - avec quelqu'un d'autre qui manipulera les clés et tout le reste). Mon problème est que Android Studio génère une erreur chaque fois que j'essaye de construire:

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

J'ai essayé plusieurs méthodes précédentes:

  • Échec de la création d'un artefact (impossible de trouver des menus avec des "artefacts" n'importe où, bien que pour modifier les configurations, j'ai trouvé l'option de choisir un artefact personnalisé) [Probablement le meilleur choix]
  • Création d'une configuration de signature vide
  • Créer une saveur personnalisée
  • Utilisation du terminal pour exécuter gradle assemble ou gradle assembleRelease (qui échoue à cause d'une de mes bibliothèques de modules importantes qui essaie d'être construite)

Voici mon build.gradle actuel [de l'application]:

apply plugin: 'com.Android.application'

Android {
    signingConfigs {
        unsigned {
            storePassword = ""
            keyAlias = ""
            keyPassword = ""
        }
    }
    compileSdkVersion 19
    buildToolsVersion "20.0.0"
    defaultConfig {
        applicationId "hiddenForClientPrivacy"
        minSdkVersion 13
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.unsigned
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.unsigned
        }
        unsignedBuild {
            debuggable false
            versionNameSuffix '-unsigned'
            signingConfig signingConfigs.unsigned
        }
        debug {

        }
    }
    productFlavors {
        flavorUnsigned {
            versionCode = 1;
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    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.verticalviewpager:library:19.0.1'
}

Merci pour toute aide.

Modification post-aide: comme le montre la réponse acceptée marquée, j'ai dû vider le bloc de publication. De plus, je cliquais sur le bouton "Exécuter" - qui devrait afficher une erreur car je ne peux pas exécuter une version apk non signée sur un émulateur ou un appareil. La réponse acceptée décrit tout.

21
Jawad

Dans le type de build release, ne spécifiez pas du tout signingConfig et votre build ne sera pas signé. Les versions de version ne récupèrent pas la configuration de signature par défaut que les versions de débogage obtiennent, donc cela devrait fonctionner pour celles-ci.

Il y a un discussion sur la liste de diffusion adt-dev à ce sujet.

Gardez à l'esprit que pour construire à partir de Android Studio, vous devrez aller dans la fenêtre des tâches Gradle et choisir la tâche assembleRelease; les constructions normales via "Make Project" don ' t réellement construire le fichier APK final.

24
Scott Barta

En fait, vous pouvez créer un .APK non signé simplement en le construisant:

Pour le générer, sur le côté gauche du Android Studio, il y a un menu Build Variants (peut-être écrit = verticalement). Cliquez dessus.

L'onglet de la fenêtre Build Variants est apparu, cliquez sur debug et modifiez-le par release .

Reconstruisez votre application de projet > Build> Rebuild Project .

Cliquez ensuite sur Exécuter , une nouvelle fenêtre est apparue, cliquez sur Exécuter> Continuer quand même> Choisissez l'appareil que vous souhaitez exécuter avec> OK .

L'application ne fonctionnera pas sur votre appareil, mais la version de build, de votre .apk, sera générée dans le même répertoire que ceux de débogage:

  • C:\Android_PROJECT_DIRECTORY\app\build\sorties\apk \

Vous pouvez noter que le nom est app-release-unsigned.apk et c'était exactement ce que nous voulions avoir.

Plus d'informations sur ce site Web du tutoriel .

14
Patapoom

J'ai dû faire la même chose (car la signature d'application est gérée ailleurs) et j'ai simplement reconstruit le projet.

Pour générer un apk version non signée, sélectionnez une version de version dans le menu Build Variants.

Remarque: Vous pouvez obtenir une croix rouge dans la configuration de votre application dans le menu supérieur, ignorez-la.

Reconstruisez votre application de projet Build> Rebuild Project.

Vous trouverez votre application-release-unsigned.apk dans:

  • ~\app\build\sorties\apk\release \

Remarque: Si vous devez créer d'autres versions, enregistrez l'apk généré car les reconstructions ultérieures écraseront l'apk actuelle (... ne soyez pas comme moi).

0
GraSim