ITMS-90725: איך לתקן SDK version issue ב-Expo
מאת Mehdi Azizi
פורסם ב-, 7 דק׳
ITMS-90725: האפליקציה שלך קומפלה עם SDK ישן מדי. מאז 28 באפריל 2026 אפל דורשת Xcode 26: עבור ל-SDK 54 של Expo ומעלה ותעשה build חדש.
ITMS-90725 היא בדיקה אוטומטית שאפל מריצה על ה-build שלך: היא אומרת שהאפליקציה קומפלה עם SDK של iOS ישן יותר מהמינימום הנדרש. נכון ל-15 באוקטובר 2026, אפל מציינת שמאז 28 באפריל 2026, אפליקציות שנשלחות ל-App Store Connect חייבות להיות מקומפלות עם Xcode 26 ומעלה ועם ה-SDK של iOS 26. ב-Expo הכול תלוי באימג' ה-build של EAS: החל מ-SDK 54 של Expo, האימג' שנבחר כברירת מחדל כולל Xcode 26.
האפליקציות שלי, Solys, TradaZen ו-Nolera, נמצאות על SDK 57 של Expo, בלי אימג' מוגדר ידנית ב-eas.json: EAS בוחר לבד את גרסת ה-Xcode. הנה איך לבדוק את שלך, ומה לעשות אם הפרויקט שלך ישן יותר.
מה המשמעות של השגיאה ITMS-90725?
ההודעה נקראת "ITMS-90725: SDK version issue". היא מציינת עם איזה SDK האפליקציה שלך קומפלה, ואז את המינימום הנדרש ואת גרסת ה-Xcode שכוללת אותו. בפורום המפתחים של אפל, הודעה מ-2024 התחילה למשל כך: "This app was built with the iOS 16.2 SDK", ואחריה הדרישה של אותה תקופה.
ה-SDK הוא אוסף הספריות של iOS ש-Xcode משתמש בהן כדי לקמפל את האפליקציה. כל גרסה של Xcode מגיעה עם SDK משלה: Xcode 26 כולל את ה-SDK של iOS 26. לקמפל עם SDK חדש לא אומר לוותר על אייפונים ישנים. גרסת ה-iOS המינימלית שהאפליקציה שלך תומכת בה היא הגדרה נפרדת, ה-deployment target.
כמו שאר שגיאות ה-ITMS, זו לא דחייה של reviewer. הבדיקה אוטומטית ונוגעת לקובץ הבינארי ששלחת.
איזו גרסת Xcode אפל דורשת היום?
הנה מה שכתוב בעמוד הדרישות הקרובות של אפל ובעמוד ההגשה ל-App Store, נכון ל-15 באוקטובר 2026:
| תאריך | דרישה |
|---|---|
| 28 באפריל 2026 | Xcode 26, SDK של iOS 26 |
| 9 בספטמבר 2026 | יעד מינימלי iOS 13 |
| אפריל 2027 | SDK של iOS 27, יעד iOS 15 |
הכלל שמפעיל את ITMS-90725 הוא הראשון. build שנעשה עם Xcode 16 ועם ה-SDK של iOS 18 כבר לא מתקבל. הכלל השני נוגע לגרסה המינימלית שאתה מכוון אליה, לא ל-SDK. השלישי הוכרז לאפריל 2027, בלי יום מדויק בעמוד בזמן הבדיקה. אפל כבר ממליצה לקמפל ולבדוק עם Xcode 27.
הדרישה הזאת עולה באופן קבוע, ותמיד באביב. אותו עמוד של אפל שומר תיעוד של כמה מועדים: Xcode 14.1 ב-25 באפריל 2023, Xcode 15 ב-29 באפריל 2024, Xcode 26 ב-28 באפריל 2026. לפני כל אביב, תקרא אותו שוב במקום לסמוך על מאמר, כולל המאמר הזה.
אזהרה או חסימה: איך מבדילים?
לפני המועד, ITMS-90725 מגיעה כאזהרה. ב-2024, בפורום של אפל, המייל ציין שהמסירה הצליחה והמליץ לתקן בהעלאה הבאה. אחרי המועד, אפל כותבת שאפליקציות "חייבות" להיות מקומפלות עם ה-SDK הנדרש כדי שאפשר יהיה לשלוח אותן: ה-build כבר לא מתקבל.
| סימן | אזהרה | חסימה |
|---|---|---|
| תאריך השליחה | לפני המועד | אחרי המועד |
| השליחה התקבלה | כן | לא |
| מה אתה עושה | מתקן בבא בתור | build חדש |
אזהרת ITMS-90725 היא ספירה לאחור. ה-build עובר היום, אבל הבא, אם יקומפל באותה דרך, יידחה אחרי התאריך. תתקן את זה כל עוד אתה לא בלחץ של עדכון דחוף.
לתקן את ITMS-90725 בפרויקט Expo
עם EAS, האפליקציה שלך מקומפלת על המקים של Expo, כמו שאני מסביר בלפרסם אפליקציית iOS בלי Mac. גרסת ה-Xcode תלויה באימג' ה-build. אם לא הגדרת 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 | כן |
- תבדוק באיזה אימג' השתמש ה-build האחרון שלך. בעמוד ה-build ב-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.
- תעשה build מחדש ותשלח אותו שוב. ה-SDK נצרב בבינארי: עדכון מרחוק לא משנה כלום.
פתרון זמני ל-SDK ישן
באותה הודעה Expo נותנת אפשרות אם אתה לא יכול לשדרג מיד: להגדיר ידנית אימג' עם Xcode 26 ב-eas.json, בפרופיל ה-production שלך.
{
"build": {
"production": {
"ios": {
"image": "macos-sequoia-15.6-xcode-26.2"
}
}
}
}
Expo מזהירה: לא כל גרסאות ה-SDK תואמות ל-Xcode 26, והתוצאה תלויה גם בספריות שלך. תתייחס לזה כאל דחייה, לא כאל תיקון. אם ה-build נכשל בקומפילציה, הדרך היחידה שנשארת היא לשדרג SDK.
לשדרג SDK, גרסה אחת בכל פעם
מדריך העדכון של Expo ממליץ לעלות גרסה אחת בכל פעם, כדי לזהות מה נשבר בכל שלב. כדי לעבור מ-SDK 53 ל-SDK 54:
npm install expo@^54.0.0
npx expo install --fix
npx expo-doctor
אם תיקיית ה-ios שלך נוצרת על ידי Expo, תמחק אותה: היא תיווצר מחדש ב-build הבא. אחר כך תבדוק את האפליקציה על האייפון שלך לפני שאתה ממשיך לגרסה הבאה.
נקודה שכדאי לדעת לפני שמכוונים ל-SDK האחרון. לפי טבלת הגרסאות של Expo, SDK 54 ו-55 תומכים ב-iOS 15.1 ומעלה, ו-SDK 56 ו-57 רק ב-iOS 16.4 ומעלה. מעבר ל-SDK 56 משאיר בחוץ אייפונים שנשארו על iOS 15. SDK 54 מספיק כדי להיפטר מ-ITMS-90725.
לבדוק את ה-SDK של build לפני השליחה
Xcode רושם ב-Info.plist של כל build את ה-SDK ואת גרסת ה-Xcode שבהם השתמש. תוריד את ה-IPA מעמוד ה-build ב-expo.dev, ואז תריץ על ה-Mac שלך:
unzip -q MyApp.ipa -d ipa
plutil -extract DTSDKName raw ipa/Payload/*.app/Info.plist
plutil -extract DTXcode raw ipa/Payload/*.app/Info.plist
ל-build שמיועד ל-App Store, הערך הראשון צריך להתחיל ב-iphoneos26. השני מקודד את גרסת ה-Xcode: ב-build של Nolera שנעשה עם Xcode 26.2 לסימולטור, אני מקבל 2620. אם אתה רואה iphoneos18 או ערך שמתחיל ב-16, ה-build יידחה.
אם אתה מקמפל על ה-Mac שלך, מה שקובע הוא ה-Xcode שלך, לא האימג' של EAS. xcodebuild -version מציג את הגרסה הפעילה. אותו היגיון ב-CI: גרסת ה-Xcode תלויה במכונה שבחרת. ב-2024, בפורום של אפל, מפתחים קיבלו ITMS-90725 כי מכונת ה-GitHub Actions שלהם רצה על macOS ישן מדי בשביל Xcode 15.
אחרי ששלחת את ה-build הנכון, תבדוק אותו ב-TestFlight לפני שאתה מגיש. build חדש עובר גם הוא שוב בדיקה, עם הזמנים שמתוארים בזמן האישור ב-App Store.
לשלוח את ה-build בלי הפתעות
את ITMS-90725 אפשר למנוע בדקה: תבדוק את האימג' ואת ה-SDK לפני כל build של production. הבדיקות האוטומטיות האחרות דורשות אותה הקפדה, כמו ITMS-90683 למשפטי ההרשאות. דחיות של reviewer דורשות יותר פרספקטיבה: התהליך מופיע בעמוד אפליקציה שנדחתה על ידי אפל, והסיבות הנפוצות ביותר נמצאות בלמה אפל דוחה אפליקציה.
כדי לבדוק את ההגשה שלך לפני השליחה, ה-Review Kit מרכז את הצ'קליסט שלי ו-skills של Claude Code שעוברים על הפרויקט שלך. אם השליחה שלך תקועה ואתה רוצה עין אנושית, תקבע איתי שעה: נעבור על הפרויקט שלך בווידאו, על המסך שלך. ואם אתה מכין את ההשקה הראשונה שלך, תעשה את האבחון החינמי: הוא מסדר את השלבים לפי הסדר ושולח לך את הצ'קליסט שלי נגד דחיות של אפל.
שאלות נפוצות
האם ITMS-90725 מונעת ממני לפרסם את האפליקציה?
אחרי המועד שאפל קבעה, כן: ה-build כבר לא מתקבל וצריך לקמפל חדש. לפני המועד, זו אזהרה: ה-build עובר, אבל הבא יידחה אם יקומפל באותה דרך.
צריך לוותר על אייפונים ישנים כדי לקמפל עם ה-SDK של iOS 26?
לא. ה-SDK של הקומפילציה וגרסת ה-iOS המינימלית הן שתי הגדרות נפרדות. ב-Expo, גרסת ה-SDK של Expo היא שקובעת את המינימום הזה: iOS 15.1 ל-SDK 54 ו-55, ו-iOS 16.4 ל-SDK 56 ו-57.
אפשר לתקן את ITMS-90725 עם עדכון מרחוק?
לא. ה-SDK נרשם בבינארי בזמן הקומפילציה. עדכון מרחוק משנה רק את ה-JavaScript ואת המשאבים. צריך לעשות build חדש עם Xcode 26 ולשלוח אותו שוב.
איך יודעים באיזו גרסת Xcode משתמש EAS?
תפתח את הלוגים של ה-build שלך ב-expo.dev, בחלק "Spin up build environment". שם האימג' מציין את גרסת ה-Xcode, למשל macos-tahoe-26.5-xcode-26.6. הרשימה המלאה נמצאת בתיעוד של תשתית EAS.
מה תשנה הדרישה של אפריל 2027?
לפי עמוד ההגשה של אפל, יהיה צריך לקמפל עם ה-SDK של iOS 27 ולכוון לפחות ל-iOS 15. בצד של EAS, Expo מתכננת אימג' עם Xcode 27 ל-SDK 58 העתידי שלה: תבדוק את רשימת אימג'י ה-build לפני שאתה מקמפל. תקרא שוב את העמוד של אפל באביב כדי לדעת את היום המדויק.

