|
Some checks are pending
Build Android (APK + AAB) / build-android (push) Waiting to run
Confirmado: BMS responde ao app oficial Xiaoxiang. Problema é técnica de inicialização não implementada na nossa abordagem. Adicionado wake-up sequence ANTES do probe de protocolos: 1. ble.read na notify char (acorda stack BLE) 2. delay 300ms 3. write 0x5A x4 (handshake hello observado em alguns Xiaoxiang) 4. delay 1500ms (BMS processa wake) 5. probe normal de protocolos Cada step protegido por try/catch + timeout 2s — não trava loop. Logs detalhados pra ver onde falha se acontecer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| android | ||
| play-store-assets | ||
| .gitignore | ||
| capacitor.config.json | ||
| package-lock.json | ||
| package.json | ||
| play-store-listing.md | ||
| README.md | ||
Shivao Mobile · Capacitor Android (e iOS futuro)
Wrapper Capacitor pra empacotar o Shivao web como app nativo Android (.apk pra sideload, .aab pra Play Store) e iOS no futuro.
Arquitetura: o frontend HTML mora em app/diario-bordo.html (1 fonte de verdade). Um script (scripts/sync-html.mjs) copia pra server/public/index.html (Express serve) e mobile/www/index.html (Capacitor empacota).
🛠️ Pré-requisitos (instalar 1 vez)
Windows (recomendado pra você)
-
JDK 17+ — Adoptium Temurin é a melhor escolha:
winget install EclipseAdoptium.Temurin.17.JDKVerificar:
java -versiondeve mostrar17.x -
Android Studio — instala SDK + emulador + tudo:
winget install Google.AndroidStudioApós abrir, ir em Tools → SDK Manager e instalar:
- Android SDK Platform 34 (Android 14)
- Android SDK Build-Tools 34.0.0
- Android SDK Command-line Tools (latest)
- Android SDK Platform-Tools
-
Variáveis de ambiente (Painel de Controle → Sistema → Variáveis de Ambiente):
JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.x(ajuste path)ANDROID_HOME=C:\Users\pontu\AppData\Local\Android\Sdk- Adicionar ao PATH:
%JAVA_HOME%\bin,%ANDROID_HOME%\platform-tools
-
Reiniciar terminal. Verificar:
java -version adb --version
Tempo total de instalação: ~30-45 min (download de ~3GB).
🚀 Build inicial (faz 1 vez)
cd mobile
# Instala deps Capacitor + plugins
npm install
# Sincroniza HTML do app/ pra mobile/www/
node ../scripts/sync-html.mjs
# Adiciona projeto Android (gera mobile/android/)
npx cap add android
# Sincroniza plugins nativos no projeto Android
npx cap sync android
Permissões Android (editar manualmente após cap add android)
Abra mobile/android/app/src/main/AndroidManifest.xml e adicione DENTRO do <manifest>:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.sensor.barometer" android:required="false" />
<uses-feature android:name="android.hardware.sensor.compass" android:required="false" />
🔐 Keystore PERMANENTE (CRÍTICO — gera 1 vez, guarda pra sempre)
cd mobile/android/app
keytool -genkey -v -keystore shivao-release.keystore -alias shivao -keyalg RSA -keysize 2048 -validity 10000 \
-dname "CN=Karlao, O=PontualTech, L=Sao Paulo, ST=SP, C=BR"
# Senha forte (mínimo 8 chars). ANOTE em local seguro — perda = perda permanente do app na Play Store.
BACKUP IMEDIATO:
cp shivao-release.keystore C:/Users/pontu/Downloads/Shivao-keystore-backup/shivao-release.keystore
echo "Senha keystore: SUA_SENHA_AQUI" >> C:/Users/pontu/Downloads/Shivao-keystore-backup/keystore-passwords.txt
echo "Alias: shivao" >> C:/Users/pontu/Downloads/Shivao-keystore-backup/keystore-passwords.txt
E também faça upload em Drive privado, HD externo etc — perdeu = não publica update na Play Store nunca mais.
Configurar signing no Gradle
Edite mobile/android/app/build.gradle, dentro de android { ... }:
signingConfigs {
release {
storeFile file('shivao-release.keystore')
storePassword System.getenv('SHIVAO_KEYSTORE_PWD') ?: 'SUA_SENHA_AQUI'
keyAlias 'shivao'
keyPassword System.getenv('SHIVAO_KEY_PWD') ?: 'SUA_SENHA_AQUI'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
}
}
📦 Build do APK (sideload) e AAB (Play Store)
cd mobile
# Sincroniza última versão do HTML antes de build
npm run sync
# APK assinado pra sideload (~3-5 min primeira vez, ~1 min em rebuilds)
npm run android:build:apk
# Output: mobile/android/app/build/outputs/apk/release/app-release.apk
# AAB pra Play Store (formato preferido)
npm run android:build:aab
# Output: mobile/android/app/build/outputs/bundle/release/app-release.aab
🌐 Alternativa: Build na nuvem (sem instalar nada local)
Se não quiser instalar 3GB de Android Studio:
Opção A: Codemagic (mais simples)
- 500min grátis/mês, suficiente pra ~10 builds
- Conecta ao Forgejo, push detecta e roda
- Configura assinatura no painel
Opção B: Container Docker no Coolify (mais self-hosted)
- Subir imagem
mingc/android-build-boxno Coolify - Cron job ou webhook do Forgejo dispara build
- APK/AAB salvo em volume persistente
Ambas opções: vamos preparar quando você decidir.
🎮 Submeter Play Store
- Conta Google Play Developer: $25 1× em https://play.google.com/console
- Após aprovado (~24h), criar novo app:
- Nome: "Shivao - Diário de Bordo"
- Categoria: "Maps & Navigation"
- Idioma: pt-BR
- Subir AAB: Production → Releases → Create new release → upload
app-release.aab - Conteúdo obrigatório:
- Política de privacidade (URL pública — vou criar uma rota
/politica-privacidadeno servidor) - Screenshots: mínimo 2 (vou gerar via Playwright se quiser)
- Ícone 512×512 (vou gerar do icon.svg)
- Descrição curta (80 chars) e completa
- Política de privacidade (URL pública — vou criar uma rota
- Content rating: preencher questionário (~5min)
- Pricing: Free (cobrança vai por dentro do app via Asaas, não Google IAP — economia de 30%)
- Submit pra review: Google revisa em 1-7 dias
📱 iOS (FASE 4 futura)
Requer:
- Mac (mini M4 ~R$5k mais barato)
- Apple Developer Program $99/ano
- Xcode
npx cap add ios
npx cap sync ios
npx cap open ios # abre Xcode
# Build Archive → Distribute → App Store Connect
🐛 Troubleshooting
adb: command not found — adicione %ANDROID_HOME%\platform-tools ao PATH
SDK location not found — crie mobile/android/local.properties:
sdk.dir=C:\\Users\\pontu\\AppData\\Local\\Android\\Sdk
Build muito lento — primeiro build baixa Gradle + dependências (~500MB). Próximos builds usam cache.
APK muito grande — habilitar minify em build.gradle:
buildTypes.release.minifyEnabled true
buildTypes.release.shrinkResources true