Processo para assinatura de apps para os terminais da Positivo, Gertec e Tectoy
Esta documentação detalha o processo de configuração de Flavors no Android para suportar diferentes modelos de dispositivos de vários fabricantes. Cada variação de build terá certificado de assinatura específico e configurações dedicadas.
Atenção
A partir da versão 4.11.0 do SDK, a utilização de flavors no Android é obrigatória para integrar dispositivos das marcas Positivo, Gertec e Tectoy. Para mais detalhes sobre flavors, consulte a documentação oficial do Android: productFlavors
Estrutura de Configuração
1. Configuração das Assinaturas (signingConfigs)
No arquivo build.gradle
do aplicativo, configure os signingConfigs para cada modelo:
android {
...
signingConfigs {
positivoStandard {
def keystorePropertiesFile = rootProject.file("positivo/positivo-keystore.properties")
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
storeFile rootProject.file("positivo/${keystoreProperties.getProperty('storeFile', System.env.POSITIVO_KEYSTORE_FILE)}")
keyAlias keystoreProperties.getProperty('keyAlias', System.env.POSITIVO_KEYSTORE_ALIAS)
keyPassword keystoreProperties.getProperty('keyPassword', System.env.POSITIVO_KEYSTORE_KEY_PASSWORD)
storePassword keystoreProperties.getProperty('storePassword', System.env.POSITIVO_KEYSTORE_PASSWORD)
}
gertecGpos700 {
def keystorePropertiesFile = rootProject.file("gertec/gertec-keystore.properties")
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
storeFile rootProject.file("gertec/${keystoreProperties.getProperty('storeFile', System.env.GERTEC_KEYSTORE_FILE)}")
keyAlias keystoreProperties.getProperty('keyAlias', System.env.GERTEC_KEYSTORE_ALIAS)
keyPassword keystoreProperties.getProperty('keyPassword', System.env.GERTEC_KEYSTORE_KEY_PASSWORD)
storePassword keystoreProperties.getProperty('storePassword', System.env.GERTEC_KEYSTORE_PASSWORD)
}
}
...
}
2. Definindo os productFlavors
Configure os flavors para cada modelo específico usando uma única dimensão:
android {
...
flavorDimensions = ["model"]
productFlavors {
sunmi {
dimension "model"
signingConfig signingConfigs.debug
versionNameSuffix "-sunmi"
}
ingenico {
dimension "model"
signingConfig signingConfigs.debug
versionNameSuffix "-ingenico"
}
gertecGpos700 {
dimension "model"
signingConfig signingConfigs.gertecGpos700
versionNameSuffix "-gertecGpos700"
}
tectoySeriesT {
dimension "model"
signingConfig signingConfigs.debug
versionNameSuffix "-tectoySeriesT"
}
positivoSeriesL {
dimension "model"
signingConfig signingConfigs.positivoStandard
versionNameSuffix "-positivoSeriesL"
}
}
}
3. Dependências do Projeto
Configure as dependências específicas para cada flavor:
dependencies {
// Configurações comuns...
ingenicoImplementation "br.com.stone:stone-sdk-posandroid-ingenico:$stone_sdk_version"
sunmiImplementation "br.com.stone:stone-sdk-posandroid-sunmi:$stone_sdk_version"
tectoySeriesTImplementation "br.com.stone:stone-sdk-posandroid-tectoy:$stone_sdk_version"
gertecGpos700Implementation "br.com.stone:stone-sdk-posandroid-gertec:$stone_sdk_version"
positivoSeriesLImplementation "br.com.stone:stone-sdk-posandroid-positivo:$stone_sdk_version"
}
Configurações Adicionais
Desabilitação de Assinatura no Modo Debug
buildTypes {
debug {
signingConfig null
}
}