Injectionforxcode - Runtime Code Injection for Objective-C & Swift

Overview

Icon Injection Plugin for Xcode

Copyright (c) John Holdsworth 2012-19

TLDR:

Xcode is an integrated development environment (IDE) for macOS containing a suite of software development tools developed by Apple for developing software for macOS, iOS, iPadOS, watchOS, and tvOS. Injection for Xcode is an Xcode plugin (available via Alcatraz) or AppCode that dynamically inserts new Swift / Objective-C code into a running app in order to speed up your build process. It does this without making any changes to your project.

An up-to-date overview by Rob Norback of how to incorporate it into your workflow is here

This repo is no longer maintained. The current version of Injection is InjectionIII in the Mac App Store.

Injection Example

Announcements of major additions to the project will be made on twitter @Injection4Xcode.

Stop Press

If you know the trick which I won't detail here plugins still load in Xcode 8 GM and injection has been updated for it and Swift 3. Patched injection works fine and unpatched injection works if the "InjectionLoader" bundle is codesigned for the simulator. This is done in a "Run Script" build phase in this project if you need to update the code signing identity to dis-ambiguate it. Please raise issues with any problems or look at this blog. One thing I have noticed is you can no longer add methods using injection which was proably never a particularly good idea in Swift.

Stop Stop Press

Injection is now available as a standalone app rather than have to build the plugin which you can download here. As injection no longer works on the deivce due to sandboxing in iOS10 this is the recommended route going forward. For more information consult the FAQ.

For TDD, there is a interesting fork of the injection plugin you can download here. It runs all tests covering a source file each time you inject. It's on the 'tdd' branch.

How to Use Injection for Xcode

For installation and usage for AppCode see below. If you're a visual learner, you may appreciate this video post from @Orta covering the basics.

With Xcode, either install via Alcatraz, or install by cloning this repo and build InjectionPluginLite/InjectionPlugin.xcodeproj. If you are building locally, note that you need to restart Xcode to load the plugin. A popup should appear asking to confirm loading a plugin not signed by Apple, that signals that the plugin is set up.

The plugin can be removed either via Alcatraz, or by running: rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin

Simple Proof of Concept Once Installed

Once it is installed, compile and run a project as normal. From here you should take any class that would exist when your app is loaded, add a new function - injected and add a breakpoint on that line.

- (void)injected
{
    NSLog(@"I've been injected: %@", self);
}

or

@objc func injected() {
    print("I've been injected: \(self)")
}

Then press ctrl+=, and you'll see Xcode stop at the breakpoint. You've just injected new code into a running app. Awesome right?

Callbacks in Your Code

You can build on top of Injection from three callbacks:

  • - (void)injected as an instance method, which gives you the chance to re-update an object with new contexts.
  • + (void)injected as a class method, making it possible to update globals with new information
  • Listening for INJECTION_BUNDLE_NOTIFICATION, allowing other classes to listen out for injection calls, this is useful for providing app level changes.

If you are interested in diving even deeper into callbacks, check out Tunable Parameters.

Tunable Example

Swift Support

Swift support works great when working with a collection of classes. However, there are a number of cases where re-injection won't work elegantly with Swift:

  • Making changes to Structs.
  • Changing func or classes that are marked as final.
  • Global func or variables that are not constrained into a class.
  • Compiler optimisations can stop injection working. If so, build DEBUG.

In day-to-day development against Cocoa/UIKit, it's rare, but possible to hit these cases, for more information see What Happens With Swift?

How it Works

Injection for Xcode is an extension to the Xcode IDE that allows you to patch the implementation of a class's method without having to restart the application.

It performs this by parsing the build logs of the application to determine how a source file was last compiled. With this it wraps the result of re-compiling into a bundle which is injected into the application using the dynamic loader. At this point there are two versions of a class in the app, the original and a new modified version from the bundle. The modified version is then "swizzled" onto the original class so changes take effect.

This swizzling takes advantage of the fact that Objective-C binds method invocations to implementations at run time. This can also be performed on Swift classes provided that the method or class is not final or private (i.e. the method can be overridden) by patching the class' "vtable". This excludes the injection of methods of structs.

What Else Does This Plugin Do?

  • It has file watcher that can inject when a file is saved from whichever editor you use. Enable this in the preferences pane accessed on menu item "Product/Injection Plugin/Tunable Parameters": "File Watcher".

  • There is support for working specifically with Storyboard-based iOS projects.

  • The plugin offers a way to quickly change a collection of tunable parameters

  • Xcode is given a badge, showing the number of active Injection connections to apps.

  • When you start using Injection, a new Xcode Project is added to the same folder as your project (either iOSInjectionProject or OSXInjectionProject.) This is the xcode project base for the changes which are injected into your project, it is recommended to add this to your .gitignore.

  • Each time a project is injected, injectionCount.txt in the injection project's directory (above) is incremented. This can give you a sense of how much time you save (number of injections * amount saved per injection = a happier you).

  • The injection key command can be customised from ctrl+= in the "Tunable App Parameters" panel.

  • Works on a device, if you apply a patch to your project..

  • Perform unit tests that cover your Swift class/struct/enum. For details see TDD with Injection for Xcode

What Happens with Swift?

Icon

Swift, presents a few more stumbling blocks for the uninitiated. Provided that methods are of a non final class and are non final (this excludes structs alas) they can be injected. In this example the sharedInstance variable is declared static rather than "class" to make sure it is not injected to ensure there is only ever one singleton. For the "injected" methods to work your class must inherit from NSObject.

More problematic is the more common use of variables or functions outside a class which are referred to across the files of a bundle. Swift 1.2+ takes the view these "internal" scope symbols should not be available across bundles and are made "private extern" in their object file making them unavailable at run time. This means that the above code will inject but injecting another file referring to the dispatch_on_main function will fail with obscure dynamic loading errors.

The simplest solution is to make these variables and functions public though, for a framework, this may be unsatisfactory. The alternative is to patch the object files of the project to remove the private extern flag and relink the bundle. In order to do this a script ~/bin/unhide.sh is created by the plugin build which should be called as an additional "Run Script" build phase after linking your app to perform this patch and relink.

Use with AppCode

Injection can be used from inside AppCode provided the application has been patched and you have previously injected that project from inside Xcode to set up a link to the build logs.

To install, download the jar file InjectionPluginAppCode/Injection.jar from this repo and go to AppCode preferences, choose "Install plugin from disk" and locate the .jar. Then restart the IDE. Now you will get new menu options under the Run menu. You’ll need to re-patch the project from inside AppCode as it uses a different port number to connect.

Limitations of Injection

There are limitations of course, largely centering around static variables, static or global functions and their Swift equivalents. Consider the following Objective-C code.

Icon

  • One potential problem is when the new version of the class is loaded, it comes with it's own versions of static variables such as sharedInstance and the once token. After injection has occurred, this would generate a new singleton instance.

    To prevent this, class methods with the prefix "shared" are not swizzled on injection to support this common idiom.

  • It can be tough to look through all of the memory of a running application. In order to determine the classes and instances to call the injected callbacks on, Injection performs a "sweep" to find all objects in memory. Roughly, this involves looking at an object, then recursively looking through objects which it refers to. For example, the object's instance variables and properties.

    This process is seeded using the application's delegate and all windows. Once all the in-memory reference are collected, Injection will then filter these references to ones that it has compiled and injected. Then sending them the messages referenced in the callbacks section.

    If no references are found, Injection will look through all objects that are referred to via sharedInstance. If that fails, well, Injection couldn't find your instance. This is one way in which you may miss callbacks in your app.

  • The function dispatch_on_main does not inject, as it has been statically linked into the application. It does however, inject by proxy in the case shown via the doSomething method. dispatch_on_main will have been linked locally to a version in the object file being injected.

Comments
  • 128 swift sources">

    "Learnt Compile Failed" after Xcode 7.3 for targets with > 128 swift sources

    Hi, I am getting this error after updating to Xcode 7.3

    injecting_class.o 

***

    Learnt compile failed ***

 at /Users/Diego/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/common.pm line 57.
 main::error('Learnt compile failed') called at /Users/Diego/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/injectSource.pl line 349
*** Bundle build failed ***


    There doesn't seem to be any sign of an error in the stack trace apart from a fairly comprehensive list of files

    Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -filelist ... list of files

    Any clues on this? Thank you very much.

    opened by diegomontoyas 48
  • Keyboard shortcut not working

    Keyboard shortcut not working

    The keyboard shortcut to Inject Code is not working within Xcode 8.2.1.

    I have set it to Cmd+Shift+\ in System Preferences -> Keyboard -> Shortcuts -> Services against Inject Code but Xcode doesn't react when I am using the shortcut.

    I tried restarting Xcode to no avail. In Xcode -> Services menu it says No Services Apply.

    I am using the standalone Injection app on MacOS 10.12.2

    What is the magic to make it work?

    opened by vbklv 35
  • Injection App won't work on iOS 10 simulator

    Injection App won't work on iOS 10 simulator

    I'm sorry if I couldn't gather this from the docs, but does code injection not work anymore in iOS 10? Is it simply not possible to use the standalone Injection app for iOS 10 projects?

    opened by saoudrizwan 23
  •  Could not locate compile command for

    Could not locate compile command for

    Hello, I have an error here, he can't work, can you help to check, thank you

    Could not locate compile command for /Users/looha/Desktop/complete/mba/Sources/Modulars/QuesBank/ViewController/QuesSubjectViewController.swift. This could be due to one of the following:

    1. Injection does not work with Whole Module Optimization.
    2. There are restrictions on characters allowed in paths.
    3. File paths in the simulator paths are case sensitive. Try a build clean then rebuild to make logs available or consult: "/var/folders/bb/fyzc35s15bqdkss8pqb4fbcr0000gn/T/com.johnholdsworth.InjectionIII/command.sh".

    com.johnholdsworth.InjectionIII/command.sh

    // search through build logs, most recent first cd "/Users/looha/Library/Developer/Xcode/DerivedData/WEApp-hewpwktgjofkyngdormxeiqznpfe/Logs/Build" && for log in ls -t *.xcactivitylog; do #echo "Scanning $log" /usr/bin/env perl "/var/folders/bb/fyzc35s15bqdkss8pqb4fbcr0000gn/T/com.johnholdsworth.InjectionIII/eval101.pl" "$log" >"/var/folders/bb/fyzc35s15bqdkss8pqb4fbcr0000gn/T/com.johnholdsworth.InjectionIII/eval101.sh" && exit 0 done exit 1;

    eval101.pl

    use JSON::PP; use English; use strict;

    // line separator in Xcode logs $INPUT_RECORD_SEPARATOR = "\r";

    // format is gzip open GUNZIP, "/usr/bin/gunzip <"$ARGV[0]" 2>/dev/null |" or die;

    // grep the log until there is a match my ($realPath, $command); while (defined (my $line = )) { if ($line =~ /^\scd /) { $realPath = $line; } elsif ($line =~ m@ -(?:primary-file|c(?<! -frontend -c)) (?:\?"(\Q/Users/looha/Desktop/complete/mba/Sources/Modulars/QuesBank/ViewController/QuesSubjectViewController.swift\E)\?"|(\Q/Users/looha/Desktop/complete/mba/Sources/Modulars/QuesBank/ViewController/QuesSubjectViewController.swift\E)) @oi and $line =~ " x86_64") { // found compile command // may need to extract file list if ($line =~ / -filelist /) { while (defined (my $line2 = )) { if (my($filemap) = $line2 =~ / -output-file-map ([^ \]+(?:\ [^ \]+)) / ) { $filemap =~ s/\//g; my $file_handle = IO::File->new( "< $filemap" ) or die "Could not open filemap '$filemap'"; my $json_text = join'', $file_handle->getlines(); my $json_map = decode_json( $json_text, { utf8 => 1 } ); my $filelist = "/var/folders/bb/fyzc35s15bqdkss8pqb4fbcr0000gn/T/com.johnholdsworth.InjectionIII//filelist.txt"; my $swift_sources = join "\n", keys %$json_map; my $listfile = IO::File->new( "> $filelist" ) or die "Could not open list file '$filelist'"; binmode $listfile, ':utf8'; $listfile->print( $swift_sources ); $listfile->close(); $line =~ s/( -filelist )(\S+)( )/$1$filelist$3/; last; } } } if ($realPath and (undef, $realPath) = $realPath =~ /cd ("?)(.*?)\1\r/) { // print "cd "$realPath" && "; } # find last $command = $line #exit 0; } }

    if ($command) { print $command; exit 0; } // class/file not found exit 1;

    The eval101.sh file is empty

    opened by loohalh 22
  • BUILD FAILED

    BUILD FAILED

    i try sample and get this error my xcode Version 7.2.1 (7C1002)

    buidRoot: /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build
logDir: /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Logs/Build

Learnt compile: /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/binaryboy/Desktop/InjectTest/InjectTest/ViewController.swift /Users/binaryboy/Desktop/InjectTest/InjectTest/AppDelegate.swift -target x86_64-apple-ios9.2 -enable-objc-interop -sdk /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk -I /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator -F /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator -enable-testing -g -module-cache-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/ModuleCache -serialize-debugging-options -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-generated-files.hmap -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-own-target-headers.hmap -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-all-target-headers.hmap -Xcc -iquote -Xcc /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-project-headers.hmap -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/DerivedSources/x86_64 -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/binaryboy/Desktop/InjectTest -emit-module-doc-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController~partial.swiftdoc -Onone -module-name InjectTest -emit-module-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController~partial.swiftmodule -serialize-diagnostics-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController.dia -emit-dependencies-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController.d -emit-reference-dependencies-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController.swiftdeps -o iOSInjectionProject/x86_64/injecting_class.o

real 0m0.894s
user 0m0.125s
sys 0m0.206s
ls: .framework: No such file or directory

Building iOSInjectionProject/InjectionBundle.xcodeproj
"/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild" -configuration Debug -arch x86_64 -sdk iphonesimulator

2016-03-13 19:03:04.131 xcodebuild[11360:4209239] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSImageNamed.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 19:03:04.135 xcodebuild[11360:4209239] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CocoaPodUI.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 19:03:04.136 xcodebuild[11360:4209239] Failed to load plugin at: /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CocoaPodUI.xcplugin, skipping. Reason for failure: ** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]
2016-03-13 19:03:04.151 xcodebuild[11360:4209239] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CATweakerSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 19:03:04.154 xcodebuild[11360:4209239] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 19:03:04.677 xcodebuild[11360:4209239] ### Failed to load Addressbook class CNContactNameFormatter
objc[11360]: Class VWKProject is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[11360]: Class VWKWorkspaceManager is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[11360]: Class VWKRunOperation is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[11360]: Class VWKShellHandler is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[11360]: Class VWKDocumentationManager is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[11360]: Class VWKXCodeConsole is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
Build settings from command line:
 ARCHS = x86_64
 SDKROOT = iphonesimulator9.2

=== BUILD TARGET InjectionBundle OF PROJECT InjectionBundle WITH CONFIGURATION Debug ===

Check dependencies

CompileC build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.o BundleContents.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
 cd /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject
 export LANG=en_US.US-ASCII
 export PATH="/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
 /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/var/folders/yv/0hqnb34j6d1dtx56l150y2jh0000gp/C/org.llvm.clang/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wmissing-prototypes -Wno-implicit-atomic-properties -Wno-arc-repeated-use-of-weak -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -DDEBUG=1 -isysroot /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -mios-simulator-version-min=9.2 -g -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch -iquote /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-generated-files.hmap -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-own-target-headers.hmap -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-all-target-headers.hmap -iquote /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-project-headers.hmap -iquote.. -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator/include -I/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/usr/include/libxml2 -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/DerivedSources/x86_64 -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/DerivedSources -F/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator -include /var/folders/yv/0hqnb34j6d1dtx56l150y2jh0000gp/C/com.apple.DeveloperTools/7.2.1-7C1002/Xcode/SharedPrecompiledHeaders/InjectionBundle-Prefix-gxzsmsoyfduvciatahmfsfmkaqpe/InjectionBundle-Prefix.pch -MMD -MT dependencies -MF /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.d --serialize-diagnostics /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.dia -c /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/BundleContents.m -o /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.o

Ld build/Debug-iphonesimulator/InjectionBundle.bundle/InjectionBundle normal x86_64
 cd /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject
 export IPHONEOS_DEPLOYMENT_TARGET=9.2
 export PATH="/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
 /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -bundle -isysroot /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk -L/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator -F/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator -filelist /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/InjectionBundle.LinkFileList -mios-simulator-version-min=9.2 -Xlinker -objc_abi_version -Xlinker 2 x86_64/injecting_class.o -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -F/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator -F/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator/InjectTest.app/Frameworks -undefined dynamic_lookup -fobjc-arc -fobjc-link-runtime -framework UIKit -framework QuartzCore -framework OpenGLES -framework Foundation -framework CoreGraphics -Xlinker -dependency_info -Xlinker /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/InjectionBundle_dependency_info.dat -o /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator/InjectionBundle.bundle/InjectionBundle
ld: warning: directory not found for option '-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator'
ld: library not found for -lswiftFoundation for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED 


The following build commands failed:
 Ld build/Debug-iphonesimulator/InjectionBundle.bundle/InjectionBundle normal x86_64
(1 failure)

* Build Failed with status: 65. You may need to open and edit the bundle project to resolve issues with either header include paths or Frameworks the bundle links against. _

 at /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/common.pm line 57.
 main::error('Build Failed with status: 65. You may need to open and edit t...') called at /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/injectSource.pl line 460
_ Bundle build failed **

Disconnected from: /Users/binaryboy/Library/Developer/CoreSimulator/Devices/B02AE16A-BAED-4328-A604-1C679C510A71/data/Containers/Data/Application/03B50383-71AD-47D8-8506-9FAF4D342699
Connection from: /Users/binaryboy/Library/Developer/CoreSimulator/Devices/B02AE16A-BAED-4328-A604-1C679C510A71/data/Containers/Data/Application/949A7C34-354B-4909-A350-0C560B8223F1 x86_64 (129)
buidRoot: /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build
logDir: /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Logs/Build

Learnt compile: /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/binaryboy/Desktop/InjectTest/InjectTest/ViewController.swift /Users/binaryboy/Desktop/InjectTest/InjectTest/AppDelegate.swift -target x86_64-apple-ios9.2 -enable-objc-interop -sdk /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk -I /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator -F /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator -enable-testing -g -module-cache-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/ModuleCache -serialize-debugging-options -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-generated-files.hmap -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-own-target-headers.hmap -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-all-target-headers.hmap -Xcc -iquote -Xcc /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/InjectTest-project-headers.hmap -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/DerivedSources/x86_64 -Xcc -I/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/binaryboy/Desktop/InjectTest -emit-module-doc-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController~partial.swiftdoc -Onone -module-name InjectTest -emit-module-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController~partial.swiftmodule -serialize-diagnostics-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController.dia -emit-dependencies-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController.d -emit-reference-dependencies-path /Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Intermediates/InjectTest.build/Debug-iphonesimulator/InjectTest.build/Objects-normal/x86_64/ViewController.swiftdeps -o iOSInjectionProject/x86_64/injecting_class.o

real 0m0.263s
user 0m0.110s
sys 0m0.086s
ls: *.framework: No such file or directory

Building iOSInjectionProject/InjectionBundle.xcodeproj
"/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild" -configuration Debug -arch x86_64 -sdk iphonesimulator

2016-03-13 20:45:42.553 xcodebuild[40107:4360505] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSImageNamed.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 20:45:42.729 xcodebuild[40107:4360505] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CocoaPodUI.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 20:45:42.729 xcodebuild[40107:4360505] Failed to load plugin at: /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CocoaPodUI.xcplugin, skipping. Reason for failure: ** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]
2016-03-13 20:45:42.817 xcodebuild[40107:4360505] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CATweakerSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 20:45:43.014 xcodebuild[40107:4360505] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-03-13 20:45:44.125 xcodebuild[40107:4360505] ### Failed to load Addressbook class CNContactNameFormatter
objc[40107]: Class VWKProject is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[40107]: Class VWKWorkspaceManager is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[40107]: Class VWKRunOperation is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[40107]: Class VWKShellHandler is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[40107]: Class VWKDocumentationManager is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
objc[40107]: Class VWKXCodeConsole is implemented in both /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ObjectGraph.xcplugin/Contents/MacOS/ObjectGraph and /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KSHObjcUML.xcplugin/Contents/MacOS/KSHObjcUML. One of the two will be used. Which one is undefined.
Build settings from command line:
 ARCHS = x86_64
 SDKROOT = iphonesimulator9.2

=== BUILD TARGET InjectionBundle OF PROJECT InjectionBundle WITH CONFIGURATION Debug ===

Check dependencies

CompileC build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.o BundleContents.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
 cd /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject
 export LANG=en_US.US-ASCII
 export PATH="/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
 /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/var/folders/yv/0hqnb34j6d1dtx56l150y2jh0000gp/C/org.llvm.clang/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wmissing-prototypes -Wno-implicit-atomic-properties -Wno-arc-repeated-use-of-weak -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -DDEBUG=1 -isysroot /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -mios-simulator-version-min=9.2 -g -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch -iquote /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-generated-files.hmap -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-own-target-headers.hmap -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-all-target-headers.hmap -iquote /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-project-headers.hmap -iquote.. -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator/include -I/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/usr/include/libxml2 -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/DerivedSources/x86_64 -I/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/DerivedSources -F/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator -include /var/folders/yv/0hqnb34j6d1dtx56l150y2jh0000gp/C/com.apple.DeveloperTools/7.2.1-7C1002/Xcode/SharedPrecompiledHeaders/InjectionBundle-Prefix-gxzsmsoyfduvciatahmfsfmkaqpe/InjectionBundle-Prefix.pch -MMD -MT dependencies -MF /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.d --serialize-diagnostics /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.dia -c /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/BundleContents.m -o /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.o

Ld build/Debug-iphonesimulator/InjectionBundle.bundle/InjectionBundle normal x86_64
 cd /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject
 export IPHONEOS_DEPLOYMENT_TARGET=9.2
 export PATH="/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/Volumes/MAC2/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
 /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -bundle -isysroot /Volumes/MAC2/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk -L/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator -F/Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator -filelist /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/InjectionBundle.LinkFileList -mios-simulator-version-min=9.2 -Xlinker -objc_abi_version -Xlinker 2 x86_64/injecting_class.o -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -F/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator -F/Users/binaryboy/Library/Developer/Xcode/DerivedData/InjectTest-gitdwimdtpewpoalhymgncrpjydw/Build/Products/Debug-iphonesimulator/InjectTest.app/Frameworks -undefined dynamic_lookup -fobjc-arc -fobjc-link-runtime -framework UIKit -framework QuartzCore -framework OpenGLES -framework Foundation -framework CoreGraphics -Xlinker -dependency_info -Xlinker /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/InjectionBundle_dependency_info.dat -o /Users/binaryboy/Desktop/InjectTest/iOSInjectionProject/build/Debug-iphonesimulator/InjectionBundle.bundle/InjectionBundle
ld: warning: directory not found for option '-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator'
ld: library not found for -lswiftFoundation for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED 


The following build commands failed:
 Ld build/Debug-iphonesimulator/InjectionBundle.bundle/InjectionBundle normal x86_64
(1 failure)

* Build Failed with status: 65. You may need to open and edit the bundle project to resolve issues with either header include paths or Frameworks the bundle links against. _

 at /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/common.pm line 57.
 main::error('Build Failed with status: 65. You may need to open and edit t...') called at /Users/binaryboy/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/injectSource.pl line 460
_ Bundle build failed ***



    opened by dimohamdy 22
  • run failure

    run failure

    ctrl+=

    2017-01-25 10:30:36.193788 downPhoto[1661:39508] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/zhaok/Library/Developer/CoreSimulator/Devices/CF7EAFD0-2172-455F-A608-CA4820098DD9/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 2017-01-25 10:30:36.194287 downPhoto[1661:39508] [MC] Reading from private effective user settings.

    opened by zhaokera 18
  • Could not open

    Could not open "iOSInjectionProject/InjectionBundle.xcodeproj/project.pbxproj" as: No such file or directory

    Copying iOSBundleTemplate into project.

 *** Could not open "iOSInjectionProject/InjectionBundle.xcodeproj/project.pbxproj" as: No such file or directory _

 at /Users/caowenbo/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/common.pm line 57.
 main::error('Could not open "iOSInjectionProject/InjectionBundle.xcodeproj...') called at /Users/caowenbo/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/common.pm line 77
 main::loadFile('iOSInjectionProject/InjectionBundle.xcodeproj/project.pbxproj') called at /Users/caowenbo/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/injectSource.pl line 80 
_ Bundle build failed ***

    opened by chatwyn 18
  • Dosn't work in Xcode 9 when using Swift. Does work in Xcode 9 using Objective-C.

    Dosn't work in Xcode 9 when using Swift. Does work in Xcode 9 using Objective-C.

    I got the software, http://johnholdsworth.com/Injection9.app.zip, and installed it.

    In Swift the function: func injected() { print("I've been injected: (self)") } dosn't get called, when I type ^=

    In Objective-C the function: (void)injected { NSLog(@"I've been injected: %@", self); } does get called when I type ^=

    opened by MathiasHH 16
  • Undefined symbols for architecture x86_64:

    Undefined symbols for architecture x86_64: "_INColors", referenced from: -[ViewController changeColor] in ViewController.o

    Hi, I have a problem about Tunable Parameters, can you help me ! thank you ! I want to use Tunable Parameters in my demo, and Xcode hint "Undefined symbols for architecture x86_64:"_INColors", referenced from: -[ViewController changeColor] in ViewController.o ld: symbol(s) not found for architecture x86_64"

    My Xcode version is 8.2.

    This is my code

    #import "ViewController.h" #ifdef DEBUG #define INJECTION_ENABLED

    #import "/tmp/injectionforxcode/BundleInterface.h" #endif

    @interface ViewController ()

    @end

    @implementation ViewController

    • (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 50, 50)]; [self.view addSubview:label]; label.text = @"test"; [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(changeColor) userInfo:nil repeats:YES]; }
    • (void)changeColor { self.view.backgroundColor = INColors[0]; } @end
    opened by lifubo 16
  • Learnt compile failed

    Learnt compile failed

    Hello. I am trying to get the plugin working again and running into Learnt compile failed error on both Xcode 6 and 7. I have a project with no Swift code. I have tried to install via the .DMG as well as from source code. The error that I get is the same each time. It appears to be 1 long line, so I pasted it as a gist though you may wish to view in Sublime.

    Error:

    error: PCH was compiled with module cache path ‘/Users/username/Library/Developer/Xcode/DerivedData/ModuleCache/3LMKQ5BP9LJJE’, but the path is currently ‘/Users/username/Library/Developer/Xcode/DerivedData/ModuleCache/QR54I550FG9N’
1 error generated.

    

    Full Output: https://gist.githubusercontent.com/objectiveSee/b56bf3d895475fdb6d0e/raw/6ea6d7db2600871ccc2e15ad1d982b1a2266c5e4/Injection%2520Output

    opened by objectiveSee 16
  • Why not support lazy loading?

    Why not support lazy loading?

    1. If I use this method, it works.
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        CGRect frame = CGRectMake(kScreenWidth - 100 - 20, 80, 100, 40);
        _refreshButton = [[UIButton alloc] initWithFrame:frame];
        [_refreshButton addTarget:self action:@selector(refreshAction) forControlEvents:UIControlEventTouchUpInside];
        [_refreshButton setTitle:@"refresh" forState:UIControlStateNormal];
        [_refreshButton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
        [_refreshButton setBackgroundColor:UIColor.blackColor];
        [self.view addSubview:_refreshButton];
    }
    
    - (void)injected {
        [self viewDidLoad];
    }
    
    1. If I use lazy loading, it not work.
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        [self.view addSubview:self.refreshButton];
    }
    
    - (void)injected {
        [self viewDidLoad];
    }
    
    - (UIButton *)refreshButton {
        if (!_refreshButton) {
            CGRect frame = CGRectMake(kScreenWidth - 100 - 20, 80, 100, 40);
            _refreshButton = [[UIButton alloc] initWithFrame:frame];
            [_refreshButton addTarget:self action:@selector(refreshAction) forControlEvents:UIControlEventTouchUpInside];
            [_refreshButton setTitle:@"refresh" forState:UIControlStateNormal];
            [_refreshButton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
            [_refreshButton setBackgroundColor:UIColor.blackColor];
        }
        return _refreshButton;
    }
    

    What's your principle? What is the cause?

    opened by tigerAndBull 15
  • Re-compilation failed

    Re-compilation failed

    i am using the injection app download from app store, when i save the viewcontroller file , it output the follow error: Re-compilation failed (/Users/xxx/Library/Containers/com.johnholdsworth.InjectionIII/Data/command.sh) error: PCH was compiled with module cache path '/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/SVVIVNZ3K4SI', but the path is currently '/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/2ED65GRZ12XPG' error: definition of macro 'AFNetworking_POD_VERSION' differs between the precompiled header ('@"8888_2.5.4"') and the command line ('@8888_2.5.4') 2 errors generated.

    opened by jluwkp 0
  • Symbol not found: __llvm_gcda_emit_arcs

    Symbol not found: __llvm_gcda_emit_arcs

    Hi, I'm using XCode 10.1

    I had hit #274 and so I turned off test coverage in the scheme.

    screen shot 2019-02-21 at 3 42 37 pm

    Now, I'm hitting this:

    💉 *** Compiling /Users/dford/git/myproject/Classes/Controllers/AppUpdateViewController.m ***
    💉 Loading .dylib - Ignore any duplicate class warning...
    💉 *** dlopen() error: dlopen(/Users/dford/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib, 2): Symbol not found: _llvm_gcda_emit_arcs
      Referenced from: /Users/dford/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib
      Expected in: flat namespace
    

    So I tried turning off coverage in the linker settings, to no avail. Any idea how to work past this issue?

    screen shot 2019-02-21 at 3 24 30 pm
    opened by davisford 7
  • One of the two will be used. Which one is undefined.

    One of the two will be used. Which one is undefined.

    *** Compiling /Users/xiaoyang/Desktop/ShenBianDian_busshop/ShenBianDian_busshop/ViewController1.m *** Loading .dylib - Ignore any duplicate class warning... objc[33577]: Class ViewController1 is implemented in both /Users/xiaoyang/Library/Developer/CoreSimulator/Devices/83AF8B2F-3254-4B54-9D6E-6BEE07E31BDF/data/Containers/Bundle/Application/FAFD7AD5-8944-42E9-A226-200C6D1DED3B/ShenBianDian_busshop.app/ShenBianDian_busshop (0x1012e8aa8) and /Users/xiaoyang/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib (0x122324ad0). One of the two will be used. Which one is undefined.

    Direct collapse, What should I do next?

    opened by yanmin7857 2
  • *** Build Failed with status: 65. You may need to open and edit the bundle project to resolve issues with either header include paths or Frameworks the bundle links against. ***

    *** Build Failed with status: 65. You may need to open and edit the bundle project to resolve issues with either header include paths or Frameworks the bundle links against. ***

    buidRoot: /Users/zhulongfei/Library/Developer/Xcode/DerivedData/LJShell-eewfwysxhsmqidfzymdzxnycitsa/Build
logDir: /Users/zhulongfei/Library/Developer/Xcode/DerivedData/LJShell-eewfwysxhsmqidfzymdzxnycitsa/Logs/Build


Building iOSInjectionProject/InjectionBundle.xcodeproj
"/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild" -configuration Debug -arch x86_64 -sdk iphonesimulator

2018-08-10 17:31:28.898 xcodebuild[67412:2770121] [MT] DVTPlugInManager: Required plug-in compatibility UUID 426A087B-D3AA-431A-AFDF-F135EC00DE1C for KSImageNamed.ideplugin (com.ksuther.KSImageNamed) not present
2018-08-10 17:31:29.117 xcodebuild[67412:2770121] [MT] PluginLoading: Required plug-in compatibility UUID 426A087B-D3AA-431A-AFDF-F135EC00DE1C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/VVDocumenter-Xcode.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2018-08-10 17:31:29.118 xcodebuild[67412:2770121] [MT] PluginLoading: Required plug-in compatibility UUID 426A087B-D3AA-431A-AFDF-F135EC00DE1C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin' not present in DVTPlugInCompatibilityUUIDs
Build settings from command line:
 ARCHS = x86_64
 SDKROOT = iphonesimulator11.4

=== BUILD TARGET InjectionBundle OF PROJECT InjectionBundle WITH CONFIGURATION Debug ===

Check dependencies

CompileC build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.o BundleContents.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
 cd /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject
 export LANG=en_US.US-ASCII
 export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/var/folders/pr/s351rqx91ss6pq24ph_566fh0000gn/C/org.llvm.clang/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O1 -Wno-missing-field-initializers -Wmissing-prototypes -Wno-implicit-atomic-properties -Wno-arc-repeated-use-of-weak -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -mios-simulator-version-min=8.0 -g -Wno-sign-conversion -Wno-infinite-recursion -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -fobjc-abi-version=2 -fobjc-legacy-dispatch -iquote /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-generated-files.hmap -I/Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-own-target-headers.hmap -I/Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-all-target-headers.hmap -iquote /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/InjectionBundle-project-headers.hmap -iquote.. -I/Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/Debug-iphonesimulator/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/usr/include/libxml2 -I/Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/DerivedSources/x86_64 -I/Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/DerivedSources -F/Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/Debug-iphonesimulator -include /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/SharedPrecompiledHeaders/InjectionBundle-Prefix-cbhfgsauznuaghgwxpegajbpzivu/InjectionBundle-Prefix.pch -MMD -MT dependencies -MF /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.d --serialize-diagnostics /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.dia -c /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/BundleContents.m -o /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.o
In file included from /Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/lianjia_ios_platc/iOSInjectionProject/BundleContents.m:46:
/Users/zhulongfei/Documents/repoWorkSpaceRootPath/mobile_ios/lianjia_ios_platc/Lianjia_Beike_RentPlat/Lianjia_Beike_RentPlat_Private/Classes/Lease/View/RPLeaseContractHeaderView.m:9:9: fatal error: 'RPTheme.h' file not found
#import "RPTheme.h"
 ^~~~~~~~~~~
1 error generated.

** BUILD FAILED 


The following build commands failed:
 CompileC build/InjectionBundle.build/Debug-iphonesimulator/InjectionBundle.build/Objects-normal/x86_64/BundleContents.o BundleContents.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

* Build Failed with status: 65. You may need to open and edit the bundle project to resolve issues with either header include paths or Frameworks the bundle links against. 

 at /Users/zhulongfei/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/common.pm line 61.
 main::error('Build Failed with status: 65. You may need to open and edit t...') called at /Users/zhulongfei/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/injectSource.pl line 571
 Bundle build failed ***

    opened by ylrs 0
Owner
John Holdsworth
Add a bio
John Holdsworth
iOS TV Shows app with TMDb Api. RxSwift, MVVM, Clean Architecture. Tuist + Swift Package Manager

TVShows iOS app built with RxSwift, using the TMDb API. Built with Swift 5 RxSwift, RxDataSources Clean + Modular Architecture Cordinator Pattern. MVV

Jeans Ruiz 86 Dec 30, 2022
JSPatch bridge Objective-C and Javascript using the Objective-C runtime. You can call any Objective-C class and method in JavaScript by just including a small engine. JSPatch is generally used to hotfix iOS App.

JSPatch 中文介绍 | 文档 | JSPatch平台 请大家不要自行接入 JSPatch,统一接入 JSPatch 平台,让热修复在一个安全和可控的环境下使用。原因详见 这里 JSPatch bridges Objective-C and JavaScript using the Object

bang 11.4k Jan 1, 2023
Swift-compute-runtime - Swift runtime for Fastly Compute@Edge

swift-compute-runtime Swift runtime for Fastly Compute@Edge Getting Started Crea

Andrew Barba 57 Dec 24, 2022
Runtime Mobile Security (RMS) 📱🔥 - is a powerful web interface that helps you to manipulate Android and iOS Apps at Runtime

Runtime Mobile Security (RMS) ?? ?? by @mobilesecurity_ Runtime Mobile Security (RMS), powered by FRIDA, is a powerful web interface that helps you to

Mobile Security 2k Dec 29, 2022
Dyci-main - Dynamic Code Injection Tool for Objective-C

This tool allows you to inject code into running iOS application, without restarting it. DyCI is not about loading new code in application. DyCI is ab

null 1.1k Nov 20, 2022
Injection - Dependency injection using property wrappers

Dependency injection using property wrappers. Registering types: // injecting a

Alejandro Ramirez 3 Mar 14, 2022
💡 A light Swift wrapper around Objective-C Runtime

A light wrapper around Objective-C Runtime. What exactly is lumos? lumos as mentioned is a light wrapper around objective-c runtime functions to allow

Suyash Shekhar 139 Dec 19, 2022
Swift-friendly API for a set of powerful Objective C runtime functions.

ObjectiveKit ObjectiveKit provides a Swift friendly API for a set of powerful Objective C runtime functions. Usage To use ObjectiveKit: Import Objecti

Roy Marmelstein 850 Oct 25, 2022
💡 A light Swift wrapper around Objective-C Runtime

A light wrapper around Objective-C Runtime. What exactly is lumos? lumos as mentioned is a light wrapper around objective-c runtime functions to allow

Suyash Shekhar 139 Dec 19, 2022
Reliant - Nonintrusive Objective-C Dependency Injection

Reliant Reliant is a Dependency Injection (DI) framework for Objective-C, both for OS X and iOS. Its goal is to make its use as simple as possible, wh

AppFoundry 52 Oct 14, 2022
Demonstration code for a simple Swift property-wrapper, keypath-based dependency injection system. The keypaths ensure compile-time safety for all injectable services.

Injectable Demo Preliminary musings and demonstration code for a simple Swift property-wrapper, keypath-based dependency injection system. The keypath

Michael Long 12 Aug 5, 2022
Inject Dylib - Swift code to programmatically perform dylib injection

Inject_Dylib Swift code to programmatically perform dylib injection. You can als

Cedric Owens 40 Sep 27, 2022
Inject-Dylib - ObjC Code to Programmatically Perform Dylib Injection

Inject-Dylib ObjC Code to Programmatically Perform Dylib Injection. Code leveraged from Wojciech Regula's FirefoxStealer project (https://github.com/r

Cedric Owens 1 Jan 2, 2022
Swift Server Implementation - RESTful APIs, AWS Lambda Serverless For Swift Runtime amazonlinux: AWS Lambda + API Gateway

Swift Server Implementation - RESTful APIs, AWS Lambda Serverless For Swift Runtime amazonlinux: AWS Lambda + API Gateway deployed on Graviton arm64 build swift:5.6.2-amazonlinux2-docker image

Furqan 2 Aug 16, 2022
Vim runtime files for Swift

Swift.vim Syntax and indent files for Swift If you don't have a preferred installation method check out vim-plug. Examples Syntastic Integration swift

Keith Smiley 787 Dec 1, 2022
Plugin and runtime library for using protobuf with Swift

Swift Protobuf Welcome to Swift Protobuf! Apple's Swift programming language is a perfect complement to Google's Protocol Buffer ("protobuf") serializ

Apple 4.1k Dec 28, 2022
Plugin and runtime library for using protobuf with Swift

Swift Protobuf Welcome to Swift Protobuf! Apple's Swift programming language is a perfect complement to Google's Protocol Buffer ("protobuf") serializ

Apple 4.1k Jan 6, 2023
A cross-platform Swift library for evaluating mathematical expressions at runtime

Introduction What? Why? How? Usage Installation Integration Symbols Variables Operators Functions Arrays Performance Caching Optimization Standard Lib

Nick Lockwood 738 Jan 7, 2023
A Swift Runtime library for viewing type info, and the dynamic getting and setting of properties.

Runtime is a Swift library to give you more runtime abilities, including getting type metadata, setting properties via reflection, and type constructi

Wes Wickwire 970 Jan 3, 2023
A simple utility allowing to detect Swift version at runtime.

SwiftVersionDetector SwiftVersionDetector allows you to detect Swift version at runtime. Note that detecting the Swift version of the machine on which

Alessandro Venturini 2 Dec 3, 2022