Add new language translations
mainImpactor supports localization via .toml files located in the locales/ directory. To add a new language:
- Copy
locales/en.tomltolocales/<language_code>.toml. - Translate the strings within the new file.
repository·main·Indexed 25 days ago
https://github.com/claration/impactorAn open-source, cross-platform iOS sideloading application for macOS, Linux, and Windows. It allows users to sign and install applications on iOS 9.0+ and Mac using an Apple ID. The project includes the Impactor GUI and the plumesign CLI tool for iOS code signing, Mach-O binary manipulation, Apple Developer account management, and device registration.
Impactor supports localization via .toml files located in the locales/ directory. To add a new language:
locales/en.toml to locales/<language_code>.toml.Impactor allows you to sign and sideload applications on iOS 9.0+ and macOS using your Apple ID.
Key Capabilities:
.ipa files obtained via ipatool (automatically disables App Store updates)..deb and .dylib files..framework, .bundle, and .appex directories.increased-memory-limit for emulators (e.g., MelonX, UTM).Impactor can generate device-specific pairing files that allow applications to communicate with your iOS device remotely. These files become invalid if you re-trust, update, or reset the device.
How to generate:
Utilities page, and press install for a supported app.Supported applications for pairing files:
SideStore (via Apple ID)Feather (via raw certificates)SparseBox (Device customizer)LiveContainer + SideStore (via Apple ID)Antrag (List installed apps)Protokolle (View system process logs)StikDebug (Enable JIT)EnsWilde (Device customizer)ByeTunes (Import mp3 to Music App)Reynard Browser (Gecko-based browser)Ksign (via raw certificates)Impactor is a cross-platform iOS sideloading application. You can install it using the following methods:
macOS (via Homebrew):
brew install --cask impactorLinux: Available via Flatpak.
Note for Linux users: usbmuxd must be installed. If your device is not detected after plugging it in, try plugging the phone in first and then restarting the app. Some distributions (like Bazzite) may require running sudo update-crypto-policies to ensure usbmuxd detects the device.
Impactor is a GUI application built with the iced framework. Its runtime behavior includes:
rust_i18n.SHADER_F16 support via wgpu. If no compatible adapter is found or FP16 support is missing, it automatically sets the ICED_BACKEND environment variable to tiny-skia to ensure compatibility.--pairing flag along with --pairing-path <PATH>. If you do not provide a --pairing-app-identifier, the CLI will interactively prompt you to select an installed app from the device to use as the target for the pairing record installation.account command group in plumesign allows you to manage Apple Developer accounts, including logging in, switching between saved accounts, and managing team-related resources like certificates, devices, and App IDs.The Package struct provides a way to interact with iOS .ipa files. It handles extracting the package to a temporary staging directory, parsing the Info.plist for metadata, and extracting the application icon.
Key capabilities:
Package::new(package_file) unpacks the IPA into a temporary directory.PlistInfoTrait to retrieve the app name, bundle identifier, version, and build version.cgbi.get_package_bundle() extracts the contents and returns a Bundle object for deeper inspection.remove_package_stage() deletes the temporary staging directory.device module provides utilities for interacting with iOS devices. You can retrieve a device instance by its ID using get_device_for_id or perform macOS-specific app installations using install_app_mac.To resolve a 2FA challenge, use the TwoFactorAction enum to indicate how the user responded:
SubmitCode(String): The user entered a verification code.SendSms(u32): The user requested a new code be sent to a specific trusted phone number via SMS (using the id from the TrustedPhoneNumber).Device struct represents a connected iOS device and provides methods for interacting with it via USB or network. You can instantiate a Device using an existing UsbmuxdDevice or find a specific device by its ID using get_device_for_id.