ipa-forge
A generic, data-driven iOS IPA patcher framework. Extract a user-supplied .ipa, apply version-aware patches from external YAML — binary byte patches, resource replace/add/remove, dylib injection — and re-sign the result into a standard-structure .ipa that AltStore Classic can install and refresh on a real iPhone.
pip install ipa-forge
forge inspect path/to/App.ipa
forge patch --ipa <ipa> --patches <patches.yaml> \
--identity <id> --profile <profile> --output <out.ipa>Data-driven patch definitions
Binary byte patches, resource replace/add/remove, plist edits, and dylib injection — all declared in external YAML, never hardcoded to an app.
Hook verification
Every dylib hook target is checked against the app's actual Mach-O class/method tables before signing, so a renamed class fails loudly instead of silently dying at runtime.
Real code signing, not reimplemented
Apple's CodeDirectory/CMS/entitlements format is never touched directly — every signature is produced by the real codesign/security tools.
Built-in reverse engineering
forge analysis gives you class-dump, strings, symbols, security posture, and version-to-version diffing for any decrypted IPA.
Hard constraint
Apple's code signature format (CodeDirectory, CMS, SuperBlob, DER entitlements) is never reimplemented. A single module is the only code path allowed to invoke codesign/security — everything else shells out through it. See the architecture doc for why.