iOS natively supports JIT (by which we mean writable and executable memory) but Apple locks it down to only two use cases:
The JavaScript engine in Safari
Support for running a debugger
AltStore launches a debugger and connects it to your phone. Even though it’s not actually doing anything with a debugger, that’s enough to convince iOS to let your app use memory that’s both writable and executable (the key feature needed for JIT).
Without JIT you need to either resort to a slower form of emulation or do something creative.
iOS natively supports JIT (by which we mean writable and executable memory) but Apple locks it down to only two use cases:
AltStore launches a debugger and connects it to your phone. Even though it’s not actually doing anything with a debugger, that’s enough to convince iOS to let your app use memory that’s both writable and executable (the key feature needed for JIT).
Without JIT you need to either resort to a slower form of emulation or do something creative.