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çãoA 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
    }
}