A library for Swift Function Hooking. Use at your own risk.
let cat = Cat()
XCTAssertEqual(cat.bark(), "nyan")
let injector = try! SwiftFunctionInjector("Cat.bark")
injector.inject("Cat._bark")
XCTAssertEqual(cat.bark(), "bowwow")| \ | global | valuetype | class | protocol extension |
|---|---|---|---|---|
| static func | ○ | ○ | ○ | ○ |
| static computed property | ○ | ○ | ○ | ○ |
| static stored property | × | × | × | - |
| static subscript | - | ○ | ○ | ○ |
| instance func | - | ○ | ○ | ○ |
| instance computed property | - | ○ | ○ | ○ |
| instance stored property | - | ※1 | ○ | - |
| instance subscript | - | ○ | ○ | ○ |
※ Inlinable function is possible to not work.
※1 It's possible to hook if access from existential.
| environment | |
|---|---|
| iOS | × |
| iPhone Simulator | ○ |
| macOS | ○ |
| swift | |
|---|---|
| 5.1 | ○ |
| 5.0 | ○ |
| 4.2 | ○ |