# ITMS-90725: як виправити SDK version issue в Expo

> ITMS-90725: застарілий SDK iOS. З 28 квітня 2026 Apple вимагає Xcode 26: онови Expo до SDK 54 або новішого й зроби новий білд.

Оригінальна сторінка: [ITMS-90725: як виправити SDK version issue в Expo](https://devoria.fr/uk/blog/itms-90725-sdk-version-issue-expo)
Автор: [Mehdi Azizi](https://devoria.fr/uk/mehdi-azizi)
Опубліковано: 2026-11-04
Останнє оновлення змісту: 2026-11-04


ITMS-90725 означає, що автоматична перевірка Apple знайшла проблему у твоєму білді: застосунок скомпільовано зі старішим SDK iOS, ніж мінімально потрібний. Станом на 15 жовтня 2026 року Apple зазначає, що з 28 квітня 2026 року застосунки, які надсилають в App Store Connect, мають бути скомпільовані з Xcode 26 або новішим і SDK iOS 26. **З Expo все вирішує образ збірки EAS: починаючи з SDK Expo 54, образ за замовчуванням містить Xcode 26.**

Мої застосунки Solys, TradaZen і Nolera працюють на SDK 57 від Expo, без примусово заданого образу в eas.json: EAS сам вибирає версію Xcode. Ось як перевірити свій проєкт і що робити, якщо він старіший.

## Що означає помилка ITMS-90725?

Повідомлення має заголовок «ITMS-90725: SDK version issue». У ньому вказано SDK, з яким скомпільовано твій застосунок, потім мінімальну вимогу і версію Xcode, яка її містить. Наприклад, на форумі розробників Apple одне повідомлення 2024 року починалося так: «This app was built with the iOS 16.2 SDK», а далі йшла тодішня вимога.

SDK це набір бібліотек iOS, з якими Xcode компілює твій застосунок. Кожна версія Xcode має свій: Xcode 26 містить SDK iOS 26. **Компілювати з новим SDK не означає відмовитися від старих iPhone.** Мінімальна версія iOS, яку підтримує застосунок, це окреме налаштування, цільова версія розгортання (deployment target).

Як і інші помилки ITMS, це не відмова рецензента. Перевірка автоматична й стосується надісланого бінарника.

## Яку версію Xcode Apple вимагає зараз?

Ось що кажуть сторінка [майбутніх вимог Apple](https://developer.apple.com/news/upcoming-requirements/) і сторінка [публікації в App Store](https://developer.apple.com/app-store/submitting/), перевірені 15 жовтня 2026 року:

| Дата           | Вимога                  |
| -------------- | ----------------------- |
| 28 квітня 2026 | Xcode 26, SDK iOS 26    |
| 9 вересня 2026 | Мінімальна ціль iOS 13  |
| Квітень 2027   | SDK iOS 27, ціль iOS 15 |

ITMS-90725 спричиняє перше правило. Білд, зроблений з Xcode 16 і SDK iOS 18, більше не приймають. Друге стосується мінімальної цільової версії, а не SDK. Третє анонсовано на квітень 2027 року, без точної дати на сторінці на момент перевірки. Apple вже радить компілювати й тестувати з Xcode 27.

**Ця вимога регулярно підвищується, і завжди навесні.** Та сама сторінка Apple зберігає історію кількох дедлайнів: Xcode 14.1 25 квітня 2023 року, Xcode 15 29 квітня 2024 року, Xcode 26 28 квітня 2026 року. Перед кожною весною перечитуй її, а не покладайся на статті, зокрема й на цю.

## Попередження чи блокування: як відрізнити?

До дедлайну ITMS-90725 приходить як попередження. У 2024 році, за даними форуму Apple, у листі уточнювалося, що доставка пройшла успішно, і радилося виправити це в наступному надсиланні. Після дедлайну Apple пише, що застосунки «мусять» бути скомпільовані з потрібним SDK, щоб їх можна було надіслати: білд більше не приймають.

| Ознака              | Попередження            | Блокування     |
| ------------------- | ----------------------- | -------------- |
| Дата надсилання     | До дедлайну             | Після дедлайну |
| Надсилання прийнято | Так                     | Ні             |
| Що робиш            | Виправляєш у наступному | Новий білд     |

**Попередження ITMS-90725 це зворотний відлік.** Сьогодні білд проходить, але наступний, скомпільований так само, після дедлайну відхилять. Виправ це, поки тебе не підганяє термінове оновлення.

## Як виправити ITMS-90725 у проєкті Expo

З EAS твій застосунок компілюється на Mac від Expo, як я пояснюю в статті [опублікувати iOS-застосунок без Mac](https://devoria.fr/uk/blog/publish-ios-app-without-mac-expo-eas). Версія Xcode залежить від образу збірки. Якщо ти не вказуєш `image` в eas.json, EAS використовує аліас `auto`: він вибирає образ відповідно до твоєї версії SDK Expo.

Ось образ для кожного SDK згідно з [документацією інфраструктури EAS](https://docs.expo.dev/build-reference/infrastructure/), оновленою 8 жовтня 2026 року:

| SDK Expo | Xcode в образі | ITMS-90725 |
| -------- | -------------- | ---------- |
| 57       | 26.6           | Ні         |
| 56       | 26.4           | Ні         |
| 55       | 26.2           | Ні         |
| 54       | 26.0           | Ні         |
| 53       | 16.4           | Так        |
| 52       | 16.2           | Так        |

1. **Подивись, який образ використав твій останній білд.** На сторінці білду в expo.dev розділ «Spin up build environment» у логах показує його назву і версію Xcode.
2. **Якщо в тебе SDK 54 або новіший, пошукай примусово заданий образ.** Рядка `image`, що вказує на Xcode 16, наприклад `macos-sequoia-15.6-xcode-16.4`, достатньо, щоб викликати помилку. Документація Expo подає його як образ SDK 54 для тих, хто не хоче Xcode 26: з 28 квітня 2026 року такий вибір веде до відмови. Видали цей рядок: EAS повернеться до образу за замовчуванням.
3. **Якщо в тебе SDK 53 або старіший, онови SDK.** Це рекомендація Expo в її [оголошенні від 27 квітня 2026 року](https://expo.dev/blog/app-store-connect-minimum-sdk-26): перейти щонайменше на SDK 54.
4. **Зроби новий білд і надішли його.** SDK зашитий у бінарник: віддалене оновлення нічого не змінить.

### Тимчасове рішення для старого SDK

У тому ж оголошенні Expo дає варіант, якщо ти не можеш оновитися одразу: примусово задати образ із Xcode 26 в eas.json, у профілі production.

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

Expo попереджає: не всі версії SDK сумісні з Xcode 26, і результат залежить також від твоїх бібліотек. **Сприймай це як відстрочку, а не як виправлення.** Якщо білд падає на компіляції, єдиний шлях це оновлення SDK.

### Оновлюй SDK по одній версії

[Посібник з оновлення Expo](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/) радить підніматися по одній версії, щоб бачити, що ламається на кожному кроці. Щоб перейти з SDK 53 на SDK 54:

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

Якщо твою папку `ios` генерує Expo, видали її: вона створиться знову під час наступного білду. Потім протестуй застосунок на своєму iPhone, перш ніж переходити до наступної версії.

Одна річ, яку варто знати, перш ніж цілитися в найновіший SDK. Згідно з [таблицею версій Expo](https://docs.expo.dev/versions/latest/), SDK 54 і 55 підтримують iOS 15.1 і новіші, а SDK 56 і 57 лише iOS 16.4 і новіші. **Тож перехід на SDK 56 відсікає iPhone, що залишилися на iOS 15.** Щоб позбутися ITMS-90725, достатньо SDK 54.

## Перевір SDK білду перед надсиланням

Xcode записує в Info.plist кожного білду використані SDK і версію Xcode. Завантаж IPA зі сторінки білду на expo.dev і запусти на своєму Mac:

```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 Store, перше значення має починатися з `iphoneos26`. Друге кодує версію Xcode: на білді Nolera, зробленому з Xcode 26.2 для симулятора, я отримую `2620`. Якщо бачиш `iphoneos18` або значення, що починається з `16`, білд відхилять.

Якщо компілюєш на власному Mac, важить твій Xcode, а не образ EAS. `xcodebuild -version` показує активну версію. Та сама логіка в CI: версія Xcode залежить від обраної машини. У 2024 році, за даними форуму Apple, розробники отримували ITMS-90725, бо їхня машина GitHub Actions працювала на занадто старій для Xcode 15 macOS.

Коли правильний білд надіслано, протестуй його в [TestFlight](https://devoria.fr/uk/blog/testflight-testuvannya-zastosunku-iphone), перш ніж подавати на перевірку. Новий білд також знову проходить рев'ю, з термінами, описаними в статті [терміни перевірки App Store](https://devoria.fr/uk/blog/skilky-tryvaie-perevirka-app-store-app-review).

## Надсилай білд без неприємних сюрпризів

ITMS-90725 запобігти можна за хвилину: перевіряй образ і SDK перед кожним production-білдом. Інші автоматичні перевірки вимагають тієї ж уважності, як-от [ITMS-90683](https://devoria.fr/uk/blog/itms-90683-missing-purpose-string-expo) для текстів запитів дозволів. Відмови рецензента потребують більше часу на роздуми: порядок дій є на сторінці [застосунок відхилено Apple](https://devoria.fr/uk/expertise/app-rejected-by-apple), а найчастіші причини в статті [чому Apple відхиляє застосунок](https://devoria.fr/uk/blog/vidmova-apple-app-store-prychyny).

Щоб перевірити свій проєкт перед надсиланням, [Review Kit](https://devoria.fr/uk/kits/app-review) поєднує мій чекліст і skills для Claude Code, які переглядають твій проєкт. Якщо надсилання застрягло і тобі потрібен погляд людини, [забронюй годину зі мною](https://devoria.fr/uk/coaching): розберемо твій проєкт на відеодзвінку, на твоєму екрані. А якщо готуєш свій перший реліз, [пройди безкоштовну діагностику](https://devoria.fr/uk/diagnostic): вона розставить кроки в правильному порядку й надішле тобі мій чекліст проти відмов Apple.

## Поширені запитання

### Чи заважає ITMS-90725 опублікувати мій застосунок?

Після дедлайну, встановленого Apple, так: білд більше не приймають, і треба скомпілювати новий. До дедлайну це попередження: білд проходить, але наступний відхилять, якщо його скомпілювати так само.

### Чи треба відмовлятися від старих iPhone, щоб компілювати з SDK iOS 26?

Ні. SDK компіляції та мінімальна версія iOS це два окремі налаштування. В Expo цей мінімум визначає твоя версія SDK Expo: iOS 15.1 для SDK 54 і 55, iOS 16.4 для SDK 56 і 57.

### Чи можна виправити ITMS-90725 віддаленим оновленням?

Ні. SDK записується в бінарник під час компіляції. Віддалене оновлення змінює лише JavaScript і ресурси. Треба зробити новий білд з Xcode 26 і надіслати його.

### Як дізнатися, яку версію Xcode використовує EAS?

Відкрий логи свого білду на expo.dev, розділ «Spin up build environment». Назва образу вказує версію Xcode, наприклад `macos-tahoe-26.5-xcode-26.6`. Повний список є в документації інфраструктури EAS.

### Що змінить вимога квітня 2027 року?

Згідно зі сторінкою публікації Apple, треба буде компілювати з SDK iOS 27 і цілитися щонайменше в iOS 15. Щодо EAS, Expo планує образ із Xcode 27 для свого майбутнього SDK 58: перевір список образів збірки перед компіляцією. Перечитай сторінку Apple навесні, щоб дізнатися точну дату.


## Твій проєкт

[Review Kit](https://devoria.fr/uk/kits/app-review): Мій чекліст для перевірки в App Store, виправлені відмови Apple, чекліст для Google Play і три скіли для Claude Code. 2 499 ₴.

[iOS & Android Kit](https://devoria.fr/uk/kits/ios): Створи свій застосунок для iPhone і Android з Claude Code: стартовий код моїх застосунків, шлях до публікації в сторах і всі кіти. 4 999 ₴.

[Діагностика: що відділяє тебе від твого застосунку для iPhone](https://devoria.fr/uk/diagnostic): 7 запитань, 60 секунд: ти дізнаєшся, що насправді заважає тобі опублікувати застосунок для iPhone, отримаєш свій шлях у 4 кроки і кіт, який тобі підходить.
