ITMS-90725: як виправити SDK version issue в Expo
Автор: Mehdi Azizi
Опубліковано , 7 хв
ITMS-90725: застарілий SDK iOS. З 28 квітня 2026 Apple вимагає Xcode 26: онови Expo до SDK 54 або новішого й зроби новий білд.
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 і сторінка публікації в App Store, перевірені 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. Версія Xcode залежить від образу збірки. Якщо ти не вказуєш image в eas.json, EAS використовує аліас auto: він вибирає образ відповідно до твоєї версії SDK Expo.
Ось образ для кожного SDK згідно з документацією інфраструктури EAS, оновленою 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 | Так |
- Подивись, який образ використав твій останній білд. На сторінці білду в expo.dev розділ «Spin up build environment» у логах показує його назву і версію Xcode.
- Якщо в тебе SDK 54 або новіший, пошукай примусово заданий образ. Рядка
image, що вказує на Xcode 16, наприкладmacos-sequoia-15.6-xcode-16.4, достатньо, щоб викликати помилку. Документація Expo подає його як образ SDK 54 для тих, хто не хоче Xcode 26: з 28 квітня 2026 року такий вибір веде до відмови. Видали цей рядок: EAS повернеться до образу за замовчуванням. - Якщо в тебе SDK 53 або старіший, онови SDK. Це рекомендація Expo в її оголошенні від 27 квітня 2026 року: перейти щонайменше на SDK 54.
- Зроби новий білд і надішли його. SDK зашитий у бінарник: віддалене оновлення нічого не змінить.
Тимчасове рішення для старого SDK
У тому ж оголошенні Expo дає варіант, якщо ти не можеш оновитися одразу: примусово задати образ із Xcode 26 в eas.json, у профілі production.
{
"build": {
"production": {
"ios": {
"image": "macos-sequoia-15.6-xcode-26.2"
}
}
}
}
Expo попереджає: не всі версії SDK сумісні з Xcode 26, і результат залежить також від твоїх бібліотек. Сприймай це як відстрочку, а не як виправлення. Якщо білд падає на компіляції, єдиний шлях це оновлення SDK.
Оновлюй SDK по одній версії
Посібник з оновлення Expo радить підніматися по одній версії, щоб бачити, що ламається на кожному кроці. Щоб перейти з SDK 53 на SDK 54:
npm install expo@^54.0.0
npx expo install --fix
npx expo-doctor
Якщо твою папку ios генерує Expo, видали її: вона створиться знову під час наступного білду. Потім протестуй застосунок на своєму iPhone, перш ніж переходити до наступної версії.
Одна річ, яку варто знати, перш ніж цілитися в найновіший SDK. Згідно з таблицею версій Expo, 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:
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, перш ніж подавати на перевірку. Новий білд також знову проходить рев'ю, з термінами, описаними в статті терміни перевірки App Store.
Надсилай білд без неприємних сюрпризів
ITMS-90725 запобігти можна за хвилину: перевіряй образ і SDK перед кожним production-білдом. Інші автоматичні перевірки вимагають тієї ж уважності, як-от ITMS-90683 для текстів запитів дозволів. Відмови рецензента потребують більше часу на роздуми: порядок дій є на сторінці застосунок відхилено Apple, а найчастіші причини в статті чому Apple відхиляє застосунок.
Щоб перевірити свій проєкт перед надсиланням, Review Kit поєднує мій чекліст і skills для Claude Code, які переглядають твій проєкт. Якщо надсилання застрягло і тобі потрібен погляд людини, забронюй годину зі мною: розберемо твій проєкт на відеодзвінку, на твоєму екрані. А якщо готуєш свій перший реліз, пройди безкоштовну діагностику: вона розставить кроки в правильному порядку й надішле тобі мій чекліст проти відмов 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 навесні, щоб дізнатися точну дату.

