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) ouC:\Users\{usuario}\.m2\repository\(Windows). Verifique a publicação comls ~/.m2/repository/com/tupifintech/.
Opção B — GitHub Packages
As releases publicam quatro coordenadas no GitHub Packages (variantes de build):
| Coordenada | Uso |
|---|---|
com.tupifintech:apossdk-debug-staging:<versao> | Debug / staging |
com.tupifintech:apossdk-release-prod:<versao> | Release / produção |
com.tupifintech:apossdk-development-debug-staging:development | Desenvolvimento (debug) |
com.tupifintech:apossdk-development-release-prod:development | Desenvolvimento (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 degoogle()/mavenCentral(). - Verifique se as versões em
dependenciescoincidem com as publicadas. - Limpe o cache:
./gradlew cleane./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). Ocreate()inicializa oHttpClientcom 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.