# ITMS-90725: corrigir “SDK version issue” no Expo

> ITMS-90725: seu app usa um SDK iOS antigo demais. Desde 28 de abril de 2026, a Apple exige Xcode 26: passe ao SDK Expo 54+ e refaça o build.

Página original: [ITMS-90725: corrigir “SDK version issue” no Expo](https://devoria.fr/pt-br/blog/itms-90725-sdk-version-issue-expo)
Autor: [Mehdi Azizi](https://devoria.fr/pt-br/mehdi-azizi)
Publicação: 2026-11-04
Última revisão do conteúdo: 2026-11-04


ITMS-90725 é uma verificação automática da Apple no seu build: ela diz que o app foi compilado com um SDK iOS mais antigo que o mínimo exigido. Em 15 de outubro de 2026, a Apple informa que, desde 28 de abril de 2026, os apps enviados ao App Store Connect precisam ser compilados com Xcode 26 ou superior e o SDK iOS 26. **Com Expo, tudo se resolve na imagem de build do EAS: a partir do SDK Expo 54, a imagem escolhida por padrão já vem com Xcode 26.**

Meus apps, Solys, TradaZen e Nolera, estão no SDK 57 do Expo, sem imagem forçada no eas.json: o próprio EAS escolhe a versão do Xcode. Veja como conferir a sua, e o que fazer se o seu projeto for mais antigo.

## O que significa o erro ITMS-90725?

A mensagem tem o título "ITMS-90725: SDK version issue". Ela informa o SDK com que seu app foi compilado, depois o mínimo exigido e a versão do Xcode que o contém. No fórum de desenvolvedores da Apple, uma mensagem de 2024 começava assim, por exemplo: "This app was built with the iOS 16.2 SDK", seguida da exigência da época.

O SDK é o conjunto de bibliotecas do iOS com que o Xcode compila seu app. Cada versão do Xcode traz o seu: o Xcode 26 contém o SDK iOS 26. **Compilar com um SDK recente não significa abandonar os iPhones antigos.** A versão mínima do iOS que seu app aceita é uma configuração separada, o deployment target.

Como os outros erros ITMS, não é uma rejeição de um reviewer. A verificação é automática e analisa o binário enviado.

## Qual versão do Xcode a Apple exige hoje?

Veja o que dizem a página de [requisitos futuros da Apple](https://developer.apple.com/news/upcoming-requirements/) e a página de [envio para a App Store](https://developer.apple.com/app-store/submitting/), consultadas em 15 de outubro de 2026:

| Data                  | Exigência               |
| --------------------- | ----------------------- |
| 28 de abril de 2026   | Xcode 26, SDK iOS 26    |
| 9 de setembro de 2026 | iOS 13 mínimo como alvo |
| Abril de 2027         | SDK iOS 27, alvo iOS 15 |

A regra que dispara o ITMS-90725 é a primeira. Um build feito com Xcode 16 e o SDK iOS 18 não é mais aceito. A segunda trata da versão mínima de destino, não do SDK. A terceira está anunciada para abril de 2027, sem dia exato na página no momento da consulta. A Apple já recomenda compilar e testar com o Xcode 27.

**Essa exigência sobe regularmente, e sempre na primavera do hemisfério norte.** A mesma página da Apple guarda o registro de vários prazos: Xcode 14.1 em 25 de abril de 2023, Xcode 15 em 29 de abril de 2024, Xcode 26 em 28 de abril de 2026. Antes de cada abril, releia essa página em vez de confiar em um artigo, incluindo este.

## Aviso ou bloqueio: como saber a diferença?

Antes do prazo, o ITMS-90725 chega como aviso. Em 2024, no fórum da Apple, o e-mail dizia que a entrega tinha dado certo e recomendava corrigir no próximo envio. Depois do prazo, a Apple escreve que os apps "precisam" ser compilados com o SDK exigido para serem enviados: o build deixa de ser aceito.

| Sinal          | Aviso               | Bloqueio        |
| -------------- | ------------------- | --------------- |
| Data do envio  | Antes do prazo      | Depois do prazo |
| Envio aceito   | Sim                 | Não             |
| O que você faz | Corrigir no próximo | Novo build      |

**Um aviso ITMS-90725 é uma contagem regressiva.** O build passa hoje, mas o próximo, compilado do mesmo jeito, será recusado depois da data. Corrija enquanto não estiver na pressa de uma atualização urgente.

## Corrigir o ITMS-90725 em um projeto Expo

Com o EAS, seu app é compilado nos Macs do Expo, como explico em [publicar um app iOS sem Mac](https://devoria.fr/pt-br/blog/publicar-app-ios-sem-mac-expo-eas). A versão do Xcode depende da imagem de build. Se você não define `image` no eas.json, o EAS usa o alias `auto`: ele escolhe a imagem de acordo com sua versão do SDK Expo.

Veja a imagem associada a cada SDK segundo a [documentação da infraestrutura do EAS](https://docs.expo.dev/build-reference/infrastructure/), atualizada em 8 de outubro de 2026:

| SDK Expo | Xcode da imagem | ITMS-90725 |
| -------- | --------------- | ---------- |
| 57       | 26.6            | Não        |
| 56       | 26.4            | Não        |
| 55       | 26.2            | Não        |
| 54       | 26.0            | Não        |
| 53       | 16.4            | Sim        |
| 52       | 16.2            | Sim        |

1. **Veja a imagem usada no seu último build.** Na página do build, no expo.dev, a seção "Spin up build environment" dos logs mostra o nome dela e a versão do Xcode.
2. **Se você está no SDK 54 ou superior, procure uma imagem forçada.** Uma linha `image` apontando para o Xcode 16, como `macos-sequoia-15.6-xcode-16.4`, basta para causar o erro. A documentação do Expo a apresenta como a imagem do SDK 54 para quem não quer o Xcode 26: desde 28 de abril de 2026, essa escolha leva à recusa. Remova a linha: o EAS volta para a imagem padrão.
3. **Se você está no SDK 53 ou inferior, atualize o SDK.** É a recomendação do Expo no [anúncio de 27 de abril de 2026](https://expo.dev/blog/app-store-connect-minimum-sdk-26): ir pelo menos para o SDK 54.
4. **Faça um novo build e reenvie.** O SDK fica gravado no binário: uma atualização remota não muda nada.

### A solução paliativa para um SDK antigo

O mesmo anúncio do Expo dá uma opção se você não puder atualizar agora: forçar uma imagem com Xcode 26 no eas.json, no seu perfil de produção.

```json
{
  "build": {
    "production": {
      "ios": {
        "image": "macos-sequoia-15.6-xcode-26.2"
      }
    }
  }
}
```

O Expo avisa: nem todas as versões do SDK são compatíveis com o Xcode 26, e o resultado também depende das suas bibliotecas. **Encare isso como uma prorrogação, não como uma correção.** Se o build falhar na compilação, o único caminho continua sendo atualizar o SDK.

### Atualizar o SDK, uma versão por vez

O [guia de atualização do Expo](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/) recomenda subir uma versão por vez, para identificar o que quebra em cada etapa. Para passar do SDK 53 ao SDK 54:

```bash
npm install expo@^54.0.0
npx expo install --fix
npx expo-doctor
```

Se a sua pasta `ios` é gerada pelo Expo, apague-a: ela será recriada no próximo build. Depois teste o app no seu iPhone antes de repetir para a versão seguinte.

Um ponto importante antes de mirar o SDK mais recente. Segundo a [tabela de versões do Expo](https://docs.expo.dev/versions/latest/), os SDKs 54 e 55 aceitam iOS 15.1 ou superior, e os SDKs 56 e 57 apenas iOS 16.4 ou superior. **Ir para o SDK 56 exclui, portanto, os iPhones que ficaram no iOS 15.** O SDK 54 basta para resolver o ITMS-90725.

## Verificar o SDK de um build antes do envio

O Xcode grava no Info.plist de cada build o SDK e a versão do Xcode usados. Baixe o IPA na página do build no expo.dev e rode no seu Mac:

```bash
unzip -q MyApp.ipa -d ipa
plutil -extract DTSDKName raw ipa/Payload/*.app/Info.plist
plutil -extract DTXcode raw ipa/Payload/*.app/Info.plist
```

Para um build destinado à App Store, o primeiro valor deve começar com `iphoneos26`. O segundo codifica a versão do Xcode: em um build do Nolera feito com Xcode 26.2 para o simulador, eu obtenho `2620`. Se aparecer `iphoneos18` ou um valor que começa com `16`, o build será recusado.

Se você compila no seu próprio Mac, o que conta é o seu Xcode, não a imagem do EAS. `xcodebuild -version` mostra a versão ativa. A mesma lógica vale para integração contínua: a versão do Xcode depende da máquina escolhida. Em 2024, no fórum da Apple, desenvolvedores recebiam o ITMS-90725 porque a máquina do GitHub Actions rodava um macOS antigo demais para o Xcode 15.

Depois de enviar o build certo, teste-o no [TestFlight](https://devoria.fr/pt-br/blog/testflight-como-testar-app-iphone-antes-envio) antes de submeter. Um novo build também passa de novo pela revisão, com os prazos descritos em [prazo de aprovação da App Store](https://devoria.fr/pt-br/blog/prazo-aprovacao-app-store-quanto-tempo).

## Enviar seu build sem surpresas

O ITMS-90725 se evita em um minuto: confira a imagem e o SDK antes de cada build de produção. As outras verificações automáticas pedem o mesmo cuidado, como o [ITMS-90683](https://devoria.fr/pt-br/blog/itms-90683-missing-purpose-string-expo) para os textos de permissão. As rejeições de um reviewer pedem mais calma: o passo a passo está na página [app rejeitado pela Apple](https://devoria.fr/pt-br/expertise/app-recusado-pela-apple), e os motivos mais comuns estão em [por que a Apple rejeita um app](https://devoria.fr/pt-br/blog/app-rejeitado-apple-casos-reais).

Para revisar seu projeto antes do envio, o [Review Kit](https://devoria.fr/pt-br/kits/app-review) reúne meu checklist e skills do Claude Code que analisam seu projeto. Se o seu envio travou e você quer um olhar humano, [reserve uma hora comigo](https://devoria.fr/pt-br/coaching): a gente revisa seu projeto por videochamada, na sua tela. E se você está preparando seu primeiro lançamento, [faça seu diagnóstico gratuito](https://devoria.fr/pt-br/diagnostic): ele coloca as etapas na ordem certa e te envia meu checklist anti-rejeição da Apple.

## Perguntas frequentes

### O ITMS-90725 impede a publicação do meu app?

Depois do prazo definido pela Apple, sim: o build não é mais aceito e é preciso compilar um novo. Antes do prazo, é um aviso: o build passa, mas o próximo será recusado se for compilado do mesmo jeito.

### Preciso abandonar os iPhones antigos para compilar com o SDK iOS 26?

Não. O SDK de compilação e a versão mínima do iOS são duas configurações separadas. Com Expo, é a sua versão do SDK Expo que define esse mínimo: iOS 15.1 para os SDKs 54 e 55, iOS 16.4 para os SDKs 56 e 57.

### Dá para corrigir o ITMS-90725 com uma atualização remota?

Não. O SDK é gravado no binário no momento da compilação. Uma atualização remota só muda o JavaScript e os recursos. É preciso refazer o build com Xcode 26 e reenviá-lo.

### Como saber qual versão do Xcode o EAS usa?

Abra os logs do seu build no expo.dev, seção "Spin up build environment". O nome da imagem indica a versão do Xcode, por exemplo `macos-tahoe-26.5-xcode-26.6`. A lista completa está na documentação da infraestrutura do EAS.

### O que vai mudar com a exigência de abril de 2027?

Segundo a página de envio da Apple, será preciso compilar com o SDK iOS 27 e ter como alvo pelo menos o iOS 15. No EAS, o Expo prevê uma imagem com Xcode 27 para o futuro SDK 58: confira a lista de imagens de build antes de compilar. Releia a página da Apple na primavera do hemisfério norte para saber o dia exato.


## Seu projeto

[Review Kit](https://devoria.fr/pt-br/kits/app-review): Meu checklist de revisão da App Store, as recusas da Apple que corrigi, o checklist do Google Play e três skills do Claude Code. R$ 289.

[iOS & Android Kit](https://devoria.fr/pt-br/kits/ios): Crie seu app para iPhone e Android com o Claude Code: o código inicial dos meus apps, o caminho até as lojas e todos os kits. R$ 589.

[Diagnóstico: o que te separa do seu app de iPhone](https://devoria.fr/pt-br/diagnostic): 7 perguntas, 60 segundos: descubra o que realmente te impede de publicar seu app de iPhone, seu caminho em 4 etapas e o kit certo para você.
