Je veux créer un deuxième type de construction qui devrait fonctionner exactement comme le type de débogage déjà existant. Actuellement, j'ai deux types de construction: debug et release. Le fichier de débogage peut être exécuté en un seul clic et est automatiquement signé avec le magasin de clés de débogage. Je compile manuellement la version de publication à l'aide de l'assistant Build -> Generate signed APK
.
Donc, pour cloner le type de construction de débogage, j'ai d'abord ajouté un deuxième type de construction nommé "local" au fichier build.graddle de l'application:
buildTypes {
...
debug {
debuggable true
minifyEnabled false
}
local {
debuggable true
minifyEnabled false
}
}
Ensuite, j'ai créé app/src/local/res
et ajouté des fichiers.
Ensuite, je fais une resynchronisation de niveau et sélectionnez le nouveau type de construction dans l'onglet de gauche:
Enfin, je clique sur le bouton d'exécution et je m'attendais à ce qu'il fonctionne. Cet article d'aide IntelliJ indique que la configuration de signature de débogage est la configuration par défaut:
Cela signifie que si vous ne configurez pas d'artefact manuellement et que Sélectionnez l'option Déployer l'APK par défaut dans la configuration d'exécution/de débogage: Application Android, IntelliJ IDEA utilisera les valeurs prédéfinies dans le certificat pour le généré
Au lieu de cela, cette boîte de dialogue est affichée:
Lorsque je clique sur le bouton Réparer, la boîte de dialogue de configuration de la signature s'ouvre pour l'ensemble du module de l'application. Cependant, je ne veux pas signer cet apk pour publication, il me faut le signer avec le cert. De débogage. De plus, j'ai remarqué qu'une nouvelle tâche assembleLocal
gradle a été créée, mais qu'elle génère un apk non aligné. Dans ce dossier, je peux voir que les apks de débogage habituels sont générés correctement dans leurs versions finale et non alignée.
Comment sur Terre puis-je simplement cloner le type de construction de débogage?
Vous pouvez spécifier dans le fichier build.gradle
laquelle signingConfig
doit être utilisée avec buildType
.
Pour vous connecter en utilisant la même signingConfig
que le debug buildType
par défaut, utilisez ce qui suit:
buildTypes {
local {
signingConfig signingConfigs.debug
}
/* NOTE: the debug block is not required because it is a default
* buildType configuration; all of its settings are defined implicitly
* by Android Studio behind the scenes.
*/
}
Si vous préférez utiliser un magasin de clés personnalisé situé sur votre système local, utilisez plutôt les éléments suivants:
signingConfigs {
local {
storeFile file("/path/to/custom.keystore")
storePassword "password"
keyAlias "MyLocalKey"
keyPassword "password"
}
}
buildTypes {
local {
signingConfig signingConfigs.local
}
}
En outre, vous pouvez rendre votre type de construction similaire au débogage en utilisant:
initWith(buildTypes.debug)
Voici un exemple:
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://theidasworld.com"'
}
debug {
versionName 'APP BETA'
buildConfigField "Integer", "PIN", "0000"
buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://debug.theidasworld.com"'
}
inspection {
initWith(buildTypes.debug) // keep versionName and PIN from 'debug'
buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://inspection.theidasworld.com"'
}
}
...
Une autre façon pourrait être d'utiliser des saveurs.
Exemple:
producFlavors{
app1{}
app2{}
}