This app was removed from the App Store.

InjectionIII

InjectionIII

Mac OS Developer Tools

Free
Own Wish Buy Buy

InjectionIII adds a limited form of “Hot Reload” capability to your iOS, tvOS and macOS projects written in Swift or Objective-C. This allows you to change the implementations of methods in classes without having to restart your app.

To get started, install the app to /Applications and run it then, download the example project http://johnholdsworth.com/GettingStarted.zip and build and run it in Xcode. You’ll be promoted to select the directory containing the project file and sources by the menubar app to give it access to which files have changed. Once injection has connected, if you save a file, it will be recompiled and injected into the running app, the new implementations taking place of the old. In the GettingStarted iOS app, if you edit the file DetailViewController.swift to change the string appended after the detail.description in function configureView() then save the file, you can see it take effect straight away.

InjectionIII requires Xcode version 9.3 to work, installed at the standard location in /Applications. You need to add one of the following to your app’s startup:

#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle")?.load()
#endif

It’s limited in that it can only reload implementations of non-final, non-generic classes and not structs but in general it works quite well once you’re up an running.

Show More...

What's New

Now able to inject storyboards and .xibs if you edit them then build the app while it is running. The currently visible UIViewController will be reloaded and viewDidLoad called to apply changes. Usability improvements including a visual indication on inject and reduced chatter in logging. Don't mix code and storyboard injection or try to inject multiple view controllers at a time or you'll have to relaunch your app.

My Rating

App Store Rating