Screenshots

Description

Quite simply, InjectionIII adds "Hot Reloading" capability to your iOS, tvOS and macOS projects written in Swift or Objective-C. This allows you to change the implementations of methods, functions and SwiftUI body properties without having to restart your app for rapid iteration over minor code changes and design.

To get up and running, install the app to /Applications and run it then, download the example project http://johnholdsworth.com/GettingStarted.zip, build and run it in Xcode. You’ll be promoted to select the directory containing the project file and sources to give InjectionIII access to which files have changed. Once injection has connected, when 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 a version of Xcode more recent than 10.2, installed at the standard location /Applications/Xcode.app. For a project to be injectable, you must also add "-Xlinker -interposable" to the Debug target of its "Other Linker Flags" build setting. Then, add one of the following to your app’s startup to connect to InjectionIII:

Xcode 10.2 and later:

#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

If your project is organised across multiple directories, after you have selected the main project, you can add directories to be watched for file changes using the "Add Directory" menu item. This list resets when you select a new project. You'll need to turn sandboxing off to be able to use injection on a macOS application. Consult the project README on the support page for more information.

What’s New

Version 2.2.0

This is a significant update to InjectionIII which now allows you to inject the implementation of any Swift method or function. For this to work you must add "-Xlinker -interposable" to the Debug target of your project's "Other Linker Flags" in build settings. Injecting SwiftUI body properties also works but you need to be careful to erase the Content type as described in the README on the support page.

Ratings and Reviews

Sasan Angel ,

This app is GREAT

I Wish I've found this app sooner.

VincentXue ,

Thank you.

What a blush for the Xcode team.

cissu ,

thanks for your work

five stars and thansk for your work!

Developer Response ,

Thanks cissu,

That means the world to us :)

/C

Information

Seller
Christoffer Winterkvist
Size
6.6 MB
Compatibility

macOS 10.12 or later, 64-bit processor

Languages

English

Age Rating
4+
Copyright
Price
Free

Supports

  • Family Sharing

    With Family Sharing set up, up to six family members can use this app.