2
respostas

Chamadas à API Spring Boot não funcionam em um Expo App no Android, mas funcionam no iOS.

Olá, pessoal!

Eu desenvolvi uma aplicação React Native com o Expo, que faz chamadas ao backend (uma API Spring Boot). Desde que configurei a API para receber requisições HTTPS com os certificados keystore.jks e keystore.p12, tais chamadas pelo aplicativo deixaram de funcionar no Android, mas continuam funcionando no iOS (AxiosError: Network Error).

Alguém já passou por isso? Pesquisei pela internet e cada um disse ter uma solução, mas não conseguir prosseguir com nenhuma.

Desde já, obrigado!

2 respostas

Olá Alexandre!

Entendo que você esteja enfrentando um problema ao fazer chamadas à API Spring Boot em um aplicativo Expo no Android. É estranho que as chamadas estejam funcionando no iOS, mas não no Android.

Uma possível solução para esse problema é verificar se o certificado keystore.jks e keystore.p12 estão corretamente configurados no backend. Certifique-se de que eles estão sendo usados corretamente para habilitar as requisições HTTPS.

Além disso, verifique se as permissões de rede estão configuradas corretamente no AndroidManifest.xml do seu aplicativo Expo. É importante garantir que o aplicativo tenha permissão para acessar a internet.

Outra sugestão é verificar se há algum erro específico sendo retornado no console do Android. Isso pode ajudar a identificar a causa do problema.

Espero que essas sugestões possam te ajudar a resolver o problema. Se tiver mais alguma dúvida, estou à disposição! Espero ter ajudado e bons estudos!

Oi, bom dia Matheus! obrigado por responder! eu acabei descobrindo que isso é uma espécie de bug da versão do expo que estou utilizando (não sei se já foi corrigido em alguma release recente - não tive tempo de pesquisar). O que precisei fazer foi gerar os arquivos nativos do projeto com o comando "expo eject" e depois segui os passos como está detalhado nessa issue https://github.com/axios/axios/issues/5271#issuecomment-1381800275 , sendo o "my_ca.pem" o certificado público. Depois fiz o build do projeto com o "gradlew assembleRelease" e funcionou. Mas ainda hoje, se eu usar o app pelo Expo Go (durante a fase de desenvolvimento), o erro persiste.