ipasim
This repository contains source code of ipasim
, an iOS emulator for Windows.
It takes a compiled iOS application and emulates it. However, only the
application's machine code is emulated, whereas system functionality originally
provided by iOS is translated to an equivalent functionality available on
Windows. More detailed documentation is available.
Project status
Currently, only simple applications can be emulated. Working samples can be
found in folder samples
. For more information about (un)implemented
features, see author's thesis, its Conclusion in
particular.
Alternatives
- touchHLE (2023)
Cloning the repository
We use Git Submodules
(recursively), so make sure you clone with --recurse-submodules
. We also use
Git LFS, so make sure you have that installed if
you want to get all files. You might also want to use --depth 1
for a faster
checkout.
Building and installation
If you want to use the emulator, you can either build it from sources (that's slow), use partially prebuilt artifacts (that's fast and recommended if you want to make changes; however, you still need to have Docker and Visual Studio installed) or just use prebuilt binaries (recommended if you don't want to make changes).
Directory structure
deps
contains third-party dependencies (mostly as Git submodules because patching was necessary).docs
contains documentation and issues.include
has C++ headers of the project.samples
contains sources of sample iOS applications and some other samples.scripts
contains various scripts, mostly supporting build of the project.src
contains C++ sources of the project.- HeadersAnalyzer is a tool that runs at compile-time, generating supporting code for the emulator.
- IpaSimulator is the emulator itself.
- objc contains our port of Apple's Objective-C runtime to Windows.
Executive summary
Research
- iOS emulator for Windows, a bachelor thesis of Jan JoneΕ‘.