Índice
1. O que é Kotlin Multiplatform
O Kotlin Multiplatform (KMP) é uma tecnologia da JetBrains que permite compartilhar código Kotlin entre Android, iOS, web e desktop. Diferente do Flutter e do React Native, o KMP não oferece uma camada de UI compartilhada por padrão — a interface é escrita de forma nativa em cada plataforma (Jetpack Compose para Android, SwiftUI ou UIKit para iOS).
O módulo shared (lógica de negócios, repositórios, casos de uso, modelos) é compilado para cada plataforma: para Android como biblioteca Kotlin, para iOS como um framework XCFramework.
💡 Desde 2023, o KMP é considerado estável pela JetBrains. Empresas como Netflix, McDonald's e Cash App já usam KMP em produção.
2. KMP vs Flutter vs React Native — diferença para publicação
Flutter / React Native
- UI compartilhada entre plataformas
- Um único build gera ambas as plataformas (com ajustes)
- Processo de publicação mais padronizado
- Mais recursos sobre publicação disponíveis online
Kotlin Multiplatform
- UI nativa separada por plataforma
- Dois projetos separados (Android Studio + Xcode)
- Processo de publicação idêntico ao nativo
- Maior controle e melhor performance nativa
Na prática, publicar um app KMP é como publicar dois apps nativos independentes — um Android nativo (com Kotlin/Compose) e um iOS nativo (com SwiftUI/UIKit). O processo de submissão é o mesmo de qualquer app nativo.
3. Publicar no Google Play (Android)
Compilar o módulo shared para Android
O módulo shared é uma biblioteca Kotlin standard. O Android Studio o trata como qualquer dependência local. Abra o projeto Android no Android Studio e confirme que o build.gradle do módulo Android referencia o shared corretamente.
Gerar a keystore e configurar assinatura
Igual a qualquer app Android nativo: keytool -genkey -v -keystore keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload. Configure o bloco signingConfigs no build.gradle do módulo Android.
Gerar o AAB e publicar
./gradlew :androidApp:bundleRelease (o nome do módulo pode variar). Faça upload no Play Console em Produção → Criar nova versão. Processo idêntico a um app Android nativo. Veja o guia completo: Publicar app Android.
4. Publicar na App Store (iOS)
Compilar o XCFramework
No terminal, a partir da raiz do projeto KMP: ./gradlew :shared:assembleXCFramework. Isso gera o XCFramework que será importado no projeto Xcode. O arquivo fica em shared/build/XCFrameworks/release/shared.xcframework.
Importar o XCFramework no Xcode
Abra o projeto iOS no Xcode. Arraste o shared.xcframework para o projeto ou adicione via Target → General → Frameworks, Libraries, and Embedded Content. Confirme que está configurado como "Embed & Sign".
Configurar assinatura e fazer Archive
Em Signing & Capabilities, selecione seu Apple Developer Team. Vá em Product → Archive. No Organizer, clique em Distribute App → App Store Connect → Upload. Processo idêntico a qualquer app iOS nativo. Veja: Publicar app iOS.
⚠️ Sempre gere um novo XCFramework antes de gerar o archive iOS. Se o código do módulo shared mudou mas você não recompilou o framework, o build iOS usará uma versão desatualizada da lógica de negócios.
5. Erros comuns em apps KMP
- XCFramework não encontrado no Xcode: confirme o caminho do framework no build settings. Use caminhos relativos à raiz do projeto para evitar problemas em outros sistemas.
- Símbolos ausentes no build iOS: o módulo shared pode precisar de dependências adicionais. Verifique se todas as dependências Kotlin declaradas no shared têm equivalentes para iOS no
sourceSets.iosMain. - Incompatibilidade de versão do Kotlin: o Kotlin Gradle Plugin e o compilador iOS (Kotlin/Native) precisam estar na mesma versão. Sempre atualize ambos juntos.
- versionCode não incrementado: mesmo erro do Android nativo. Incremente antes de cada upload no Play Console.
KMP é poderoso, mas a publicação ainda exige atenção
A AtlasTech publica apps Kotlin Multiplatform nas duas lojas — compilação do XCFramework, configuração de assinatura, upload e aprovação incluídos.
Quero publicar meu app KMP6. Prefere delegar?
Publicar um app KMP é tecnicamente mais próximo do desenvolvimento nativo do que do Flutter ou React Native. Se você já passou por isso uma vez, a próxima publicação é mais simples. Se é a primeira vez, a AtlasTech resolve o processo de ponta a ponta. Solicite um orçamento.
Veja também: Publicar Flutter · Publicar React Native · Flutter vs React Native