Simject: The Ultimate Tool for Testing iOS Tweaks on Simulator (Xcode)

Simject is designed to help iOS developers test their app tweaks in a simulated environment, making development more efficient. This guide will walk you through what Simject is, how to set it up, and how to use it, ensuring you can leverage this tool effectively, running it with Xcode on macOS.
What is Simject?
Simject is a powerful open-source tool designed for iOS developers and jailbreak tweak enthusiasts. Created by akemin-dayo, this tool enables seamless injection of tweaks into the iOS simulator, eliminating the need for physical devices during the early stages of development.
With Simject, you can test and debug your tweaks in real time using Xcode’s simulator, streamlining your workflow and saving valuable time. Using it, you don't need to run your development project directly on a jailbroken device. It's a must-have if you think about tweak development for iOS devices.

Whether you're building a custom UI modifier, a system tweak, or experimenting with hooking functions, Simject bridges the gap between theory and reality. It’s compatible with macOS and integrates smoothly with popular development tools like Theos, making it a must-have for anyone in the jailbreak community.
Once set up, you can load your tweak files into the simulator using Simject and use a command called resim to refresh and test your changes. It’s especially handy for developers working on multiple projects, as it supports testing on different simulator versions. An unexpected detail is that there might be differences in behavior between the simulator and real devices, so final testing on physical devices is still recommended.
How to install simject on macOS
Getting started with Simject is straightforward, but it does require a bit of setup. First, you’ll need to download and install Xcode from the Mac App Store, as it provides the iOS simulator and essential development tools. Next, make sure to configure Theos, the popular framework used for building iOS tweaks. Finally, you’ll need to clone the Simject repository from GitHub using Terminal.
If you’re new to any of these steps or need more detailed instructions, the simject documentation is a great resource. It covers everything from installation to troubleshooting, ensuring you’re ready to start testing tweaks on the simulator in no time.
Follow these steps to set up simject on your macOS device:
Prerequisites:
- Xcode installed (with Command Line Tools).
- Theos configured on your system.
- An iOS simulator set up via Xcode.
Step 1. Clone the Repository
Open Terminal and run:
git clone https://github.com/akemin-dayo/simject.git
cd simject
Step 2. Install Dependencies
Use the included setup script to install frida-core
and other required dependencies.
sudo make setup
Step 3. Configure Theos
Add Simject’s directory to Theos environment variables. In your ~/.bashrc
or ~/.zshrc
, add:
export SIMJECT_DIR=/path/to/simject
Step 4. Prepare Your Tweak
Create a new Theos tweak or modify an existing one. Ensure your Makefile
includes:
ARCHS = x86_64
TARGET = simulator:clang:latest:latest
Step 5. Load the Tweak into Simulator
Build your tweak and run:
make install
Launch the iOS simulator, and your tweak will load automatically!
FAQ
While Simject significantly accelerates early-stage development by allowing tweak testing on the iOS simulator, it should not fully replace testing on a physical jailbroken device.
Simject officially supports iOS 13 and newer simulators, as older iOS versions (e.g., iOS 12 or below) use outdated binary architectures and frameworks that aren’t compatible with modern Xcode tools.
Yes! Simject runs natively on Apple Silicon Macs (M1/M2) without requiring Rosetta translation. This ensures faster build times and smoother tweak injection compared to Intel-based systems.
Absolutely. Simject injects all tweaks placed in its designated directory (usually simject/projects) into the simulator simultaneously. This lets you test interactions between multiple tweaks in real time.