A powerful cross-platform tool for modifying, signing, and tweaking iOS .ipa files.
📦 Download
·
Report Bug
·
Request Feature
- Inject tweaks — add
.dyliband.debtweaks from thetweaks/folder, with automatic CydiaSubstrate bundling (via ElleKit) and@rpathpatching - Remove injected tweaks — delete tweaks from
Frameworks/and strip their load commands viazsign - Export tweaks — extract existing
.dyliband.frameworktweaks from an IPA to thetweaks_extracted/folder - Code signing — sign iPAs using
zsignwith auto-detected certificates - Interactive mode — run without arguments for a guided menu-driven experience
- Cross-platform — works on Windows, macOS, and Linux
iPA-Edit/
├── ipa-edit.py # entry point (~55 lines)
├── modules/ # core logic package
│ ├── __constants.py # shared colors & style
│ ├── __deb_extractor.py # .deb (ar) archive extractor
│ ├── __macho_utils.py # Mach-O binary patching
│ ├── __ipa_editor.py # IPAEditor class
│ ├── __tweak_manager.py # tweak inject / remove
│ └── __menu.py # interactive CLI menus
├── certificate/ # place signing certificates here
│ ├── *.p12
│ └── *.mobileprovision
├── tweaks/ # place .dylib or .deb tweaks here
├── tweaks_extracted/ # exported tweaks land here (auto-created)
├── zsign/ # bundled zsign binaries (auto-detected)
│ ├── windows/zsign.exe
│ ├── mac/zsign
│ └── linux/zsign
├── Signed/ # signed output (auto-created)
└── Unsigned/ # unsigned output (auto-created)
- Python 3.10+
git clone --depth=1 https://github.com/SHAJON-404/iPA-Edit.git
cd iPA-Edit- Place your
.p12certificate and.mobileprovisionprofile in thecertificate/folder. - The matching
zsignbinary for your OS is detected automatically from thezsign/directory.
Place any .dylib or .deb tweak files in the tweaks/ folder. They will appear in the numbered list when using option 2 in the menu.
| Feature | Windows | macOS | Linux |
|---|---|---|---|
| iPA signing | ✅ | ✅ | ✅ |
| Tweak injection | ✅ | ✅ | ✅ |
| Tweak removal | ✅ | ✅ | ✅ |
| Tweak export | ✅ | ✅ | ✅ |
Simply run with no arguments:
python ipa-edit.pyYou'll see a menu:
--------------------------------------------------------------------------------
iPA Edit - By S. SHAJON
--------------------------------------------------------------------------------
1. Inject tweaks
2. Remove tweaks
3. Export tweaks from iPA
4. Sign IPA with certificate
5. Exit
python ipa-edit.py -i <input.ipa> -o <output.ipa> [options]| Flag | Description |
|---|---|
-i |
Input .ipa file |
-o |
Output path or filename |
-tw |
Inject tweaks from tweaks/ folder |
-rm-tw |
Remove tweaks by name (comma-separated) |
-d / --export-tweaks |
Export .dylib / .framework tweaks |
# Inject tweaks (interactive selection)
python ipa-edit.py -i app.ipa -tw
# Remove specific tweaks by name
python ipa-edit.py -i app.ipa -rm-tw "TweakName.dylib,OtherTweak"
# Export existing tweaks
python ipa-edit.py -i app.ipa -dPlace .dylib or .deb files in the tweaks/ folder, then select option 2 (or use -tw):
[*] Available tweaks:
1: AboutME.dylib (518 KB)
2: blatantsPatch.dylib (103 KB)
3: some_tweak.deb (1.2 MB)
[?] use , for multiple | 'all' for every tweak | 'exit' to cancel
[?] Tweak number(s) to inject: 1,2,3
Advanced Injection System:
- .deb Support: Automatically extracts
.debarchives and locatesMobileSubstratedynamic libraries. - Auto-Substrate Bundling: If any tweak requires
CydiaSubstrate,CydiaSubstrate.frameworkfromellekit.debis automatically bundled into the app. - Path Patching: Fixes hardcoded jailbreak paths (e.g.
/Library/Frameworks/...) to standard@rpath/iOS paths before injection, preventing AMFI/sandbox crashes on jailed devices.
Select option 2 (or use -rm-tw). The tool will:
- Scan the IPA's
Frameworks/folder and list all injected.dyliband.frameworkfiles. - Remove selected files from the archive.
- Use
zsignto strip the correspondingLC_LOAD_WEAK_DYLIBload commands from the main binary. - Optionally re-sign the output with your certificate.
When signing, certificates and the signing tool are resolved automatically:
zsign — checked in order:
- Bundled binary from
zsign/{windows,mac,linux}/ zsignon systemPATH- Manual prompt as fallback
Certificate — checked in order:
certificate/folder (.p12+.mobileprovision)- Manual prompt as fallback
This project is licensed under the GPLv3 License.
- Original project by binnichtaktiv
- Rewritten and maintained by SHAJON-404