InterposeKit
InterposeKit copied to clipboard
A modern library to swizzle elegantly in Swift.
Bumps [tzinfo](https://github.com/tzinfo/tzinfo) from 1.2.7 to 1.2.10. Release notes Sourced from tzinfo's releases. v1.2.10 Fixed a relative path traversal bug that could cause arbitrary files to be loaded with require when...
Bumps [cocoapods-downloader](https://github.com/CocoaPods/cocoapods-downloader) from 1.3.0 to 1.6.3. Release notes Sourced from cocoapods-downloader's releases. 1.6.3 Enhancements None. Bug Fixes None. 1.6.2 Enhancements None. Bug Fixes None. 1.6.1 Enhancements None. Bug Fixes None....
After adopting InterposeKit in my [app](https://github.com/Thomvis/Construct), uploading a build to Apple fails when bitcode is enabled with the following error: > ITMS-90562: Invalid Bundle - The app submission can not...
`_dyld_register_func_for_add_image` is called during `dlopen` but before the Objective-C classes in the image are loaded. The effect of this is that the interposition(s) for a given class are run on...
This fixes https://github.com/steipete/InterposeKit/issues/29 for me. I think without the `used` attribute, the compiler optimizes the function away as it appears to be unused.
While [my hooks](https://github.com/Thomvis/Construct/blob/main/Construct/Reference/ReferenceItemView.swift#L92) work fine while debugging, they crash on device with the Release configuration. I think I've been able to nail it down to `IKTAddSuperImplementationToClass` not being found. The...
To make swizzling more robust, it would be ideal if the return/argument types of the swizzled implementation could be checked against the original method. As for how to do that…...
```swift let object = NSURL.init(string: "https://www.google.com")! let hook = try? object.hook( #selector(getter: NSURL.host), methodSignature: (@convention(c) (AnyObject, Selector) -> String).self, hookSignature: (@convention(block) (AnyObject) -> String).self) { store in { `self` in...
With using `objc_msgForward`, we can add hooks without offering a type signature. ```swift _ = try testObj.hook(#selector(TestClass.executeBlock)) { bSelf in print("Before Interposing Dynamic Hook for \(bSelf)") } ``` This is...