Autore Topic: Come firmare apk per la release con Gradle  (Letto 784 volte)

Offline Twist3rEv0

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
    • Giulio Web
  • Dispositivo Android:
    Samsung Galaxy S4
  • Play Store ID:
    Giulio Giarratana
  • Sistema operativo:
    Windows 8.1, Xubuntu 14
Come firmare apk per la release con Gradle
« il: 24 Giugno 2014, 15:35:20 CEST »
0
Salve,
avrei bisogno di una piccola guida o spiegazione su come posso esportare un apk firmato con Gradle. Sul web trovo guide un po' meno complete che danno quasi tutto per scontato e la maggior parte sono solo per il tool ADT di Eclipse (come se non esistesse proprio Android Studio e Gradle).
Ve ne sarei grato se riusciste a farmi una semplice mini-guida o spiegarmi come fare.  :D

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Come firmare apk per la release con Gradle
« Risposta #1 il: 25 Giugno 2014, 10:00:11 CEST »
0
In AndroidStudio se selezioni Build -> Generate signed APK ti parte un wizard con cui puoi generarti la chiave.

Poi la chiave la puoi usare in tutti i tuoi progetti.
Se non ti importa di scrivere in chiaro la password nel file build.gradle, questo è un estratto del mio.

Codice (XML): [Seleziona]
android {
    ...

    signingConfigs {
        release {
            storeFile file("../../../Tools/arlabs_key.jkds")
            storePassword "_mypwd_"
            keyAlias "arlabs android signing key"
            keyPassword "_mypwd_"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

Ovviamente devi sotituire il tuo file.jkds, keyAlias e password.

Se invece il progetto è condiviso e non si vuole lasciare a tutto il team la visibilità della chiave, avevo letto che c'è qualche modo... c'è da cercarlo.

Ciao.

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Come firmare apk per la release con Gradle
« Risposta #2 il: 25 Giugno 2014, 10:08:21 CEST »
+1
Lo script di @arlabs va bene.
Ricorda però di lanciare assembleRelease o di switchare la BuildVariant attiva su Release (tab sul lato sinistro in basso del IDE).

Se non vuoi scrivere le chiavi sullo script (perchè condiviso) puoi fare almeno due cose:

- scriverle in un altro file che non è postato su git(o svn)
- chiederle in interattivo.

Questo lo script per scriverle in un altro file.

Codice: [Seleziona]
android {
   
    signingConfigs {
        release
    }

    buildTypes {
            release {
                signingConfig signingConfigs.release
            }
    }
}

def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()){
    props.load(new FileInputStream(propFile))

    if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
            props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {

        println 'RELEASE BUILD SIGNING'

        android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
        android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
        android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
        android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
    } else {
        println 'RELEASE BUILD NOT FOUND SIGNING PROPERTIES'

        android.buildTypes.release.signingConfig = null
    }
}else {
    println 'RELEASE BUILD NOT FOUND SIGNING FILE'
    android.buildTypes.release.signingConfig = null
}

In particolar modo
Codice: [Seleziona]
def propFile = file('../signing.properties')
Puoi usare riferimenti assoluti o relativi in base alle tue necessià.

Offline Twist3rEv0

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
    • Giulio Web
  • Dispositivo Android:
    Samsung Galaxy S4
  • Play Store ID:
    Giulio Giarratana
  • Sistema operativo:
    Windows 8.1, Xubuntu 14
Re:Come firmare apk per la release con Gradle
« Risposta #3 il: 25 Giugno 2014, 15:18:37 CEST »
0
Vi ringrazio, siete stati molto chiari.  :-)
Finalmente adesso posso uppare la mia app su google play!  :-P