Processo de Build de Aplicação

Processo para assinatura de apps para os terminais da Positivo, Gertec e Tectoy

Esta documentação descreve como configurar productFlavors no Android para dar suporte a dispositivos de múltiplos fabricantes, incluindo a Sunmi com Android 11. Cada variante de build utiliza um certificado de assinatura específico e ajustes dedicados.

🚧

Atenção

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

O flavor gertecGposSeries7 é o suporte ao terminal Gpos730 .

⚠️

AVISO CRÍTICO: Atualizações de Dependências Principais

Esta versão contém atualizações significativas de dependências que PODEM QUEBRAR integrações existentes. Leia o changelog antes de atualizar.

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 <file-gertec-keystore>
            keyAlias <key-alias>
            keyPassword <key-password>
            storePassword <store-password>
        }

        gertecGpos700 {
            def keystorePropertiesFile = rootProject.file("gertec/gertec-keystore.properties")
            def keystoreProperties = new Properties()
            if (keystorePropertiesFile.exists()) {
                keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
            }

            storeFile <file-gertec-keystore>
            keyAlias <key-alias>
            keyPassword <key-password>
            storePassword <store-password>
        }

      gertecGposSeries7 {
            def keystorePropertiesFile = rootProject.file("gertec/gertec-keystore.properties")
            def keystoreProperties = new Properties()
            if (keystorePropertiesFile.exists()) {
                keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
            }
            storeFile <file-gertec-keystore>
            keyAlias <key-alias>
            keyPassword <key-password>
            storePassword <store-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"
      }
      SunmiSeriesP {
          dimension "model"
          signingConfig signingConfigs.debug
          versionNameSuffix "-sunmiSeriesP"
      }

      ingenico {
          dimension "model"
          signingConfig signingConfigs.debug
          versionNameSuffix "-ingenico"
      }
    
      gertecGpos700 {
          dimension "model"
          signingConfig signingConfigs.gertecGpos700
          versionNameSuffix "-gertecGpos700"
      }
    
			gertecGposSeries7 {
        dimension "model"
        signingConfig signingConfigs.gertecGposSeries7
        versionNameSuffix "-gertecGposSeries7"
			}

      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"
    sunmiSeriesPImplementation "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"
    gertecGposSeries7Implementation "br.com.stone:stone-sdk-posandroid-gertec-series7:$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
    }
}