InjectionIII is a hot-reloading tool for Swift development that enables code injection into running iOS simulator instances without full rebuilds.
The tool solves the iteration problem in iOS development by allowing developers to update function and method implementations incrementally while the app runs in the simulator. It works by recompiling edited source files into a dynamic library that gets loaded into the running application, effectively transforming Xcode from a source editor into a program editor where changes flow directly into the executing program. The mechanism relies on extracting compiler invocations from Xcode build logs and uses linker interposing to redirect old implementations to new ones.
Adoption requires adding startup code to your app and configuring linker flags with `-Xlinker` and `-interposable` options in Debug build settings. The tool works with the iOS simulator and macOS. One consideration is that injected code changes only take effect when that code path is actually executed, so view controllers and similar components may need to implement an optional `injected()` callback method to trigger screen updates. The README mentions the Inject Swift Package as an alternative approach to hosting that can complement injection workflows. Recent Xcode versions require an additional user-defined build setting to maintain compatibility.
The project maintains active engagement with compatibility issues, as evidenced by documented workarounds for Xcode version changes. Development appears responsive to platform evolution, with explicit guidance provided for adapting to new Xcode behavior rather than abandoning the approach.