3
respostas

erro expo ios

WARN Constants.platform.ios.model has been deprecated in favor of expo-device's Device.modelName property. This API will be removed in SDK 45. Alguém sabe como resolver esse erro?

3 respostas

Olá, Caio!

Esse aviso indica que a constante Constants.platform.ios.model, que costumava ser usada para obter informações sobre o modelo do dispositivo iOS em projetos Expo, foi depreciada e será removida na SDK 45. Em vez disso, você deve usar a propriedade Device.modelName fornecida pelo módulo expo-device.

Para resolver esse erro, siga os passos abaixo:

  1. Certifique-se de que você tem o pacote expo-device instalado no seu projeto. Caso ainda não o tenha, instale-o executando o seguinte comando no terminal na raiz do projeto:
expo install expo-device
  1. Em seguida, importe o módulo expo-device no arquivo onde você estava usando a constante depreciada. Geralmente, é um arquivo onde você precisa obter informações do dispositivo.
import { Device } from 'expo-device';
  1. Substitua a referência à constante Constants.platform.ios.model pela propriedade Device.modelName. O código ficará assim:
// Antes
const model = Constants.platform.ios.model;

// Depois
const model = Device.modelName;

Pronto! Com essa modificação, você não receberá mais o aviso de depreciação relacionado à constante Constants.platform.ios.model.

Lembre-se de sempre estar atento às atualizações das dependências do Expo e seguir as recomendações da documentação para evitar problemas futuros e garantir um código atualizado e seguro. Se surgirem outras dúvidas ou problemas, estou aqui para ajudar!

ok mas como faço para saber em que pasta está o Constants.platform.ios.model ?

Olá novamente, Caio,

O objeto Constants.platform é fornecido pela biblioteca Expo e contém informações sobre a plataforma na qual o aplicativo está sendo executado (iOS, Android, web, etc.). A propriedade ios desse objeto contém informações específicas para o ambiente iOS.

Não há uma pasta específica para Constants.platform.ios.model, pois esse objeto faz parte do runtime do Expo e não é uma pasta de código-fonte ou arquivo em si. O aviso "WARN Constants.platform.ios.model has been deprecated..." indica que a propriedade model dentro do objeto ios está depreciada e não deve mais ser usada, pois será removida na SDK 45 do Expo.

Em vez de procurar por essa propriedade em uma pasta específica, você precisa localizar os trechos de código em seu projeto onde Constants.platform.ios.model está sendo usado e realizar a substituição pelo uso da propriedade Device.modelName do módulo expo-device, como mencionei anteriormente.

Para encontrar onde Constants.platform.ios.model está sendo utilizado em seu projeto, você pode seguir os passos abaixo:

  1. Utilize uma ferramenta de busca em todo o código-fonte do seu projeto. A maioria das IDEs e editores de código oferece essa funcionalidade.

  2. Pesquise por Constants.platform.ios.model no projeto e examine cada ocorrência encontrada.

  3. Substitua cada ocorrência de Constants.platform.ios.model por Device.modelName, como mostrado no exemplo anterior.

Por exemplo, se você estiver usando o Visual Studio Code como seu editor, pode pressionar "Ctrl + Shift + F" (ou "Cmd + Shift + F" no macOS) para abrir a ferramenta de busca e pesquisa em todo o projeto.

Lembre-se de fazer um backup do seu projeto antes de realizar qualquer alteração significativa para evitar a perda de código ou introduzir erros indesejados.

Espero que isso ajude! Se tiver mais perguntas ou precisar de mais assistência, sinta-se à vontade para perguntar. Estou aqui para ajudar!