React Native 0.81 — Suporte para Android 16, compilações iOS mais rápidas e muito mais
12 de agosto de 2025 · 10 min de leitura
Hoje estamos entusiasmados em lançar o React Native 0.81!
Ele vem com suporte para Android 16 (nível de API 36) e inclui uma variedade de outras melhorias de estabilidade e correções de bugs, bem como suporte experimental para compilações iOS mais rápidas usando pré-compilação.
Destaques
- Suporte Android 16
- Depreciação do SafeAreaView
- Suporte JavaScriptCore mantido pela comunidade
- Construções experimentais pré-compiladas do iOS
Destaques
Suporte Android 16
Os aplicativos Android criados com React Native 0.81 agora terão como padrão a segmentação Android 16 (nível de API 36).
Conforme anunciado anteriormente pelo Google, o Android 16 exige isso os aplicativos são exibidos de ponta a ponta sem suporte para optando por não participar.
Para apoiar isso, estamos descontinuando o <SafeAreaView> componente conforme anunciado anteriormente a favor de alternativas. Veja abaixo o que proporcionará melhor suporte de ponta a ponta.
Também estamos adicionando uma nova propriedade gradle edgeToEdgeEnabled para que você possa escolher se deseja habilitar de ponta a ponta em todas as versões suportadas do Android além da 16.
Gesto preditivo para trás agora está habilitado por padrão para aplicativos direcionados ao Android 16. O Manipulador de Traseiros A API deve continuar a funcionar como antes para a maioria dos casos de uso. No entanto, se o seu aplicativo depender de código nativo personalizado para tratamento posterior (como substituir o onBackPressed() método), pode ser necessário migrar manualmente seu código ou cancelar temporariamente. Teste cuidadosamente a navegação traseira do seu aplicativo após a atualização.
O Google agora espera que os aplicativos suportem layouts adaptativos em dispositivos de tela grande, independentemente de restrições de orientação ou tamanho. Embora você possa optar por não participar por enquanto, é recomendável testar e atualizar seu aplicativo para uma interface de usuário responsiva em telas grandes antes do Android 17.
A partir de 1o de novembro de 2025, todos os envios de aplicativos do Google Play deverão atender ao requisito de tamanho de página de 16 KB para binários nativos. Isso se aplica a novos aplicativos e atualizações direcionados a dispositivos Android 15+. React Native já é compatível com o tamanho de página de 16 KB. Certifique-se de que todo o seu código nativo e bibliotecas de terceiros também estejam em conformidade.
Para obter mais detalhes sobre as alterações e etapas de migração do Android 16, consulte este postar nas discussões e propostas repositório.
Depreciação do SafeAreaView
O embutido <SafeAreaView> O componente foi originalmente projetado para fornecer suporte limitado somente para iOS para manter o conteúdo nas “áreas seguras” da tela (longe dos entalhes da câmera, cantos arredondados, etc). Ele não é compatível com renderização de ponta a ponta no Android e não permite personalização além do preenchimento. Como resultado, muitos aplicativos optaram por soluções mais portáteis e flexíveis, como react-native-safe-area-context.
No React Native 0.81, o legado <SafeAreaView> O componente está obsoleto e você verá avisos no React Native DevTools se seu aplicativo o utilizar.
Ele será removido em uma versão futura do React Native. Recomendamos que você migre para react-native-safe-area-context ou uma biblioteca semelhante para garantir que seu aplicativo tenha a melhor aparência em todas as plataformas.
Suporte JavaScriptCore mantido pela comunidade
Como anunciamos no ano passado, o suporte para o mecanismo JavaScriptCore (JSC) mudou para a pacote mantido pela comunidade que é lançado separadamente do próprio React Native. No React Native 0.81, estamos removendo a versão integrada do JavaScriptCore. Todos os aplicativos que exigem JavaScriptCore agora devem usar o pacote comunitário para atualizar para a versão 0.81. Leia as instruções de instalação para os detalhes.
Essa alteração não afeta os aplicativos que usam o Hermes.
Construções experimentais pré-compiladas do iOS
O React Native 0.81 introduz compilações pré-compiladas para iOS, reduzindo o tempo de compilação em até 10x em projetos onde o React Native é a dependência principal. Este é o resultado de uma colaboração entre a Expo e a Meta, e expande trabalho que enviamos anteriormente no React Native 0.80.
Esse recurso ainda é experimental, mas esperamos habilitá-lo para todos os aplicativos em uma versão futura. Se você quiser tentar compilações pré-compiladas em seu próprio aplicativo, você pode habilitá-las especificando as seguintes variáveis de ambiente ao executar pod install:
RCT_USE_RN_DEP=1 RCT_USE_PREBUILT_RNCORE=1 bundle exec pod installPor favor, forneça feedback em esta discussão no GitHub.
Há duas limitações das quais já estamos cientes e estamos trabalhando para resolver:
- Em compilações pré-compiladas, você não pode depurar e entrar nos componentes internos do React Native. Você ainda pode depurar seu próprio código nativo ao usar uma versão pré-compilada do React Native.
- As pré-construções não são suportadas no Xcode 26 Beta, porque o IDE constrói todos os alvos com Módulos explícitos Swift) habilitado. Para usar compilações pré-compiladas com o Xcode 26, defina o
SWIFT_ENABLE_EXPLICIT_MODULESsinalizar paraNOno seu projeto Xcode. Abordaremos isso em um próximo lançamento de patch.
Você pode ler mais sobre esse recurso na postagem completa do blog da Expo, React Native pré-compilado para iOS: compilações mais rápidas estão chegando em 0.81.
Quebrando Mudanças
O Node.js mínimo subiu para 20
React Native agora requer Nó.js versão 20.19.4 (a mais recente Manutenção LTS versão no momento da redação deste artigo) ou superior. Pode ser necessário atualizar o Node.js em seu ambiente de desenvolvimento ou CI ao atualizar para o React Native 0.81.
O Xcode mínimo subiu para 16.1
React Native agora requer Xcode 16.1 ou superior para construir projetos iOS. Pode ser necessário atualizar o Xcode em seu ambiente de desenvolvimento ou CI ao atualizar para o React Native 0.81.
Metro: Melhor suporte para configuração avançada em projetos Community CLI
O metrô agora respeita o resolveRequest e getModulesRunBeforeMainModule opções se especificadas no metro.config.js arquivo de um projeto CLI da Comunidade React Native. Anteriormente, defini-los não teria efeito. Se você tiver valores personalizados para essas opções em seu metro.config.js arquivo, pode ser necessário excluí-los para restaurar o comportamento anterior.
Relatórios aprimorados de erros JavaScript não detectados
O React Native DevTools agora mostra a mensagem original e o rastreamento de pilha de erros JavaScript não detectados, bem como o erro causa se houver, e um Pilha do Proprietário para erros gerados por componentes. Isso torna os erros mais fáceis de depurar e corrigir.
Se você estiver registrando erros de JavaScript em seu backend ou em um serviço de relatório de erros de terceiros, isso poderá afetar os logs que você vê após a atualização para o React Native 0.81 (por exemplo: você poderá ver mais erros lançados que costumavam ser relatados via console.error), e talvez seja necessário atualizar alguma lógica de backend adequadamente.
RN_SERIALIZABLE_STATE e sinalizadores C++.
Nesta versão do React Native, introduzimos uma nova macro chamada RN_SERIALIZABLE_STATE para dar suporte ao estado serializável para os Componentes na Nova Arquitetura.
Se você é um autor de biblioteca e tem um personalizado CMakeLists.txt arquivo, você precisará especificar esta macro no seu arquivo CMakeLists.txt ou seu código C++ poderá falhar na compilação.
Para dar suporte a isso, introduzimos uma nova função CMake chamada target_compile_reactnative_options que cuidará da configuração desta macro e de todos os sinalizadores C++ necessários para você. Você pode invocá-lo como tal no seu arquivo CMakeLists:
target_compile_reactnative_options(myLibraryName PRIVATE)Você pode ver um exemplo de como o react-native-screens configurou esta macro.
Esta mudança afetará apenas bibliotecas mais avançadas e complexas. Se sua biblioteca estiver usando o codegen e você não tiver um arquivo CMake personalizado, você não será afetado por essa alteração.
Outras mudanças de última hora
Esta lista contém uma série de outras alterações drásticas que suspeitamos que possam ter um impacto menor no código do seu produto e vale a pena observar:
Android
- Fizemos várias aulas internas. Essas classes não fazem parte da API pública e não devem ser acessadas. Já notificamos ou enviamos patches para as bibliotecas afetadas:
com.facebook.react.fabric.mounting.MountingManagercom.facebook.react.views.text.TextLayoutManager- Nós mudamos o
textAlignVerticalsuporte nativo deTextAttribute.hparaParagraphAttribute.h - O suporte
textAlignVerticalafeta apenas a visualização de texto mais alta (visualização de parágrafo). No entanto, ele existe em propriedades de atributos de texto. Para refletir melhor essa limitação da plataforma, ela foi movida para adereços de parágrafo. - Essa mudança é não afetando a API JS do
<Text>componente. - Você será afetado por essa alteração somente se implementar um componente Fabric que interaja com a API de texto C++.
- Se você for afetado por essa alteração, poderá substituir
TextAttributes.hcomParagraphAttribute.hno seu código
Leia a lista completa de mudanças de última hora no CHANGELOG para 0.81.
Agradecimentos
O React Native 0.81 contém mais de 1110 commits de 110 colaboradores. Obrigado por todo o seu trabalho duro!
Gostaríamos de enviar um agradecimento especial aos membros da comunidade que enviaram contribuições significativas neste comunicado:
- Falch cristão pelo trabalho incrível em compilações iOS pré-compiladas.
- Mathieu Acternoene para contribuições cruciais para o suporte de ponta a ponta do Android
- Enrique López-Mañas e por ajudar a testar a integração do Android 16 e a descontinuação do SafeAreaView.
Atualize para 0.81
Por favor, use o Ajudante de atualização do React Native para visualizar alterações de código entre versões do React Native para projetos existentes, além dos documentos de atualização.
Para criar um novo projeto:
npx @react-native-community/cli@latest init MyProject --version latestSe você usar o Expo, o React Native 0.81 será suportado no próximo Expo SDK 54 como a versão padrão do React Native.
Informações: 0.81 é agora a versão estável mais recente do React Native e 0.78.x passa para não suportado. Para mais informações consulte Política de suporte do React Native.
