Pular para o conteúdo principal

Instalação do SDK

Guia de instalação do SDK (apossdk) para Android.

Requisitos

Hardware

  • Terminal POS Positivo L300, L400 ou OCTA 400
  • Conexão de rede (Wi-Fi ou dados móveis)

Software

  • Android 11 (API 30) ou superior (minSdk = 30)
  • Kotlin
  • Gradle 7.0+
  • JVM Target 1.8

Distribuição

O SDK é distribuído como um AAR Fused Library — um único artefato que combina o módulo :apossdk com as bibliotecas de hardware da Positivo. Há duas formas de consumi-lo: via Maven local (desenvolvimento) ou via GitHub Packages (releases).

Opção A — Maven local

Publique o SDK no seu repositório Maven local a partir do projeto do SDK:

./gradlew publishToMavenLocal

Configure o mavenLocal() no settings.gradle.kts do seu app, antes dos demais repositórios:

dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenLocal() // 👈 antes de google()/mavenCentral()
google()
mavenCentral()
}
}

Adicione a dependência no build.gradle.kts do módulo app:

dependencies {
debugImplementation("com.tupifintech:apossdk-debug:<versao>")
releaseImplementation("com.tupifintech:apossdk-release:<versao>")
}

O repositório local fica em ~/.m2/repository/ (macOS/Linux) ou C:\Users\{usuario}\.m2\repository\ (Windows). Verifique a publicação com ls ~/.m2/repository/com/tupifintech/.

Opção B — GitHub Packages

As releases publicam quatro coordenadas no GitHub Packages (variantes de build):

CoordenadaUso
com.tupifintech:apossdk-debug-staging:<versao>Debug / staging
com.tupifintech:apossdk-release-prod:<versao>Release / produção
com.tupifintech:apossdk-development-debug-staging:developmentDesenvolvimento (debug)
com.tupifintech:apossdk-development-release-prod:developmentDesenvolvimento (release)

Configure o repositório do GitHub Packages no settings.gradle.kts com as credenciais apropriadas:

dependencyResolutionManagement {
repositories {
maven {
url = uri("https://maven.pkg.github.com/tupi-fintech/yby-android-mobile-pos-sdk")
credentials {
username = providers.gradleProperty("gpr.user").get()
password = providers.gradleProperty("gpr.token").get() // token com read:packages
}
}
}
}

E a dependência no build.gradle.kts do módulo app:

dependencies {
debugImplementation("com.tupifintech:apossdk-debug-staging:<versao>")
releaseImplementation("com.tupifintech:apossdk-release-prod:<versao>")
}

Permissões

O SDK requer as seguintes permissões (já presentes nos terminais POS):

<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.VIBRATE" />

Configuração do JVM Target e SDK

android {
defaultConfig {
minSdk = 30
targetSdk = 35
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}

Configuração do ProGuard

Se estiver usando minificação, preserve as classes da API pública do SDK e das libs da Positivo:

# Tupi apossdk — API pública e models
-keep class com.tupifintech.apossdk.sdk.api.** { *; }

# Positivo SDK
-keep class br.com.positivo.** { *; }

Verificação da Instalação

Após sincronizar o projeto, valide que o SDK carrega criando uma instância e consultando o dispositivo:

import com.tupifintech.apossdk.sdk.api.PosPinpad

val posPinpad = PosPinpad.create(this, myCallback)

val deviceInfo = posPinpad.getDeviceInfo()
Log.d("YBY", "Terminal: ${deviceInfo.hardwareModel}")
Log.d("YBY", "Serial: ${deviceInfo.serialNo}")

Problemas Comuns

SDK não encontrado

  • Confirme que mavenLocal() (ou o repositório do GitHub Packages) está configurado antes de google()/mavenCentral().
  • Verifique se as versões em dependencies coincidem com as publicadas.
  • Limpe o cache: ./gradlew clean e ./gradlew --refresh-dependencies.

Erro de compatibilidade

  • Certifique-se de que minSdk é 30 ou superior.

Crash na primeira chamada de rede (sslSocketFactory has not been initialized)

  • Sempre obtenha a instância via PosPinpad.create(context, callback). O create() inicializa o HttpClient com o socket factory mTLS — usar a implementação diretamente pula essa etapa.

Próximos Passos

Após a instalação, siga para a configuração do SDK.