# ITMS-90725: SDK version issue -virheen korjaus Expolla

> ITMS-90725: appisi on käännetty liian vanhalla iOS SDK:lla. Apple vaatii Xcode 26:n: päivitä Expo SDK 54:ään ja tee uusi build.

Alkuperäinen sivu: [ITMS-90725: SDK version issue -virheen korjaus Expolla](https://devoria.fr/fi/blog/itms-90725-sdk-version-issue-expo)
Kirjoittaja: [Mehdi Azizi](https://devoria.fr/fi/mehdi-azizi)
Julkaistu: 2026-11-04
Sisältö tarkistettu viimeksi: 2026-11-04


ITMS-90725 on Applen automaattinen tarkistus, joka kohdistuu buildiisi. Se kertoo, että appi on käännetty vanhemmalla iOS SDK:lla kuin vaadittu minimi. Applen mukaan 15. lokakuuta 2026 tilanne on tämä: 28. huhtikuuta 2026 lähtien App Store Connectiin lähetetyt appit pitää kääntää Xcode 26:lla tai uudemmalla ja iOS 26 SDK:lla. **Expossa kaikki ratkeaa EAS:n build-imagessa: Expo SDK 54:stä alkaen oletuksena valittavassa imagessa on Xcode 26.**

Omat appini Solys, TradaZen ja Nolera ovat Expon SDK 57:ssä, eikä eas.json-tiedostossa ole pakotettua imagea: EAS valitsee Xcode-version itse. Näin tarkistat omasi ja näin toimit, jos projektisi on vanhempi.

## Mitä ITMS-90725-virhe tarkoittaa?

Viestin otsikko on "ITMS-90725: SDK version issue". Siinä kerrotaan SDK, jolla appisi on käännetty, sitten vaadittu minimi ja Xcode-versio, joka sen sisältää. Applen kehittäjäfoorumilla vuonna 2024 julkaistu viesti alkoi esimerkiksi näin: "This app was built with the iOS 16.2 SDK", ja perässä oli sen ajan vaatimus.

SDK on kokoelma iOS:n kirjastoja, joilla Xcode kääntää appisi. Jokaisessa Xcode-versiossa on oma SDK:nsa: Xcode 26 sisältää iOS 26 SDK:n. **Uudella SDK:lla kääntäminen ei tarkoita, että vanhat iPhonet jäisivät pois.** Pienin iOS-versio, jota appisi tukee, on erillinen asetus: deployment target.

Kuten muutkin ITMS-virheet, tämä ei ole reviewerin hylkäys. Tarkistus on automaattinen ja koskee lähetettyä binääriä.

## Mitä Xcode-versiota Apple vaatii nyt?

Tässä on, mitä Applen [tulevien vaatimusten sivu](https://developer.apple.com/news/upcoming-requirements/) ja [App Store -lähetyksen sivu](https://developer.apple.com/app-store/submitting/) sanoivat 15. lokakuuta 2026:

| Päivämäärä    | Vaatimus                 |
| ------------- | ------------------------ |
| 28.4.2026     | Xcode 26, iOS 26 SDK     |
| 9.9.2026      | Kohde vähintään iOS 13   |
| Huhtikuu 2027 | iOS 27 SDK, kohde iOS 15 |

ITMS-90725:n laukaisee ensimmäinen sääntö. Xcode 16:lla ja iOS 18 SDK:lla tehtyä buildia ei enää hyväksytä. Toinen koskee pienintä tuettua versiota, ei SDK:ta. Kolmas on ilmoitettu huhtikuulle 2027, eikä sivulla ollut tarkistushetkellä tarkkaa päivää. Apple kehottaa jo nyt kääntämään ja testaamaan Xcode 27:llä.

**Tämä vaatimus nousee säännöllisesti, ja aina keväällä.** Samalla Applen sivulla näkyy useita aiempia määräaikoja: Xcode 14.1 25.4.2023, Xcode 15 29.4.2024, Xcode 26 28.4.2026. Lue sivu ennen jokaista kevättä sen sijaan, että luottaisit johonkin artikkeliin, tämä mukaan lukien.

## Varoitus vai esto: miten erotat ne?

Ennen määräaikaa ITMS-90725 tulee varoituksena. Vuonna 2024 Applen foorumilla sähköpostissa kerrottiin, että toimitus onnistui, ja neuvottiin korjaamaan asia seuraavassa lähetyksessä. Määräajan jälkeen Apple kirjoittaa, että appit "täytyy" kääntää vaaditulla SDK:lla, jotta ne voi lähettää: buildia ei enää hyväksytä.

| Vihje              | Varoitus           | Esto              |
| ------------------ | ------------------ | ----------------- |
| Lähetyspäivä       | Ennen määräaikaa   | Määräajan jälkeen |
| Lähetys hyväksytty | Kyllä              | Ei                |
| Mitä teet          | Korjaat seuraavaan | Uusi build        |

**ITMS-90725-varoitus on lähtölaskenta.** Build menee läpi tänään, mutta seuraava samalla tavalla käännetty hylätään määräajan jälkeen. Korjaa se silloin, kun sinulla ei ole kiireellistä päivitystä painamassa päälle.

## ITMS-90725:n korjaus Expo-projektissa

EAS:llä appisi käännetään Expon Maceilla, kuten selitän jutussa [iOS-appin julkaisu ilman Macia](https://devoria.fr/fi/blog/ios-sovellus-julkaisu-ilman-macia-expo-eas). Xcode-versio riippuu build-imagesta. Jos et määritä `image`-kenttää eas.json-tiedostossa, EAS käyttää aliasta `auto`: se valitsee imagen Expo SDK -versiosi mukaan.

Tässä kunkin SDK:n image [EAS-infrastruktuurin dokumentaation](https://docs.expo.dev/build-reference/infrastructure/) mukaan, päivitetty 8.10.2026:

| Expo SDK | Imagen Xcode | ITMS-90725 |
| -------- | ------------ | ---------- |
| 57       | 26.6         | Ei         |
| 56       | 26.4         | Ei         |
| 55       | 26.2         | Ei         |
| 54       | 26.0         | Ei         |
| 53       | 16.4         | Kyllä      |
| 52       | 16.2         | Kyllä      |

1. **Katso, mitä imagea viimeisin buildisi käytti.** expo.devin build-sivulla lokien kohta "Spin up build environment" näyttää imagen nimen ja Xcode-version.
2. **Jos olet SDK 54:ssä tai uudemmassa, etsi pakotettu image.** Yksikin Xcode 16:een osoittava `image`-rivi, kuten `macos-sequoia-15.6-xcode-16.4`, riittää aiheuttamaan virheen. Expon dokumentaatio esittelee sen SDK 54:n imagena niille, jotka eivät halua Xcode 26:ta: 28.4.2026 lähtien tämä valinta johtaa hylkäykseen. Poista rivi, niin EAS palaa oletusimageen.
3. **Jos olet SDK 53:ssa tai vanhemmassa, päivitä SDK.** Tätä Expo suosittelee [27.4.2026 julkaistussa tiedotteessaan](https://expo.dev/blog/app-store-connect-minimum-sdk-26): siirry vähintään SDK 54:ään.
4. **Tee uusi build ja lähetä se.** SDK on lukittu binääriin: etäpäivitys ei muuta mitään.

### Hätäratkaisu vanhalle SDK:lle

Samassa Expon tiedotteessa annetaan vaihtoehto, jos et voi päivittää heti: pakota Xcode 26 -image eas.json-tiedostoon production-profiiliisi.

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

Expo varoittaa: kaikki SDK-versiot eivät ole yhteensopivia Xcode 26:n kanssa, ja lopputulos riippuu myös kirjastoistasi. **Pidä tätä lisäaikana, ei korjauksena.** Jos build kaatuu käännösvaiheessa, ainoa tie on SDK:n päivitys.

### SDK:n päivitys versio kerrallaan

Expon [päivitysopas](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/) suosittelee päivittämään yhden version kerrallaan, jotta näet, mikä hajoaa missäkin vaiheessa. Siirtyminen SDK 53:sta SDK 54:ään:

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

Jos `ios`-kansiosi on Expon generoima, poista se: se luodaan uudelleen seuraavassa buildissa. Testaa sitten appi iPhonellasi ennen kuin jatkat seuraavaan versioon.

Yksi asia kannattaa tietää ennen kuin tähtäät uusimpaan SDK:hon. [Expon versiotaulukon](https://docs.expo.dev/versions/latest/) mukaan SDK 54 ja 55 tukevat iOS 15.1:tä ja uudempia, SDK 56 ja 57 vain iOS 16.4:ää ja uudempia. **SDK 56:een siirtyminen jättää siis pois iPhonet, jotka ovat jääneet iOS 15:een.** SDK 54 riittää poistamaan ITMS-90725:n.

## Buildin SDK:n tarkistus ennen lähetystä

Xcode kirjaa jokaisen buildin Info.plist-tiedostoon käytetyn SDK:n ja Xcode-version. Lataa IPA expo.devin build-sivulta ja aja Macillasi:

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

App Storeen menevässä buildissa ensimmäisen arvon pitää alkaa `iphoneos26`. Toinen koodaa Xcode-version: Xcode 26.2:lla simulaattorille tehdystä Noleran buildista saan `2620`. Jos näet `iphoneos18` tai arvon, joka alkaa `16`, build hylätään.

Jos käännät omalla Macillasi, ratkaisee oma Xcodesi, ei EAS:n image. `xcodebuild -version` näyttää aktiivisen version. Sama logiikka pätee jatkuvassa integraatiossa: Xcode-versio riippuu valitusta koneesta. Vuonna 2024 Applen foorumilla kehittäjät saivat ITMS-90725:n, koska heidän GitHub Actions -koneensa pyöri liian vanhalla macOS:llä Xcode 15:lle.

Kun oikea build on lähetetty, testaa se [TestFlightissa](https://devoria.fr/fi/blog/testflight-testaa-iphone-sovellus-ennen-lahetysta) ennen kuin lähetät sen arvioon. Uusi build käy myös läpi arvioinnin, ja sen kestot on kuvattu jutussa [App Storen arvioinnin kesto](https://devoria.fr/fi/blog/app-store-tarkistuksen-kesto).

## Lähetä buildisi ilman ikäviä yllätyksiä

ITMS-90725:n ehkäisee minuutissa: tarkista image ja SDK ennen jokaista production-buildia. Muut automaattiset tarkistukset vaativat samaa huolellisuutta, kuten [ITMS-90683](https://devoria.fr/fi/blog/itms-90683-missing-purpose-string-expo) lupatekstien kohdalla. Reviewerin hylkäykset vaativat enemmän harkintaa: toimintatapa on sivulla [Applen hylkäämä appi](https://devoria.fr/fi/expertise/apple-hylkasi-sovelluksen), ja yleisimmät syyt löytyvät jutusta [miksi Apple hylkää appin](https://devoria.fr/fi/blog/apple-hylkasi-sovelluksen-syyt).

Jos haluat tarkistaa kokonaisuuden ennen lähetystä, [Review Kit](https://devoria.fr/fi/kits/app-review) sisältää tarkistuslistani ja Claude Code -skillejä, jotka käyvät projektisi läpi. Jos lähetyksesi jumittaa ja haluat ihmisen silmät asiaan, [varaa tunti kanssani](https://devoria.fr/fi/coaching): käydään projektisi läpi videopuhelussa, sinun näytölläsi. Ja jos valmistelet ensimmäistä julkaisuasi, [tee ilmainen diagnoosi](https://devoria.fr/fi/diagnostic): se laittaa vaiheet oikeaan järjestykseen ja lähettää sinulle tarkistuslistani Applen hylkäysten välttämiseen.

## Usein kysytyt kysymykset

### Estääkö ITMS-90725 appini julkaisun?

Applen asettaman määräajan jälkeen kyllä: buildia ei enää hyväksytä, ja sinun pitää kääntää uusi. Ennen määräaikaa se on varoitus: build menee läpi, mutta seuraava hylätään, jos se käännetään samalla tavalla.

### Pitääkö vanhat iPhonet jättää pois, jos käännän iOS 26 SDK:lla?

Ei. Käännöksen SDK ja pienin iOS-versio ovat kaksi erillistä asetusta. Expossa minimin määrää Expo SDK -versiosi: iOS 15.1 SDK 54:ssä ja 55:ssä, iOS 16.4 SDK 56:ssa ja 57:ssä.

### Voiko ITMS-90725:n korjata etäpäivityksellä?

Ei. SDK kirjataan binääriin käännöksen yhteydessä. Etäpäivitys muuttaa vain JavaScriptiä ja resursseja. Sinun pitää tehdä uusi build Xcode 26:lla ja lähettää se.

### Mistä näen, mitä Xcode-versiota EAS käyttää?

Avaa buildisi lokit expo.devissä, kohta "Spin up build environment". Imagen nimi kertoo Xcode-version, esimerkiksi `macos-tahoe-26.5-xcode-26.6`. Koko lista on EAS-infrastruktuurin dokumentaatiossa.

### Mitä huhtikuun 2027 vaatimus muuttaa?

Applen lähetyssivun mukaan pitää kääntää iOS 27 SDK:lla ja tukea vähintään iOS 15:tä. EAS:n puolella Expo suunnittelee Xcode 27 -imagea tulevalle SDK 58:lle: tarkista build-imagejen lista ennen kääntämistä. Lue Applen sivu keväällä, niin tiedät tarkan päivän.


## Projektisi

[Review Kit](https://devoria.fr/fi/kits/app-review): App Store -tarkastuksen tarkistuslistani, korjatut Applen hylkäykseni, Google Playn lista ja kolme Claude Code -skilliä. 49 €.

[iOS & Android Kit](https://devoria.fr/fi/kits/ios): Tee iPhone- ja Android-sovelluksesi Claude Codella: sovellusteni pohjakoodi, polku kauppoihin asti ja kaikki kitit. 99 €.

[Diagnoosi: mikä erottaa sinut omasta iPhone-sovelluksestasi](https://devoria.fr/fi/diagnostic): 7 kysymystä, 60 sekuntia: tiedät, mikä oikeasti estää sinua julkaisemasta iPhone-sovellustasi, saat 4 vaiheen polkusi ja sinulle sopivan kitin.
