gitwtfhub

wtf is injectionforxcode?

kzaher/injectionforxcode — explained in plain English

Analysis updated 2026-08-03 · repo last pushed 2017-01-10

3Objective-CAudience · developerComplexity · 3/5DormantLicenseSetup · moderate

TL;DR

An Xcode plugin that lets iOS and Mac developers change code and see results instantly without rebuilding the app. It recompiles individual files and swaps in the new code at runtime for faster iteration.

Mindmap

mindmap
  root((repo))
    What it does
      Instant code injection
      Recompiles single files
      Swaps code at runtime
    Use cases
      Tweak UI layout
      Adjust colors fast
      Tune animation timing
    Limitations
      No structs or globals
      Needs object references
      Swift final private blocked
    Audience
      iOS developers
      Mac developers
      Xcode users
    Distribution
      Nagware model
      Free two week trial
      Donation requested

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Adjust UI layout and colors without recompiling your entire iOS or Mac app.

REASON 2

Fine-tune animation timing by injecting code changes and seeing results instantly.

REASON 3

Experiment with tunable parameters quickly using automatic file-watch injection on save.

What's in the stack?

Objective-CSwiftXcode

How it stacks up

kzaher/injectionforxcodemustangym/kscrashaonez/macreflower
Stars321
LanguageObjective-CObjective-CObjective-C
Last pushed2017-01-102020-11-272016-11-27
MaintenanceDormantDormantDormant
Setup difficultymoderatemoderatemoderate
Complexity3/53/52/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires installing a plugin into Xcode and ensuring Swift methods are not marked final or private for injection to work.

Free to try for two weeks as nagware, but asks for a donation to continue using afterward.

Wtf does this do

Injection for Xcode is a plugin that lets you change your app's code and see the results immediately, without restarting the app. If you have ever waited through a slow build cycle just to test a small visual tweak, this tool eliminates that wait. You edit a file, press a keyboard shortcut, and the new code takes effect in your running app on the spot. Under the hood, the plugin watches your build logs to figure out how a file was originally compiled. When you make a change, it recompiles just that file and packages it into a bundle that gets loaded into the running app. At that point there are two versions of your class in memory. The tool swaps the old version's behavior for the new one using a technique that takes advantage of how Objective-C and certain Swift classes resolve method calls at runtime. For Swift, this works well as long as your methods are not marked as final or private, but it cannot inject changes to structs or global functions. This tool is for iOS and Mac developers who work in Xcode and want to iterate faster. A practical example would be adjusting the layout, colors, or animation timing of a screen. Instead of recompiling the entire project and navigating back to that screen each time, you can tweak the values, inject the code, and instantly see the update. It also supports a file watcher mode that automatically injects changes whenever you save a file, and it can handle tunable parameters for quick experimentation. One notable aspect of the project is how it finds the right objects to update. It sweeps through the app's memory, starting from the app delegate and windows, recursively following references to locate instances of the class you just changed. This approach has limitations: if it cannot find a reference to your object, the injection callback will not fire. The project is also distributed as nagware, meaning it is free to try for two weeks but asks for a donation afterward.

Yoink these prompts

Prompt 1
Help me set up Injection for Xcode in my iOS project so I can tweak my UI without rebuilding the app every time.
Prompt 2
My Injection for Xcode callback is not firing when I inject a class. How does the tool find object references and what could cause it to miss my object?
Prompt 3
I am trying to inject a Swift class but it is not working. What are the limitations for Swift, and which method modifiers break code injection?
Prompt 4
Set up a file watcher mode with Injection for Xcode so that every time I save a file, the code is automatically injected into my running app.

Frequently asked questions

wtf is injectionforxcode?

An Xcode plugin that lets iOS and Mac developers change code and see results instantly without rebuilding the app. It recompiles individual files and swaps in the new code at runtime for faster iteration.

What language is injectionforxcode written in?

Mainly Objective-C. The stack also includes Objective-C, Swift, Xcode.

Is injectionforxcode actively maintained?

Dormant — no commits in 2+ years (last push 2017-01-10).

What license does injectionforxcode use?

Free to try for two weeks as nagware, but asks for a donation to continue using afterward.

How hard is injectionforxcode to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is injectionforxcode for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.