How to Enable JIT on iPhone (2026)

You installed a GameCube emulator on your iPhone, opened a game, and it runs like a slideshow. Every thread says the same three words: enable JIT. Then half the guides promise you can do it with no computer at all, and the other half open with “first, plug your iPhone into a Mac.”
Both are sort of right, which is why this is confusing. Here is the whole picture: what JIT is, what genuinely needs a computer and how many times, how the setup works in 2026, and — the part almost nobody covers — which emulators actually need JIT and which ones never did.
What JIT is, and why iOS keeps it locked
JIT stands for just-in-time compilation. An emulator has to turn another console’s instructions into instructions your iPhone’s chip understands. It can do that one instruction at a time as it goes — that is an interpreter, and it is slow — or it can translate whole chunks ahead, cache the result, and reuse it. That second approach is JIT, and for demanding consoles it is the difference between a slideshow and a game.
The catch is that JIT means writing new executable code into memory while the app runs. iOS treats that as a security boundary and hands out the permission only under one condition: a debugger is attached to the app. Normally that debugger lives on a Mac or PC connected over USB, which is exactly where the “you need a computer” reputation comes from.
Apple opened the App Store to retro game emulators in 2024, but it did not open up JIT along with it. That is why the emulators you can download officially stay in the lightweight tier, and why the heavy consoles still live on the sideloading side.
The honest answer to “no PC needed”
You need a computer exactly once, and not for JIT itself.
What the computer produces is a pairing file — a small trust credential that says “this device and this computer know each other.” You generate it once with a tool like iDevice Pair or JitterbugPair, on Windows, macOS or Linux, and copy it to your phone. That file is what lets your iPhone later pretend a trusted computer is present.
After that, no computer. The on-device debugger and a loopback VPN take over, and enabling JIT becomes a tap you do on the phone. So the guides promising “no PC” are describing the steady state accurately and skipping the setup; the guides telling you to plug into a Mac are describing the setup and implying it is forever. Neither is lying, and neither tells you the shape of the thing.

The setup, step by step
Three pieces do the work together, and people usually confuse them because all three get called “the JIT thing.”
- StikDebug (formerly StikJIT) is the debugger — the app that attaches to your sideloaded app and actually flips JIT on. It is free and open source, on version 3.1.9 at the time of writing.
- A loopback VPN such as LocalDevVPN or StosVPN is the network path StikDebug talks over. It routes to your own device, not to any remote server. It is not a JIT enabler by itself — it is plumbing.
- A sideloading tool — SideStore or AltStore — is what installed the app in the first place and keeps it signed.
The flow:
- Generate your pairing file on a computer and put it on the phone. Once.
- Install StikDebug and the loopback VPN, and connect the VPN.
- Open StikDebug once so it mounts the developer disk image, then force-close and reopen it.
- Before each launch of the app you want accelerated, open StikDebug and enable JIT for it.
Step 4 is the part that surprises people. JIT is not a switch you flip once and forget — it does not survive the app being closed. Every session starts with the same small ritual. If it fails to stick, the usual suspects are the VPN not being connected and the pairing file having gone stale.
We wrote a separate deep-dive on the tunnel half of this if you want the detail: LocalDevVPN and how SideStore does JIT without a PC.
Where JIT stands on your iOS version
This matters more than any step above, because the answer changed recently and most guides have not caught up.
iOS 17.4 through 18.x — the stable era. StikDebug plus a loopback VPN works, and it works broadly. If you are here, the instructions above are simply true.
iOS 26.0 and up — narrowed sharply. The old approach, where an app carrying the right entitlement could be granted JIT generically, is gone. Now each app has to add explicit support for a new JIT method, so JIT works only with the short list of apps whose developers have done that work. StikDebug’s own documentation puts it plainly: support on iOS 26 is limited, and developers need to update their apps. iOS 26.4 briefly broke things further before StikDebug 3.1 restored function for most users.
iOS 27 — same regime as 26, with individual apps still catching up.
The practical read: on modern iOS, JIT is a narrow per-app feature, not a general capability you unlock once. Before you build the whole setup, check whether the specific app you care about supports it on your specific version. On our side, DolphiniOS build 5.0.0b1 was the one that added iOS 26 JIT support, and it requires StikDebug 2.3.0 or newer — older enabler versions crash it rather than accelerating it. The current 5.0.0b6 build fixed JIT on A13, A14 and M1 devices under the iOS 27 beta.
Two completely different things are called “JIT”
This trips up more people than the pairing file does.
The JIT described above is system-level: iOS granting an app permission to generate code. Separately, several emulators have their own internal JIT settings — a CPU core option, a “shader JIT” toggle — that live in the emulator’s own settings screen and have nothing to do with StikDebug, pairing files, or Apple.
So when a guide tells you to “turn on JIT in settings,” check which one it means. If the toggle is inside the emulator, it is the emulator’s own translation setting and no external tooling is involved. If it involves a separate app and a VPN, that is the iOS-level one. Same word, different layers, and doing the wrong one produces no result and a lot of frustration.
Which emulators actually need it
Here is the part worth reading before you set anything up, because for three of the four emulators on our shelf, the answer is “you don’t have to.”
This is the one that genuinely asks for it. GameCube and Wii are heavy enough that playable speed depends on JIT, and DolphiniOS says so up front. Without it, the emulator still runs — it falls back to a Cached Interpreter — just slower. This is the app the whole guide above is really for.
PPSSPP sits in the middle. On iOS without JIT it uses its IR Interpreter, a CPU core the PPSSPP project describes as faster than the plain interpreter and slower than JIT. Plenty of the PSP library is comfortable there. JIT helps, but “PPSSPP needs JIT” overstates it.
Delta does not request a JIT entitlement at all and does not need Developer Mode, which is precisely why it is the easiest emulator on iPhone to live with. Its developer has noted that JIT would roughly double the ceiling on melonDS fast-forward speed — from 1.5x to 3x — but that is a fast-forward ceiling, not normal play. Install it and go.
emuThreeDS is the textbook case of the confusion above. Its listing advises keeping the JIT option enabled in settings — and that is the emulator’s own setting, in its own settings screen. It is not StikDebug, and it does not need a pairing file. Performance is best on iPhone 13 and newer.
More on how these four compare: GameCube, 3DS and PSP emulators on iPhone, and a closer look at DolphiniOS and emuThreeDS.

When to skip the whole layer
Step back and look at what the JIT setup is made of: a pairing file from a computer, a VPN app, a debugger app, a per-launch ritual, and a compatibility question that changes with every iOS release. That is a lot of scaffolding, and it is worth it for exactly one thing — running GameCube and Wii at full speed.
It is also only half the maintenance. The other half is signing: free sideloading tools re-sign apps every seven days, so even after JIT works, the app itself expires on a timer. That part is a separate chore with its own fix.
That second half is the one builds.io removes. Apps install from Safari and stay signed for as long as your subscription runs — no seven-day refresh, no rebuild after an iOS 27 update, and a replacement certificate issued for you if one gets revoked. JIT stays what it is: a narrow concern for a couple of demanding emulators, which most of the catalog never needed in the first place.
So the honest summary. If you want GameCube on your phone, build the setup — it is real, it works, and it costs you one computer session up front. If you just want emulators and tweaked apps that install easily and keep working, check which of them actually needs JIT first. For most people, the answer turns out to be none of them.