# ITMS-90725 SDK version issue: วิธีแก้ใน Expo

> ITMS-90725 แปลว่าแอปของคุณคอมไพล์ด้วย iOS SDK ที่เก่าเกินไป ตั้งแต่ 28 เมษายน 2026 Apple บังคับใช้ Xcode 26 ให้อัปเป็น Expo SDK 54 ขึ้นไปแล้วบิลด์ใหม่

หน้าต้นฉบับ: [ITMS-90725 SDK version issue: วิธีแก้ใน Expo](https://devoria.fr/th/blog/itms-90725-sdk-version-issue-expo)
ผู้เขียน: [Mehdi Azizi](https://devoria.fr/th/mehdi-azizi)
เผยแพร่: 2026-11-04
แก้ไขเนื้อหาล่าสุด: 2026-11-04


ITMS-90725 คือการตรวจสอบบิลด์อัตโนมัติของ Apple ซึ่งแจ้งว่าแอปถูกคอมไพล์ด้วย iOS SDK ที่เก่ากว่าขั้นต่ำที่กำหนด ข้อมูล ณ วันที่ 15 ตุลาคม 2026 Apple ระบุว่าตั้งแต่ 28 เมษายน 2026 แอปที่ส่งเข้า App Store Connect ต้องคอมไพล์ด้วย Xcode 26 ขึ้นไปและ iOS 26 SDK **สำหรับ Expo ทุกอย่างขึ้นอยู่กับอิมเมจบิลด์ของ EAS ตั้งแต่ Expo SDK 54 เป็นต้นไป อิมเมจที่ถูกเลือกโดยค่าเริ่มต้นจะมาพร้อม Xcode 26**

แอปของผม ทั้ง Solys, TradaZen และ Nolera ใช้ Expo SDK 57 โดยไม่ได้บังคับอิมเมจใน eas.json เลย EAS เลือกเวอร์ชัน Xcode ให้เอง ต่อไปนี้คือวิธีเช็กของคุณ และสิ่งที่ต้องทำถ้าโปรเจกต์ของคุณเก่ากว่านั้น

## ข้อผิดพลาด ITMS-90725 หมายความว่าอะไร?

ข้อความนี้มีหัวเรื่องว่า "ITMS-90725: SDK version issue" โดยจะบอก SDK ที่ใช้คอมไพล์แอปของคุณ ตามด้วยขั้นต่ำที่กำหนดและเวอร์ชัน Xcode ที่มี SDK นั้น ตัวอย่างเช่นในฟอรัมนักพัฒนาของ Apple มีข้อความปี 2024 ที่ขึ้นต้นว่า "This app was built with the iOS 16.2 SDK" แล้วตามด้วยข้อกำหนดในตอนนั้น

SDK คือชุดไลบรารีของ iOS ที่ Xcode ใช้คอมไพล์แอปของคุณ Xcode แต่ละเวอร์ชันมี SDK ของตัวเอง เช่น Xcode 26 มี iOS 26 SDK **การคอมไพล์ด้วย SDK ใหม่ไม่ได้แปลว่าต้องทิ้ง iPhone รุ่นเก่า** เวอร์ชัน iOS ขั้นต่ำที่แอปรองรับเป็นการตั้งค่าแยกต่างหาก เรียกว่า deployment target

เหมือนกับข้อผิดพลาด ITMS อื่น ๆ นี่ไม่ใช่การปฏิเสธจาก reviewer แต่เป็นการตรวจอัตโนมัติที่ดูจากไบนารีที่ส่งไป

## ตอนนี้ Apple กำหนดให้ใช้ Xcode เวอร์ชันไหน?

นี่คือสิ่งที่หน้า [ข้อกำหนดที่กำลังจะมาถึงของ Apple](https://developer.apple.com/news/upcoming-requirements/) และหน้า [การส่งแอปขึ้น App Store](https://developer.apple.com/app-store/submitting/) ระบุไว้ ตรวจสอบเมื่อ 15 ตุลาคม 2026:

| วันที่         | ข้อกำหนด                  |
| -------------- | ------------------------- |
| 28 เมษายน 2026 | Xcode 26, iOS 26 SDK      |
| 9 กันยายน 2026 | target ขั้นต่ำ iOS 13     |
| เมษายน 2027    | iOS 27 SDK, target iOS 15 |

กฎที่ทำให้เกิด ITMS-90725 คือข้อแรก บิลด์ที่ทำด้วย Xcode 16 และ iOS 18 SDK จะไม่ถูกรับอีกต่อไป ข้อที่สองเกี่ยวกับเวอร์ชันขั้นต่ำที่รองรับ ไม่ใช่ 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/th/blog/publish-ios-app-without-mac-expo-eas) เวอร์ชัน Xcode ขึ้นอยู่กับอิมเมจบิลด์ ถ้าคุณไม่ระบุ `image` ใน eas.json EAS จะใช้ alias `auto` ซึ่งเลือกอิมเมจตามเวอร์ชัน Expo SDK ของคุณ

นี่คืออิมเมจที่ผูกกับ SDK แต่ละเวอร์ชันตาม [เอกสารโครงสร้างพื้นฐานของ EAS](https://docs.expo.dev/build-reference/infrastructure/) อัปเดตเมื่อ 8 ตุลาคม 2026:

| Expo SDK | 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" ของ log จะแสดงชื่ออิมเมจและเวอร์ชัน 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 ออกไป** แค่ SDK 54 ก็พอจะแก้ ITMS-90725 ได้แล้ว

## เช็ก SDK ของบิลด์ก่อนส่ง

Xcode จะบันทึก SDK และเวอร์ชัน Xcode ที่ใช้ไว้ใน Info.plist ของทุกบิลด์ ดาวน์โหลด IPA จากหน้าบิลด์บน expo.dev แล้วรันบน 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
```

สำหรับบิลด์ที่จะขึ้น App Store ค่าแรกต้องขึ้นต้นด้วย `iphoneos26` ค่าที่สองคือรหัสเวอร์ชัน Xcode: บนบิลด์ของ Nolera ที่ทำด้วย Xcode 26.2 สำหรับ simulator ผมได้ `2620` ถ้าคุณเห็น `iphoneos18` หรือค่าที่ขึ้นต้นด้วย `16` บิลด์นั้นจะถูกปฏิเสธ

ถ้าคุณคอมไพล์บน Mac ของตัวเอง สิ่งที่สำคัญคือ Xcode ในเครื่องคุณ ไม่ใช่อิมเมจของ EAS คำสั่ง `xcodebuild -version` จะแสดงเวอร์ชันที่ใช้งานอยู่ หลักการเดียวกันใช้กับ CI ด้วย: เวอร์ชัน Xcode ขึ้นอยู่กับเครื่องที่เลือก ในปี 2024 บนฟอรัมของ Apple มีนักพัฒนาเจอ ITMS-90725 เพราะเครื่อง GitHub Actions ของพวกเขารัน macOS ที่เก่าเกินกว่าจะใช้ Xcode 15 ได้

เมื่อส่งบิลด์ที่ถูกต้องแล้ว ให้ทดสอบใน [TestFlight](https://devoria.fr/th/blog/testflight-test-iphone-app-before-app-store) ก่อนส่งรีวิว บิลด์ใหม่ต้องผ่านการรีวิวอีกครั้งเช่นกัน โดยใช้เวลาตามที่อธิบายไว้ใน [ระยะเวลาการตรวจแอปของ App Store](https://devoria.fr/th/blog/app-store-review-time-how-long)

## ส่งบิลด์โดยไม่เจอเรื่องไม่คาดคิด

ITMS-90725 ป้องกันได้ในหนึ่งนาที: เช็กอิมเมจและ SDK ก่อนบิลด์ production ทุกครั้ง การตรวจอัตโนมัติอื่น ๆ ก็ต้องใส่ใจแบบเดียวกัน เช่น [ITMS-90683](https://devoria.fr/th/blog/itms-90683-missing-purpose-string-expo) สำหรับข้อความขอสิทธิ์ ส่วนการปฏิเสธจาก reviewer ต้องใช้มุมมองที่กว้างกว่า ขั้นตอนอยู่ในหน้า [แอปถูก Apple ปฏิเสธ](https://devoria.fr/th/expertise/app-rejected-by-apple) และเหตุผลที่พบบ่อยที่สุดอยู่ใน [ทำไม Apple ถึงปฏิเสธแอป](https://devoria.fr/th/blog/apple-app-rejection-reasons-real-cases)

ถ้าอยากตรวจโปรเจกต์ก่อนส่ง [Review Kit](https://devoria.fr/th/kits/app-review) รวมเช็กลิสต์ของผมและ skills ของ Claude Code ที่ช่วยอ่านทวนโปรเจกต์ของคุณ ถ้าการส่งติดขัดและคุณอยากได้คนช่วยดู [จองเวลาหนึ่งชั่วโมงกับผม](https://devoria.fr/th/coaching) เราจะไล่ดูโปรเจกต์ของคุณผ่านวิดีโอคอล บนหน้าจอของคุณเอง และถ้าคุณกำลังเตรียมปล่อยแอปแรก [ทำแบบประเมินฟรี](https://devoria.fr/th/diagnostic) มันจะเรียงขั้นตอนให้เป็นลำดับ และส่งเช็กลิสต์กันโดน Apple ปฏิเสธของผมให้คุณ

## คำถามที่พบบ่อย

### ITMS-90725 ทำให้เผยแพร่แอปไม่ได้หรือไม่?

หลังถึงกำหนดที่ Apple ตั้งไว้ ใช่ บิลด์จะไม่ถูกรับ และต้องคอมไพล์บิลด์ใหม่ ก่อนถึงกำหนดจะเป็นแค่คำเตือน บิลด์ผ่านได้ แต่บิลด์ถัดไปจะถูกปฏิเสธถ้ายังคอมไพล์แบบเดิม

### ต้องทิ้ง iPhone รุ่นเก่าเพื่อคอมไพล์ด้วย iOS 26 SDK หรือไม่?

ไม่ต้อง SDK ที่ใช้คอมไพล์และเวอร์ชัน iOS ขั้นต่ำเป็นการตั้งค่าคนละส่วนกัน สำหรับ Expo เวอร์ชัน Expo SDK ของคุณเป็นตัวกำหนดขั้นต่ำนี้: iOS 15.1 สำหรับ SDK 54 และ 55, iOS 16.4 สำหรับ SDK 56 และ 57

### แก้ ITMS-90725 ด้วยการอัปเดตจากระยะไกลได้หรือไม่?

ไม่ได้ SDK ถูกบันทึกลงในไบนารีตอนคอมไพล์ การอัปเดตจากระยะไกลเปลี่ยนได้แค่ JavaScript และ resource คุณต้องบิลด์ใหม่ด้วย Xcode 26 แล้วส่งอีกครั้ง

### จะรู้ได้อย่างไรว่า EAS ใช้ Xcode เวอร์ชันไหน?

เปิด log ของบิลด์บน expo.dev ส่วน "Spin up build environment" ชื่ออิมเมจจะบอกเวอร์ชัน Xcode เช่น `macos-tahoe-26.5-xcode-26.6` รายการทั้งหมดอยู่ในเอกสารโครงสร้างพื้นฐานของ EAS

### ข้อกำหนดเดือนเมษายน 2027 จะเปลี่ยนอะไรบ้าง?

ตามหน้าการส่งแอปของ Apple คุณจะต้องคอมไพล์ด้วย iOS 27 SDK และรองรับขั้นต่ำ iOS 15 ฝั่ง EAS นั้น Expo วางแผนจะมีอิมเมจ Xcode 27 สำหรับ SDK 58 ที่จะออกในอนาคต ให้เช็กรายการอิมเมจบิลด์ก่อนคอมไพล์ และกลับไปอ่านหน้าของ Apple ในช่วงฤดูใบไม้ผลิเพื่อดูวันที่แน่นอน


## โปรเจกต์ของคุณ

[Review Kit](https://devoria.fr/th/kits/app-review): เช็กลิสต์รีวิว App Store ของผม การถูก Apple ปฏิเสธที่ผมแก้ไขแล้ว เช็กลิสต์ของ Google Play และ skill ของ Claude Code อีกสามตัว ฿1,849

[iOS & Android Kit](https://devoria.fr/th/kits/ios): สร้างแอป iPhone และ Android ของคุณด้วย Claude Code: โค้ดเริ่มต้นจากแอปของผม เส้นทางจนถึงสโตร์ และชุดคิททั้งหมด ฿3,699

[แบบประเมิน: อะไรกั้นคุณไว้จากแอป iPhone ของคุณ](https://devoria.fr/th/diagnostic): 7 คำถาม 60 วินาที: รู้ว่าอะไรที่ขวางคุณจากการเผยแพร่แอป iPhone จริง ๆ พร้อมเส้นทาง 4 ขั้นตอนและชุดคิทที่เหมาะกับคุณ
