Build, assinatura e distribuição 🖥️🤖🍎🌐
O fim do pipeline, por alvo. Cada launcher tem seu build.gradle; a toolchain é Java 17.
Tasks e artefatos por alvo
| Alvo | Build | mainClassName |
Artefato |
|---|---|---|---|
| 🖥️ Desktop | gradlew :lwjgl3:run (dev) / jar / instalador |
dev.crossfly.lwjgl3.Lwjgl3Launcher |
jar / instalador nativo |
| 🤖 Android | gradlew :android:installDebug / assembleRelease |
AndroidLauncher |
APK / AAB |
| 🍎 iOS | gradlew :ios:launchIPhoneSimulator / gerar .ipa |
dev.crossfly.IOSLauncher |
.ipa |
| 🌐 Web | gradlew :web:webBundle (alias dist) |
dev.crossfly.web.WebLauncher |
bundle estático |
Assinatura
| Alvo | Assinatura |
|---|---|
| 🤖 Android | keystore → assina o .aab/APK release |
| 🍎 iOS | certificado + provisioning profile → assina o .ipa |
| 🖥️ Desktop | assinatura do instalador conforme o SO (opcional) |
| 🌐 Web | não há assinatura — é conteúdo estático |
Distribuição
- 🤖 Android → Google Play (AAB) ou APK direto.
- 🍎 iOS → App Store / TestFlight (via Xcode/Transporter).
- 🖥️ Desktop → instaladores nativos (jpackage/jlink) ou jar executável.
- 🌐 Web → hospede o conteúdo de
web/build/webapp/em qualquer servidor estático.
Checklist de release
- Testado no desktop e no alvo real (ver Testes).
- Responsividade validada em telas/densidades (ver Responsividade).
- Permissões declaradas (Android
Manifest/ iOSInfo.plist). - Recursos indisponíveis por plataforma tratados (ver Matriz).
- Assinatura configurada (keystore / provisioning).
- Ícones, launch screen, versão/build number.
- Screenshots de loja gerados (
Main.getScreenShot(true).toPng(...)).
Pré-requisitos por alvo
- 🖥️ Desktop: JDK 17; no macOS,
-XstartOnFirstThread. - 🤖 Android: Android SDK + build tools.
- 🍎 iOS: macOS + Xcode + conta de desenvolvedor Apple.
- 🌐 Web: servidor de arquivos estáticos.
Erros comuns
- Submeter iOS sem chaves de uso no
Info.plist(rejeição). - Publicar APK quando a Play Store exige AAB.
- Hospedar o bundle web sem servir os
assets//assets.txtjunto.
Veja também
Esta página foi útil?Obrigado pelo feedback!