/eXtenderZ

Generic ISA-Swizzling for ObjC

Primary LanguageObjective-CApache License 2.0Apache-2.0

eXtenderZ

Platforms SPM Compatible License happn

TODO

Installation

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 (only the dynamic target works via SPM for now; last tested w/ Xcode 12.2).

⚠️ Important: If you use the static version of the package, you must add the -ObjC flag in Other Linker Flags (OTHER_LDFLAGS) in the build settings of your project.

Regarding the static version of the SPM project not working, I suspect an Xcode bug: the build system tries and embed the .a lib in the app and fails when signing.
You can use the static xcframework directly though (download it in the releases section of the project on GitHub).

Compatibility 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 dynamic frameworks, but it hasn’t been tested.

Versioning Note

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.

Credits

This project was originally created by François Lamboley while working at happn.