This module allows changing the behavior of objects at runtime by creating custom classes on the fly and
using isa-swizzling
to change the class of the object instances whose behavior you want changed.
See the documentation for more inforation.
Even though there is no Package.swift file in this project in the main branch, the project is now SPM-compatible, with support for a dynamic and a static version of the package.
-ObjC
flag in Other Linker Flags
(OTHER_LDFLAGS
) in the build settings of your project.
Compatibility with SPM is provided via an xcframework
only.
Source SPM-compatibility cannot be provided AFAICT because the project has a part which does not use ARC, and has a custom modulemap.
Carthage installation should work too for the dynamic framework, but it hasn’t been tested.
The pbxproj sets DYLIB_CURRENT_VERSION
and DYLIB_COMPATIBILITY_VERSION
to $(MARKETING_VERSION)
.
We set the same versions in both fields because this lib is not meant to be shared between processes, so we don’t really care about the versions.
The doc compiler (docc
) now supports Objective-C modules! \o/ ……… but it does not support extended Objective-C types.
To workaround this and avoid having all the main methods missing from the documentation, I did something terrible.
Basically, the methods that are defined in an extension of NSObject
will be shown in NSObject_WorkaroundForDoc
in the documentation.
See NSObject_WorkaroundForDoc.h
for more information.
This project was originally created by François Lamboley while working at happn.