# ITMS-90725の直し方：ExpoのSDKエラー対処

> ITMS-90725は古いiOS SDKでのビルドが原因です。Expo SDK 54以上に上げて再ビルドすれば解決します。

元のページ：[ITMS-90725の直し方：ExpoのSDKエラー対処](https://devoria.fr/ja/blog/itms-90725-sdk-version-issue-expo)
著者：[Mehdi Azizi](https://devoria.fr/ja/mehdi-azizi)
公開日：2026-11-04
内容の最終更新：2026-11-04


ITMS-90725は、Appleがビルドに対して行う自動チェックです。アプリが、求められる最低バージョンより古いiOS SDKでビルドされていることを示しています。2026年10月15日時点のAppleの案内では、2026年4月28日以降、App Store Connectに送るアプリはXcode 26以降とiOS 26 SDKでビルドする必要があります。**Expoの場合、すべてはEASのビルドイメージで決まります。Expo SDK 54以降では、デフォルトで選ばれるイメージにXcode 26が入っています。**

僕のアプリ、Solys、TradaZen、NoleraはExpo SDK 57で、eas.jsonでイメージを固定していません。XcodeのバージョンはEASが自分で選びます。ここでは、あなたのプロジェクトの確認方法と、プロジェクトが古い場合の対処法を説明します。

## ITMS-90725エラーとは何ですか？

メッセージのタイトルは「ITMS-90725: SDK version issue」です。アプリがビルドされたSDK、求められる最低バージョン、そしてそれを含むXcodeのバージョンが書かれています。たとえばAppleの開発者フォーラムにある2024年の投稿では、メッセージは「This app was built with the iOS 16.2 SDK」で始まり、その後に当時の要件が続いていました。

SDKとは、XcodeがアプリをビルドするときにつかうiOSのライブラリ一式のことです。Xcodeの各バージョンにはそれぞれのSDKが入っていて、Xcode 26にはiOS 26 SDKが含まれます。**新しいSDKでビルドしても、古いiPhoneを切り捨てることにはなりません。** アプリが対応する最低iOSバージョンは、デプロイメントターゲットという別の設定です。

ほかのITMSエラーと同じく、これはレビュアーによるリジェクトではありません。送信したバイナリに対する自動チェックです。

## 現在Appleが求めているXcodeのバージョンは？

2026年10月15日時点で、[Appleの今後の要件](https://developer.apple.com/news/upcoming-requirements/)のページと[App Storeへの提出](https://developer.apple.com/app-store/submitting/)のページには次のように書かれています。

| 日付          | 要件                               |
| ------------- | ---------------------------------- |
| 2026年4月28日 | Xcode 26、iOS 26 SDK               |
| 2026年9月9日  | ターゲットはiOS 13以上             |
| 2027年4月     | iOS 27 SDK、ターゲットはiOS 15以上 |

ITMS-90725を引き起こすのは1つ目のルールです。Xcode 16とiOS 18 SDKで作ったビルドは、もう受け付けられません。2つ目はSDKではなく、対象とする最低バージョンについてのルールです。3つ目は2027年4月と発表されていますが、確認した時点ではページに正確な日付はありませんでした。Appleはすでに、Xcode 27でのビルドとテストを勧めています。

**この要件は定期的に引き上げられ、いつも春に来ます。** 同じAppleのページには過去の期限も残っています。2023年4月25日にXcode 14.1、2024年4月29日にXcode 15、2026年4月28日にXcode 26です。毎年春の前には、記事（この記事も含めて）を鵜呑みにせず、このページを読み直してください。

## 警告かブロックか：どう見分けますか？

期限の前は、ITMS-90725は警告として届きます。2024年のAppleのフォーラムでは、メールに「配信は成功した」と書かれ、次回の送信で修正するよう勧めていました。期限を過ぎると、Appleはアプリを送信するには指定のSDKでビルド「しなければならない」と書いています。つまりビルドは受け付けられません。

| 手がかり       | 警告           | ブロック     |
| -------------- | -------------- | ------------ |
| 送信日         | 期限より前     | 期限より後   |
| 送信の受け付け | される         | されない     |
| やること       | 次回までに修正 | 新しくビルド |

**ITMS-90725の警告はカウントダウンです。** 今日のビルドは通りますが、同じ方法でビルドした次のビルドは期限後にリジェクトされます。急ぎのアップデートに追われていないうちに直しておきましょう。

## ExpoプロジェクトでITMS-90725を直す

EASでは、[MacなしでiOSアプリを公開する](https://devoria.fr/ja/blog/publish-ios-app-without-mac-expo-eas)で説明しているとおり、アプリはExpoのMac上でビルドされます。Xcodeのバージョンはビルドイメージで決まります。eas.jsonで`image`を指定しなければ、EASは`auto`エイリアスを使い、Expo SDKのバージョンに応じてイメージを選びます。

2026年10月8日に更新された[EASインフラのドキュメント](https://docs.expo.dev/build-reference/infrastructure/)によると、各SDKに対応するイメージは次のとおりです。

| 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」セクションにイメージ名とXcodeのバージョンが表示されます。
2. **SDK 54以上なら、イメージが固定されていないか探します。** `macos-sequoia-15.6-xcode-16.4`のようにXcode 16を指す`image`の行が1行あるだけで、このエラーが出ます。Expoのドキュメントでは、これはXcode 26を使いたくない人向けのSDK 54のイメージとして紹介されていますが、2026年4月28日以降、この選択はリジェクトにつながります。この行を削除すれば、EASはデフォルトのイメージに戻ります。
3. **SDK 53以下なら、SDKを上げます。** これはExpoの[2026年4月27日のお知らせ](https://expo.dev/blog/app-store-connect-minimum-sdk-26)での推奨で、少なくともSDK 54に上げることとされています。
4. **ビルドし直して、再送信します。** SDKはバイナリに固定されているので、リモートアップデートでは何も変わりません。

### 古いSDKのための応急処置

同じExpoのお知らせでは、すぐにSDKを上げられない場合の選択肢も紹介されています。eas.jsonのproductionプロファイルで、Xcode 26のイメージを固定する方法です。

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

Expoは、すべてのSDKバージョンがXcode 26に対応しているわけではなく、結果は使っているライブラリにも左右されると注意しています。**これは修正ではなく、猶予と考えてください。** コンパイルでビルドが失敗するなら、残る道はSDKを上げることだけです。

### SDKは1バージョンずつ上げる

[Expoのアップグレードガイド](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/)では、各段階で何が壊れたかを見つけやすいように、1バージョンずつ上げることを勧めています。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に上げると、iOS 15のままのiPhoneは対象外になります。** ITMS-90725を解消するだけならSDK 54で十分です。

## 送信前にビルドのSDKを確認する

Xcodeは各ビルドのInfo.plistに、使ったSDKとXcodeのバージョンを書き込みます。expo.devのビルドページからIPAをダウンロードし、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向けのビルドなら、1つ目の値は`iphoneos26`で始まっている必要があります。2つ目はXcodeのバージョンを表します。Xcode 26.2でシミュレータ向けに作ったNoleraのビルドでは`2620`になりました。`iphoneos18`や`16`で始まる値が出たら、そのビルドはリジェクトされます。

自分のMacでビルドしている場合、関係するのはEASのイメージではなく、あなたのXcodeです。`xcodebuild -version`で有効なバージョンを確認できます。CIでも考え方は同じで、Xcodeのバージョンは選んだマシンで決まります。2024年のAppleのフォーラムでは、GitHub ActionsのマシンがXcode 15には古すぎるmacOSで動いていたために、ITMS-90725を受けた開発者がいました。

正しいビルドを送ったら、提出前に[TestFlight](https://devoria.fr/ja/blog/testflight-iphone-app-beta-testing)でテストしましょう。新しいビルドは審査も通り直します。かかる時間は[App Storeの審査期間](https://devoria.fr/ja/blog/app-store-review-time)にまとめています。

## 想定外のトラブルなしでビルドを送るために

ITMS-90725は1分で防げます。本番ビルドの前に、毎回イメージとSDKを確認するだけです。ほかの自動チェックにも同じ丁寧さが必要で、たとえば権限の説明文に関する[ITMS-90683](https://devoria.fr/ja/blog/itms-90683-missing-purpose-string-expo)があります。レビュアーによるリジェクトには、もう少し落ち着いた対応が必要です。進め方は[Appleにリジェクトされたアプリ](https://devoria.fr/ja/expertise/app-rejected-by-apple)のページに、よくある理由は[Appleがアプリをリジェクトする理由](https://devoria.fr/ja/blog/apple-app-rejection-reasons-fixes)にまとめています。

送信前にプロジェクトを確認するなら、[Review Kit](https://devoria.fr/ja/kits/app-review)に僕のチェックリストと、プロジェクトを見直すClaude Codeのスキルをまとめています。送信で詰まっていて、人の目で見てほしいなら、[僕と1時間のセッションを予約してください](https://devoria.fr/ja/coaching)。ビデオ通話で、あなたの画面を見ながらプロジェクトを一緒に見直します。初めてのリリースを準備しているなら、[無料診断を受けてください](https://devoria.fr/ja/diagnostic)。やるべきステップを順番に整理し、Appleのリジェクト対策チェックリストもお送りします。

## よくある質問

### ITMS-90725があるとアプリを公開できませんか？

Appleが定めた期限を過ぎていれば、はい。ビルドは受け付けられず、新しくビルドする必要があります。期限前なら警告です。ビルドは通りますが、同じ方法でビルドした次のビルドはリジェクトされます。

### iOS 26 SDKでビルドするには古いiPhoneを切り捨てる必要がありますか？

いいえ。ビルドに使うSDKと最低iOSバージョンは別々の設定です。Expoでは、その最低バージョンはExpo SDKのバージョンで決まります。SDK 54と55はiOS 15.1、SDK 56と57はiOS 16.4です。

### リモートアップデートでITMS-90725を直せますか？

いいえ。SDKはビルド時にバイナリに書き込まれます。リモートアップデートで変わるのはJavaScriptとリソースだけです。Xcode 26でビルドし直して、再送信する必要があります。

### EASが使っているXcodeのバージョンはどう確認しますか？

expo.devでビルドのログを開き、「Spin up build environment」セクションを見てください。イメージ名にXcodeのバージョンが入っています。たとえば`macos-tahoe-26.5-xcode-26.6`です。完全な一覧はEASインフラのドキュメントにあります。

### 2027年4月の要件で何が変わりますか？

Appleの提出ページによると、iOS 27 SDKでビルドし、iOS 15以上をターゲットにする必要があります。EAS側では、Expoが今後のSDK 58向けにXcode 27のイメージを予定しています。ビルドの前にビルドイメージの一覧を確認してください。正確な日付は、春にAppleのページを読み直して確かめましょう。


## あなたのプロジェクト

[Review Kit](https://devoria.fr/ja/kits/app-review)：私のApp Store審査チェックリスト、修正済みのAppleのリジェクト事例、Google Play用チェックリスト、Claude Codeのスキル3つ。￥8,500。

[iOS & Android Kit](https://devoria.fr/ja/kits/ios)：Claude CodeでiPhoneとAndroidのアプリを作りましょう。私のアプリのスターターコード、ストア公開までの手順、すべてのキットが揃っています。￥17,500。

[診断：あなたとiPhoneアプリの間にあるもの](https://devoria.fr/ja/diagnostic)：7つの質問、60秒。iPhoneアプリの公開を本当に妨げているもの、4ステップのロードマップ、あなたに合ったキットがわかります。
