# ITMS-90725: corregir «SDK version issue» amb Expo

> ITMS-90725: la teva app està compilada amb un SDK d'iOS massa antic. Des del 28 d'abril de 2026 cal Xcode 26: passa a l'SDK Expo 54 o superior i refés el build.

Pàgina original: [ITMS-90725: corregir «SDK version issue» amb Expo](https://devoria.fr/ca/blog/itms-90725-sdk-version-issue-expo)
Autor: [Mehdi Azizi](https://devoria.fr/ca/mehdi-azizi)
Publicació: 2026-11-04
Darrera revisió del contingut: 2026-11-04


ITMS-90725 és un control automàtic que Apple fa al teu build: diu que l'app s'ha compilat amb un SDK d'iOS més antic que el mínim exigit. A 15 d'octubre de 2026, Apple indica que des del 28 d'abril de 2026 les apps enviades a App Store Connect s'han de compilar amb Xcode 26 o superior i l'SDK d'iOS 26. **Amb Expo, tot es decideix a la imatge de build d'EAS: a partir de l'SDK Expo 54, la imatge triada per defecte porta Xcode 26.**

Les meves apps, Solys, TradaZen i Nolera, són a l'SDK 57 d'Expo, sense cap imatge forçada a eas.json: EAS tria ell mateix la versió de Xcode. Aquí t'explico com comprovar la teva, i què fer si el teu projecte és més antic.

## Què vol dir l'error ITMS-90725?

El missatge es titula «ITMS-90725: SDK version issue». Indica l'SDK amb què s'ha compilat la teva app, i després el mínim exigit i la versió de Xcode que el conté. Al fòrum de desenvolupadors d'Apple, un missatge del 2024 començava per exemple així: «This app was built with the iOS 16.2 SDK», seguit de l'exigència d'aquell moment.

L'SDK és el conjunt de biblioteques d'iOS amb què Xcode compila la teva app. Cada versió de Xcode porta el seu: Xcode 26 conté l'SDK d'iOS 26. **Compilar amb un SDK recent no vol dir abandonar els iPhone antics.** La versió mínima d'iOS que accepta la teva app és un ajust diferent, el target de desplegament (deployment target).

Com els altres errors ITMS, no és un rebuig d'un reviewer. El control és automàtic i se centra en el binari enviat.

## Quina versió de Xcode exigeix Apple avui?

Això és el que diuen la pàgina de [requisits futurs d'Apple](https://developer.apple.com/news/upcoming-requirements/) i la pàgina d'[enviament a l'App Store](https://developer.apple.com/app-store/submitting/), consultades el 15 d'octubre de 2026:

| Data                  | Requisit                    |
| --------------------- | --------------------------- |
| 28 d'abril de 2026    | Xcode 26, SDK d'iOS 26      |
| 9 de setembre de 2026 | Target mínim iOS 13         |
| Abril de 2027         | SDK d'iOS 27, target iOS 15 |

La regla que activa ITMS-90725 és la primera. Un build fet amb Xcode 16 i l'SDK d'iOS 18 ja no s'accepta. La segona afecta la versió mínima objectiu, no l'SDK. La tercera està anunciada per a l'abril de 2027, sense dia concret a la pàgina en el moment de la consulta. Apple ja convida a compilar i provar amb Xcode 27.

**Aquest requisit puja regularment, i sempre a la primavera.** La mateixa pàgina d'Apple conserva el rastre de diverses dates límit: Xcode 14.1 el 25 d'abril de 2023, Xcode 15 el 29 d'abril de 2024, Xcode 26 el 28 d'abril de 2026. Abans de cada primavera, rellegeix-la en lloc de refiar-te d'un article, aquest inclòs.

## Avís o bloqueig: com diferenciar-los?

Abans de la data límit, ITMS-90725 arriba com un avís. El 2024, al fòrum d'Apple, el correu precisava que l'entrega s'havia fet correctament i aconsellava corregir-ho al següent enviament. Després de la data límit, Apple escriu que les apps «han de» compilar-se amb l'SDK exigit per poder-se enviar: el build ja no s'accepta.

| Indici              | Avís                   | Bloqueig                 |
| ------------------- | ---------------------- | ------------------------ |
| Data de l'enviament | Abans de la data límit | Després de la data límit |
| Enviament acceptat  | Sí                     | No                       |
| Què fas             | Corregir al següent    | Nou build                |

**Un avís ITMS-90725 és un compte enrere.** El build passa avui, però el següent, compilat de la mateixa manera, serà rebutjat després de la data. Corregeix-ho mentre no tinguis la pressió d'una actualització urgent.

## Corregir ITMS-90725 en un projecte Expo

Amb EAS, la teva app es compila als Mac d'Expo, com explico a [publicar una app iOS sense Mac](https://devoria.fr/ca/blog/publicar-app-ios-sense-mac-expo-eas). La versió de Xcode depèn de la imatge de build. Si no especifiques `image` a eas.json, EAS fa servir l'àlies `auto`: tria la imatge segons la teva versió de l'SDK Expo.

Aquesta és la imatge associada a cada SDK segons la [documentació de la infraestructura d'EAS](https://docs.expo.dev/build-reference/infrastructure/), actualitzada el 8 d'octubre de 2026:

| SDK Expo | Xcode de la imatge | ITMS-90725 |
| -------- | ------------------ | ---------- |
| 57       | 26.6               | No         |
| 56       | 26.4               | No         |
| 55       | 26.2               | No         |
| 54       | 26.0               | No         |
| 53       | 16.4               | Sí         |
| 52       | 16.2               | Sí         |

1. **Mira la imatge que ha fet servir el teu últim build.** A la pàgina del build, a expo.dev, la secció «Spin up build environment» dels registres mostra el seu nom i la seva versió de Xcode.
2. **Si ets a l'SDK 54 o superior, busca una imatge forçada.** Una línia `image` que apunti a Xcode 16, com `macos-sequoia-15.6-xcode-16.4`, n'hi ha prou per provocar l'error. La documentació d'Expo la presenta com la imatge de l'SDK 54 per a qui no vulgui Xcode 26: des del 28 d'abril de 2026, aquesta opció porta al rebuig. Treu la línia: EAS torna a la imatge per defecte.
3. **Si ets a l'SDK 53 o inferior, puja d'SDK.** És la recomanació d'Expo al seu [anunci del 27 d'abril de 2026](https://expo.dev/blog/app-store-connect-minimum-sdk-26): passar com a mínim a l'SDK 54.
4. **Refés el build i torna'l a enviar.** L'SDK queda fixat al binari: una actualització remota no canvia res.

### La solució provisional per a un SDK antic

El mateix anunci d'Expo ofereix una opció si no pots pujar de seguida: forçar una imatge Xcode 26 a eas.json, al teu perfil de producció.

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

Expo avisa: no totes les versions de l'SDK són compatibles amb Xcode 26, i el resultat també depèn de les teves biblioteques. **Pren-t'ho com una pròrroga, no com una correcció.** Si el build falla en compilar, l'únic camí és pujar d'SDK.

### Pujar d'SDK, una versió cada vegada

La [guia d'actualització d'Expo](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/) recomana pujar una versió cada vegada, per detectar què es trenca a cada pas. Per passar d'un SDK 53 a l'SDK 54:

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

Si la teva carpeta `ios` la genera Expo, esborra-la: es tornarà a crear al següent build. Després prova l'app al teu iPhone abans de repetir-ho per a la versió següent.

Una cosa que cal saber abans d'apuntar a l'últim SDK. Segons la [taula de versions d'Expo](https://docs.expo.dev/versions/latest/), els SDK 54 i 55 accepten iOS 15.1 o superior, i els SDK 56 i 57 només iOS 16.4 o superior. **Passar a l'SDK 56 deixa fora, doncs, els iPhone que s'han quedat a iOS 15.** L'SDK 54 n'hi ha prou per resoldre ITMS-90725.

## Comprovar l'SDK d'un build abans d'enviar-lo

Xcode escriu a l'Info.plist de cada build l'SDK i la versió de Xcode utilitzats. Descarrega l'IPA des de la pàgina del build a expo.dev i executa al teu 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
```

Per a un build destinat a l'App Store, el primer valor ha de començar per `iphoneos26`. El segon codifica la versió de Xcode: en un build de Nolera fet amb Xcode 26.2 per al simulador, obtinc `2620`. Si hi llegeixes `iphoneos18` o un valor que comença per `16`, el build serà rebutjat.

Si compiles al teu propi Mac, el que compta és el teu Xcode, no la imatge d'EAS. `xcodebuild -version` mostra la versió activa. La mateixa lògica en integració contínua: la versió de Xcode depèn de la màquina escollida. El 2024, al fòrum d'Apple, alguns desenvolupadors rebien ITMS-90725 perquè la seva màquina de GitHub Actions funcionava amb un macOS massa antic per a Xcode 15.

Un cop enviat el build correcte, prova'l a [TestFlight](https://devoria.fr/ca/blog/testflight-provar-app-iphone-abans-enviar) abans d'enviar-lo a revisió. Un build nou també torna a passar per la revisió, amb els terminis que descric a [termini de validació de l'App Store](https://devoria.fr/ca/blog/temps-revisio-app-store-quant-esperar).

## Enviar el teu build sense sorpreses

ITMS-90725 es preveu en un minut: comprova la imatge i l'SDK abans de cada build de producció. Els altres controls automàtics demanen el mateix rigor, com [ITMS-90683](https://devoria.fr/ca/blog/itms-90683-missing-purpose-string-expo) per a les frases d'autorització. Els rebutjos d'un reviewer demanen més perspectiva: el procediment és a la pàgina [app rebutjada per Apple](https://devoria.fr/ca/expertise/aplicacio-rebutjada-per-apple), i els motius més freqüents són a [per què Apple rebutja una app](https://devoria.fr/ca/blog/rebuig-apple-per-que-rebutgen-app).

Per revisar el teu projecte abans de l'enviament, el [Review Kit](https://devoria.fr/ca/kits/app-review) reuneix la meva checklist i skills de Claude Code que repassen el teu projecte. Si el teu enviament es bloqueja i vols una mirada humana, [reserva una hora amb mi](https://devoria.fr/ca/coaching): revisem el teu projecte per videotrucada, a la teva pantalla. I si prepares el teu primer llançament, [fes el teu diagnòstic gratuït](https://devoria.fr/ca/diagnostic): posa els passos en ordre i t'envia la meva checklist antirebuig d'Apple.

## Preguntes freqüents

### ITMS-90725 impedeix publicar la meva app?

Després de la data límit fixada per Apple, sí: el build ja no s'accepta i n'has de compilar un de nou. Abans de la data límit, és un avís: el build passa, però el següent serà rebutjat si es compila de la mateixa manera.

### Cal abandonar els iPhone antics per compilar amb l'SDK d'iOS 26?

No. L'SDK de compilació i la versió mínima d'iOS són dos ajustos diferents. Amb Expo, és la teva versió de l'SDK Expo la que fixa aquest mínim: iOS 15.1 per als SDK 54 i 55, iOS 16.4 per als SDK 56 i 57.

### Es pot corregir ITMS-90725 amb una actualització remota?

No. L'SDK queda escrit al binari en el moment de compilar. Una actualització remota només canvia el JavaScript i els recursos. Has de refer un build amb Xcode 26 i tornar-lo a enviar.

### Com puc saber quina versió de Xcode fa servir EAS?

Obre els registres del teu build a expo.dev, secció «Spin up build environment». El nom de la imatge indica la versió de Xcode, per exemple `macos-tahoe-26.5-xcode-26.6`. La llista completa és a la documentació de la infraestructura d'EAS.

### Què canviarà el requisit d'abril de 2027?

Segons la pàgina d'enviament d'Apple, caldrà compilar amb l'SDK d'iOS 27 i tenir com a target mínim iOS 15. Pel que fa a EAS, Expo preveu una imatge amb Xcode 27 per al seu futur SDK 58: comprova la llista d'imatges de build abans de compilar. Rellegeix la pàgina d'Apple a la primavera per saber el dia exacte.


## El teu projecte

[Review Kit](https://devoria.fr/ca/kits/app-review): La meva checklist de revisió de l'App Store, els rebutjos d'Apple que he corregit, la de Google Play i tres skills de Claude Code. 49 €.

[iOS & Android Kit](https://devoria.fr/ca/kits/ios): Crea la teva app d'iPhone i Android amb Claude Code: el codi de partida de les meves apps, el camí fins a les botigues i tots els kits. 99 €.

[Diagnòstic: què et separa de la teva app d'iPhone](https://devoria.fr/ca/diagnostic): 7 preguntes, 60 segons: sabràs què et bloqueja de debò per publicar la teva app d'iPhone, el teu recorregut en 4 etapes i el kit que et toca.
