ガイド
iOS の JIT とは?StikDebug で JIT を有効にして Switch エミュ(MeloNX)を動かす方法【2026年10月】iOS 17・18・26 対応
ポイント
- JIT(実行時コンパイル)は、Switch のゲームの ARM コードを実行中に端末のコードへ翻訳する仕組みです。iOS はサイドロードしたアプリにデバッガーがつながっているときしか許さないため、MeloNX には StikDebug などのツールが必要です。
- 2026年10月時点で、StikDebug は iOS 17.4〜18.x に完全対応。iOS 26 以降も使えますが、開発者が対応したアプリに限られ、MeloNX は対応済みです。
- iOS 26 の TXM により、A15 以降の iPhone と M2 以降の iPad ではスクリプト(推奨は universal.js)が必要です。A12〜A14 と M1 の端末はデバッガーをつなぐだけで済みます。
- 初回のペアリングにはパソコンでペアリングファイルを作る必要があります(StikDebug 3.2.0 からは端末上でも作成可能)。以後はパソコン不要ですが、LocalDevVPN をオンにします。
- EU の AltStore PAL でも JIT 付きアプリは Apple の審査を通りません。「EU なら自動で JIT が使える」という話に信頼できる出典はありません。
目次
JIT(Just-In-Time、実行時コンパイル)は、エミュがゲームの実行中に Switch の ARM の機械語を端末で直接動くコードに翻訳する仕組みです。iOS はセキュリティ上、通常のアプリが実行可能なコードを生成することを禁じており、サイドロードしたアプリにデバッガーがつながっているときだけ許可します。そのため iPhone・iPad 向けの Switch エミュ MeloNX は、StikDebug などのツールで JIT を有効にする必要があります。2026年10月時点で、StikDebug は iOS 17.4〜18.x で安定して使えます。iOS 26 以降でも使えますが、開発者が対応したアプリに限られ、MeloNX は対応済みです。
Switch エミュに JIT が必要な理由
- Switch のゲームは ARM のコードです。エミュは 1 命令ずつ解釈して実行する(インタプリタ)か、先に端末のコードへ翻訳してから実行する(JIT)かのどちらかです。
- インタプリタは互換性はあっても非常に遅く、Switch クラスのゲームでは遊べません。MeloNX の公式もはっきり、JIT なしではまったく動かないとしています。
- JIT には「メモリにコードを書き込み、その領域を実行可能にする」ことが必要です。iOS は標準ではこれを許さず、デバッガーがつながっているときだけ許可し、そのためには開発用署名に付く get-task-allow 権限が要ります。
- App Store や TestFlight のアプリは get-task-allow を持てないので、JIT は使えません。Apple は 2024年4月からエミュの配信を認めていますが、JIT は認めていません。
- したがって流れは、Apple ID で MeloNX をサイドロード(get-task-allow が付く)→「端末上のデバッガー」である StikDebug をつなぐ → JIT が有効になる、です。
サイドロードとインストールは iPhone / iPad の導入ガイドをご覧ください。
iOS バージョン別の早見表
| iOS | JIT を有効にする方法 | 補足 |
|---|---|---|
| iOS 16 以前 | AltStore の AltJIT(パソコンの AltServer が必要)、SideStore 内蔵の JIT | — |
| iOS 17.0〜17.3 | SideJITServer など | StikDebug は非対応(接続方式が違う) |
| iOS 17.4〜18.x | StikDebug(完全対応・安定) | SideStore 0.6.2 以降の内蔵 JIT も使えます |
| iOS 26.x | StikDebug + スクリプト | 対応済みのアプリのみ。MeloNX は対応済み |
| iOS 27.x | iOS 26 と同じ | iOS 27.0 で全アプリの JIT が失敗するという報告あり。修正の公式説明はなし |
iOS 26 で難しくなった理由:TXM
iOS 26 では TXM(Trusted Execution Monitor) が導入されました。TXM のある端末では、JIT の権限があっても、アプリがコードを書き込んだメモリページは先にデバッガーが一度書き込まないと実行できません。「デバッガーによる書き込みが許可の証」というわけです。そのため iOS 26 の公開直後は、JIT がいったん完全に使えなくなりました。
解決には両側の対応が必要です。
- アプリ側:エミュの JIT 用メモリの確保方法を、StikDebug が公開している iOS 26 の JIT プロトコルに沿って書き換え、起動時に実行するすべての領域をデバッガーに渡して下準備してもらいます。
- StikDebug 側:対応するスクリプトを実行します。推奨は汎用の
universal.jsで、古いlegacy.jsは互換性のために残されているだけです。アプリが自前のスクリプトを持ち、URL スキームで StikDebug に渡すこともできます。
つまり、universal.js を選んでも、対応していないアプリで JIT が使えるようにはなりません。また許可はデバッグのセッションに紐づいているので、アプリを完全に終了したら、開き直すたびに許可し直しになります。許可できるのは起動時だけで、ゲームの途中からは有効にできません。
TXM あり・なしの違い
| 項目 | TXM なし | TXM あり |
|---|---|---|
| チップ | A12〜A14 の iPhone、M1 の iPad | A15 以降の iPhone、M2 以降の iPad |
| iOS 26 での JIT | デバッガーをつないで切り離すだけ。スクリプト不要 | スクリプトが必須で、アプリの対応も必要 |
| MeloNX への影響 | — | MeloNX が推奨する iPhone 15 Pro 以降はすべてこちら。全機種でスクリプトが必要 |
StikDebug とは
- StikDebug(旧名 StikJIT)は、idevice ライブラリを使った端末上で動くデバッガー兼 JIT 有効化ツールです。iOS 17.4 以降に対応し、初回のペアリング後はパソコンが不要です。
- 機能:get-task-allow を持つサイドロードアプリの JIT 有効化、アプリの起動、ログの表示、スクリプト(主に iOS 26 の JIT 用)、アプリの有効期限の確認、プロセス管理、位置情報のシミュレーション。
- App Store からは削除されています。公式の入手方法は AltSource、IPA の直接インストール、自分でのビルドで、いずれも公式プロジェクトページに載っています。
- 2026-10-30 時点の最新版は同日公開の 3.2.0 で、端末上でペアリングファイルを直接作成・管理できるようになりました。出たばかりの機能なので、実際の使い勝手はまだ確認されていません。
用意するもの:
| 項目 | 説明 |
|---|---|
| StikDebug 本体 | SideStore や AltStore などでサイドロード |
| ペアリングファイル | 端末とパソコンの信頼関係を記録したファイル(.plist / .mobiledevicepairing) |
| 再署名ツール | SideStore や AltStore など。無料の Apple ID の署名は 7 日で期限切れ |
| ループバック VPN | App Store の LocalDevVPN など。端末上のツールがパソコンにつながっているように振る舞うためのもの |
JIT を有効にする流れ(概要)
- MeloNX と StikDebug をサイドロードし、MeloNX が Apple ID 方式で入っていることを確認します(企業証明書で署名したものは get-task-allow を持ちません)。
- ペアリングファイルを用意します。公式ガイドではパソコンの iloader(Windows は iTunes、Linux は usbmuxd が必要)で「Manage Pairing File」を開き、StikDebug の横の Place を押します。Impactor でも配置できます。端末にはパスコードを設定し、ロックを解除してパソコンを信頼した状態で操作します。StikDebug 3.2.0 からは端末上で直接作ることもできます。
- LocalDevVPN を開いて Connect を押し、Wi-Fi に接続します。
- StikDebug を開いて Enable JIT を押し、一覧から MeloNX を選びます。
- iOS 26 の TXM 搭載機では、StikDebug の Scripts で
universal.jsを長押しし、既定にするか MeloNX に割り当てます。以後は毎回 StikDebug から MeloNX を起動します。 - MeloNX を完全に終了したら、もう一度 StikDebug から起動します。
端末を再起動するたびに、StikDebug はデベロッパディスクイメージ(DDI)をマウントし直すので、最初に開いたときは少し待ちます。OS の更新やリセットでペアリングファイルは無効になり、まれに理由なく使えなくなることもあります。その場合は作り直してください。
SideStore 内蔵の JIT
SideStore 0.6.2 以降には JIT を有効にする機能が内蔵されており(My Apps でアプリを長押し → enable JIT)、古い iOS や TXM のない端末で使えます。iOS 26 の TXM 搭載機では、引き続き StikDebug とスクリプトが必要です。SideStore のドキュメントにある iOS 26.6・27 で使えるアプリの一覧(2026-06-17 時点)には MeloNX が含まれており、「iOS 26 で JIT がまた壊れ、26.6 と 27 で使えるアプリはごく一部」と書かれています。
EU と日本
信頼できる出典で確認できたことだけを書きます。
- AltStore PAL は Apple が認めた代替アプリマーケットで、公式サイトには現在 EU・日本・ブラジルでのみ利用可能、VPN では地域を変えられないとあります。日本では iOS 26.2(2025-12-18)から代替アプリマーケットが解禁され、翌日に AltStore PAL が日本でも始まりました。
- PAL のアプリも Apple の公証を通る必要があり、Apple は JIT 付きのアプリを通さない立場です。Delta は App Store 版でも PAL 版でも JIT を外し、UTM は 2024年に PAL での公証すら通らず、のちに JIT なしの UTM SE だけを出しました。
- 2025年4月からは、EU のユーザーが AltStore PAL 経由で AltStore Classic を入れ、Classic で入れたアプリに StikDebug で JIT を有効にできるようになりました。9to5Mac は、EU で MeloNX がこの方法でフルスピードで動くと報じています。
- iOS 26・27 の TXM のルールは EU でも同じで、StikDebug、対応済みのアプリ、スクリプトが必要です。
- 「EU のユーザーは自動で JIT が使える」という話は、2026年10月時点で信頼できる出典がありません。当てにしないでください。
よくあるエラー
| エラー・症状 | 考えられる原因 | 対処 |
|---|---|---|
| Connection dropped、ループバックのエラー | 非対応の iOS、またはベータ版 | 上の対応表を確認 |
| Heartbeat エラー | VPN がオフ、Wi-Fi 未接続、またはペアリングファイルの問題 | LocalDevVPN をオンにして Wi-Fi に接続。だめならペアリングファイルを作り直す |
| ペアリングファイルが無効 | OS の更新やリセットで無効化 | ロックを解除しパソコンを信頼した状態で作り直す |
| Device Not Mounted | 再起動後に DDI がマウントされていない | StikDebug を強制終了して開き直す |
| 一覧に MeloNX が出ない | Apple ID 方式で入れていないため get-task-allow がない | Apple ID 方式のツールで MeloNX を入れ直す |
| JIT 有効と出るのにゲームが起動しない | iOS 26 でスクリプト未割り当て、またはアプリが古い | universal.js を割り当て、MeloNX と StikDebug を更新 |
| iOS 27.0 で E96 / BrokenPipe | 既知の報告で、修正状況は不明 | StikDebug の情報を待ち、更新は控える |
| ゲームの途中で JIT を有効にしたい | 許可は起動時にしかできない | 完全に終了し、StikDebug から起動し直す |
MeloNX 側に出るメッセージ(Waiting for JIT、JIT Not Acquired、メモリ権限、MeloNX Crashed! など)は MeloNX のエラー対処法 を参照してください。
StikDebug 3.1.12(2026-09-27)では iOS 26.4 未満の DDI の問題が直り、TXM 用スクリプトも改良されました。おかしな症状が出たら、まず StikDebug を最新版にしてください。Apple 端末全般の情報は iOS プラットフォーム、用語は用語集をご覧ください。
よくある質問
JIT とは何ですか?なぜ Switch エミュに必要なのですか?
JIT は実行時コンパイルのことで、エミュがゲームの実行中に Switch の ARM の機械語を端末で直接動くコードに翻訳します。JIT がないとインタプリタで 1 命令ずつ実行するしかなく、Switch のゲームでは遅すぎて遊べません。MeloNX の公式も JIT なしではまったく動かないとしています。iOS は通常のアプリにこれを許していません。
遊ぶたびにパソコンにつなぐ必要がありますか?
ありません。StikDebug がパソコンを必要とするのは、初回のペアリングでペアリングファイルを作るときだけです(3.2.0 からは端末上でも作成可能)。以後は LocalDevVPN をオンにして StikDebug で Enable JIT を押すだけです。ただし OS の更新やリセットでペアリングファイルが無効になるので、その場合は作り直します。
iOS 26 で StikDebug が JIT 有効と表示するのに、MeloNX が動きません。
iOS 26 以降、A15 以降の iPhone と M2 以降の iPad には TXM があり、StikDebug の Scripts で MeloNX にスクリプト(推奨は universal.js)を割り当て、毎回 StikDebug から起動する必要があります。そもそも iOS 26 の新方式に対応したアプリでないと動かないので、MeloNX と StikDebug を両方最新版にしてください。
EU のユーザーなら JIT の手間はかからないのですか?
いいえ。EU の AltStore PAL のアプリも Apple の公証が必要で、Apple は JIT 付きのアプリを通していません。2025年4月からは EU のユーザーが PAL 経由で AltStore Classic を入れ、StikDebug で JIT を有効にできるようになり、9to5Mac はこの方法で MeloNX がフルスピードで動くと報じています。iOS 26 の TXM のルールは EU でも同じです。
iOS 27 で JIT は使えますか?
2026年10月時点ではっきりしません。StikDebug の不具合報告には、iOS 27.0 ですべてのアプリの JIT が失敗する(E96 / BrokenPipe)という報告がありました。報告はクローズされていますが、修正済みかどうかの公式説明はありません。JIT に頼っているなら、StikDebug と MeloNX の最新情報を確認してから更新してください。
StikDebug は App Store で入手できますか?
できません。App Store からは削除されています。公式の方法は AltSource の追加、IPA の直接インストール、自分でのビルドのいずれかで、公式プロジェクトページに載っています。転載された「StikDebug 配布サイト」は公式ではない可能性があります。
出典
- StikDebug(公式プロジェクトページ)
- StikJIT: INTEGRATION.md(iOS 26 の JIT プロトコル)
- StikDebug Guide: Pairing File
- SideStore Docs: Enabling JIT
- AltStore Docs: Enabling JIT(AltStore Classic)
- AltStore 公式サイト
- 9to5Mac: AltStore PAL と Switch エミュ、JIT(2025-04-19)
- heise: Game emulators for the iPhone: The obstacles Apple puts in the way
- Daring Fireball: UTM の公証が拒否(2024-06-18)
- MacRumors: AltStore が日本で提供開始(2025-12-18)
- Emulation General Wiki: Emulators on iOS
- MeloNX 公式サイト