Como Publicar App Kotlin Multiplatform nas Lojas

KMP compartilha a lógica de negócio entre iOS e Android, mas a UI é nativa em cada plataforma. Isso tem implicações diretas no processo de publicação.

Leitura: 7 min Atualizado: 2025 Verificado pela equipe AtlasTech

Índice

  1. O que é Kotlin Multiplatform
  2. KMP vs Flutter vs React Native
  3. Publicar no Google Play
  4. Publicar na App Store
  5. Erros comuns
  6. Prefere delegar?

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)

Passo 1

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.

Passo 2

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.

Passo 3

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)

Passo 1

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.

Passo 2

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".

Passo 3

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

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 KMP

6. 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