Enable JIT on iOS 17 Using SideJITServer: Full Tutorial

SideJITServer is the easiest way to enable JIT on iOS 18 for emulators and performance-heavy apps. This powerful tool works wirelessly through your local network, letting you activate Just-In-Time compilation from any Windows, Mac, or Linux computer. Developed by nythepegasus of the SideStore team, SideJITServer bypasses Apple's restrictions to boost app speed without jailbreaking your iPhone.
SideJITServer is a Python script designed to be executed within a Python environment on your desktop. As of its latest release, it mandates the following component versions: `pymobiledevice3>=4.2.3,<4.3.0`, `Flask==3.0.2`, and `zeroconf==0.132.2`. Attempting to use different versions of these components may result in errors when running SideJITServer. Therefore, it's crucial to adhere to these specified versions to ensure optimal functionality.
What is SideJITServer and Why Use It for iOS 17?
SideJITServer, developed by nythepegasus from SideStore, is a tool that enables Just-In-Time (JIT) compilation on iOS 17.0 – iOS 18.3 for all devices that support it. It works similarly to Jitterbug, which allows one iOS device to launch apps with a debugger on another iOS device with JIT enabled.
This tool runs from the command line (Terminal) and supports both Linux and Windows. Since it's written in Python, you can technically run it on any Linux distribution. It relies on the pymobiledevice3 library, so you'll need to have that installed.
SideJITServer isn’t just useful for emulators like DolphiniOS and Delta — it also works with virtualization apps like UTM for iOS. This means you can run full Linux or Android environments on your iPhone, much like VirtualBox.
What Does JIT Mean for iPhones?
JIT (Just-In-Time) compilation is a technology that helps apps run faster by translating code into machine language while the app is running. Instead of compiling everything in advance, JIT compiles only the necessary parts of the code as you use them. This makes apps, especially virtualization or emulators, and high-performance games run smoother and faster on your iPhone.
However, Apple restricts JIT for most third-party apps due to security concerns. By default, iOS only allows JIT in Safari for better web performance. For other apps, like emulators, you need special methods to enable JIT, such as using SideJITServer or sideloading with a developer certificate.
Part 1. Installing SideJITServer
Step 1. Create a virtual environment named "venv" using Python to use an isolated environment for the Python project.
python3 -m venv venv
Step 2. Install SideJITServer following the pip3 installation command for the package.
pip3 install SideJITServer
Step 3. Install pymobiledevice3, the python3 implementation of various tools for iDevices. It's recommended to use the latest version of pymobiledevice3 <4.3.0.
python3 -m pip install -U pymobiledevice3
Step 4. Execute the launch command to see if SideJITServer is installed on your Desktop. Additionaly open the http://127.0.0.1:8080 in your browser to view if the device is paired.
SideJITServer --help

Part 2. Prerequisites for Enabling JIT with SideJITServer
Step 1. Connect your iOS 17 device to your computer and execute the following command to pair it. Next, grab your iPhone and continue the next steps.
SideJITServer --pair

Step 2. On your iPhone's Home Screen, a 'Trust This Computer?' popup will appear. Tap on trust and provide your PIN to allow connection between the PC and iDevice.

Step 3. Run SideJITServer to start the server on your computer. It may require a sudo command. In this case, enter your password when prompted.
SideJITServer

Step 4. Add this Shortcut required to detect and run apps in JIT mode.
Step 5. Tap on 'Set Up Shortcut' from your device's screen.

Step 6. Provide your device's UDID. It can be easily discovered by entering this IP http://127.0.0.1:8080 in your browser. Example UDID "00022010-001A5BC60CS9012X".

Step 7. Next, enter your server address. It will be displayed in the terminal app running SideJITServer. It's important to provide the full URL address including http and port.
http://192.168.0.241:8080

Part 3. Step-by-Step Guide to Enable JIT on iOS 17/18
Step 1. Be sure that SideJITServer is running on your Desktop. If it's installed correctly, you will see the paired device UDID in your browser. Open the Shortcuts app from your iOS 17 Home Screen and tap on the SideJIT previously added shortcut.

Step 2. Allow SideJIT to connect to "192.168.0.241".

Step 3. SideJIT will display a list of all installed apps on iOS 18 with support for JIT. Select the one you like to open in JIT mode.

Step 4. The application should open in JIT-enabled mode on iOS 18.

FAQ
Yes! SideJITServer is compatible with iOS 17 and iOS 18.3. To enable JIT on newer iOS versions, ensure you download the latest SideJITServer shortcut from its official GitHub repository.
If the SideJITServer shortcut fails, check your internet connection, verify that Untrusted Shortcuts is enabled in Settings, and reinstall the shortcut from a trusted source.
SideJITServer is open-source and safe when downloaded from its official GitHub page. Avoid third-party links to prevent security risks.
Comments
Amy 8 months ago
Hello I’ve been following this tutorial but keep running into a problem when I try to run the server with ‘sudo SideJITServer’. I get the ERROR 48, error while attempting to bind on address, address already in use
On the bottom it also says Pymobiledevice3.exceptions.DeveloperModeIsNotEnabledError ()I already have developer mode turned on for my Mac computer. Please help I don’t know how to fix it.
qbap 8 months ago
Use Activity Monitor to shut down the previous Python process to fix the address already in use or restart the Mac. Update the scripts. New versions of SideJITServer and pymobiledevice3 are released almost daily. Use pymobiledevice3 to enable/disable developer mode or query its state on your iPhone. Find what process is using the port 49151 and kill it. Repeat all steps from the article.