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 about speeding up development.
- Each time, you are using DyCI, it saves you time.
WARNING
Uninstall DyCI before updating Xcode. If you don't you may need to reinstall xcode. We're currenlty working on this issue... If you've already expirienced this issue - remove and reinstall Xcode.
Installation
1. Install on machine
This is done once per machine. See details on installation page.
2. Add to your project
DyCI needs to integrate with the project as well. If you are using CocoaPods you can add this to your podfile
pod 'dyci', :git => 'https://github.com/DyCI/dyci-main.git'
If you prefer a manual approach you can read about it in the wiki.
Reasons, why do you need this tool
- apply small logic changes in no time
- when working with UI and animations you can see the results immediately
- It's good for debugging purposes. Remember, you can inject any code at runtime, add log statements etc.
Compared to other tools
- You need minimum moves to enable dyci
- You aren't writing some kind of script, you are writing your code!
- You don't need to prepare/modify/lock your code for dyci
- Your changes are always saved (they will not be discarded on next run)
How it works
You can read all about it in the How it works wiki.
Demos
Example
- There's an interactive demo in the workspace found in the
Dynamic Code Injection
folder. - Krzysztof Zabłocki created KZPlayground.
WARNING
Please, do not use this tool in your real applications, that you will publish to the App Store. DyCI won't work on devices by default, by purpose. Dynamic code injection is good for development, but it will leave huge security hole if you put it in your application.
FAQ
Please open any issue, but be sure to read the FAQ before you do:-)
Other Tools
There's few other tools those works kind'a the same, so if you don't like dyci - you can try those
Author(s)
Taykalo Paul, [email protected]
Find me on twitter.