API Reference
Quero ser parceiro Stone!

Processo de Build de Aplicação

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
    }
}