Impactor can generate pairing files that allow apps to communicate with your iOS device remotely over WiFi. This is essential for apps like SideStore, Feather, and other sideloading tools.
What is a pairing file?
A pairing file (.mobiledevicepairing or .plist) contains:
Device-specific certificates and keys
Trusted credentials for lockdown communication
WiFi debugging authorization
UDID and device identification
These files enable apps to perform operations like app installation, file access, and system queries without requiring a direct USB connection.
Pairing files become invalid if you:
Untrust your computer on the device
Reset or restore your device
Update iOS (in some cases)
Supported applications
Impactor automatically generates and installs pairing files for these apps:
Application Bundle ID File Path SideStore com.SideStore.SideStore/Documents/ALTPairingFile.mobiledevicepairingFeather thewonderofyou.Feather/Documents/pairingFile.plistLiveContainer com.kdt.livecontainer/Documents/SideStore/Documents/ALTPairingFile.mobiledevicepairingAntrag thewonderofyou.antrag2/Documents/pairingFile.plistProtokolle thewonderofyou.syslog/Documents/pairingFile.plistStikDebug com.stik.sj/Documents/pairingFile.plistSparseBox com.kdt.SparseBox/Documents/pairingFile.plistEnsWilde com.yangjiii.EnsWilde/Documents/pairingFile.plistByeTunes com.EduAlexxis.MusicManager/Documents/pairing file/pairingFile.plist
How pairing file generation works
Retrieve pairing record
Impactor retrieves the existing pairing record from usbmuxd: // From plume_utils/src/device.rs:171
let mut pairing_file = usbmuxd . get_pair_record ( & self . udid) . await ? ;
Enable WiFi debugging
WiFi debugging must be enabled for remote communication: // From plume_utils/src/device.rs:177
lc . set_value (
"EnableWifiDebugging" ,
true . into (),
Some ( "com.apple.mobile.wireless_lockdown" ),
) . await . ok ();
Add device UDID
The device’s UDID is added to the pairing file: pairing_file . udid = Some ( self . udid . clone ());
Install to app container
The pairing file is written to the app’s Documents directory using House Arrest: // From plume_utils/src/device.rs:187
let hc = HouseArrestClient :: connect ( & provider ) . await ? ;
let mut ac = hc . vend_documents ( identifier . clone ()) . await ? ;
Automatic installation
Impactor automatically detects supported apps and installs pairing files during sideloading:
App detection - Impactor identifies the app by bundle ID or name
Path determination - The correct file path is selected based on the app
Directory creation - Parent directories are created if needed
File installation - The pairing file is written to the app’s container
// From plume_utils/src/options.rs:276
pub fn pairing_file_path ( & self ) -> Option < & ' static str > {
match self {
SideStore => Some ( "/Documents/ALTPairingFile.mobiledevicepairing" ),
Antrag | Feather | Protokolle => Some ( "/Documents/pairingFile.plist" ),
LiveContainer => Some ( "/Documents/SideStore/Documents/ALTPairingFile.mobiledevicepairing" ),
// ...
}
}
Manual pairing file installation
You can manually install pairing files using the Utilities page:
Connect device
Connect your iOS device via USB and ensure it appears in Impactor.
Open Utilities
Navigate to the Utilities page in Impactor.
Select app
Choose the app you want to install a pairing file for.
Install
Click “Install Pairing File” and Impactor will handle the rest.
The device must be trusted and unlocked for pairing file installation to succeed.
Re-trusting your device
If you need to generate a new pairing record:
// From plume_utils/src/device.rs:132
pub async fn pair ( & self ) -> Result <(), Error > {
let mut lc = LockdownClient :: connect ( & provider ) . await ? ;
let id = uuid :: Uuid :: new_v4 () . to_string () . to_uppercase ();
let buid = usbmuxd . get_buid () . await ? ;
let mut pairing_file = lc . pair ( id , buid ) . await ? ;
pairing_file . udid = Some ( self . udid . clone ());
let pairing_file = pairing_file . serialize () ? ;
usbmuxd . save_pair_record ( & self . udid, pairing_file ) . await ? ;
}
This creates a new trust relationship between your computer and device.
Technical implementation
House Arrest protocol
Impactor uses the House Arrest service to access app containers:
// Connect to House Arrest
let hc = HouseArrestClient :: connect ( & provider ) . await ? ;
// Access app's Documents directory
let mut ac = hc . vend_documents ( identifier . clone ()) . await ? ;
This provides secure file system access to the app’s sandbox.
Directory creation
Nested directories are created automatically:
// From plume_utils/src/device.rs:193
if let Some ( parent ) = Path :: new ( path ) . parent () {
for component in parent . components () {
if let Component :: Normal ( dir ) = component {
current . push_str ( & dir . to_string_lossy ());
ac . mk_dir ( & current ) . await ? ;
}
}
}
This ensures paths like /Documents/SideStore/Documents/ are fully created.
File writing
The pairing file is written atomically:
let mut f = ac . open ( path , AfcFopenMode :: Wr ) . await ? ;
f . write_entire ( & pairing_file . serialize () . unwrap ()) . await ? ;
Verifying installation
After installation, you can verify the pairing file:
Open the app on your device
Check for WiFi connectivity features
For SideStore: Navigate to Settings → Check “WiFi Sync”
For Feather: Verify the pairing file appears in Settings
Troubleshooting
Pairing file not working
Ensure WiFi debugging is enabled
Verify the device is on the same network
Check that the pairing file hasn’t expired
Re-trust your device and regenerate the file
”Device not paired” error
Connect via USB and unlock your device
Trust your computer when prompted
Use Impactor’s “Re-trust Device” utility
App can’t find pairing file
Verify the file path matches the app’s expectations
Check file permissions in the app container
Reinstall the app and pairing file together
Security considerations
Pairing files contain sensitive credentials. Never share them publicly or commit them to version control.
Pairing files grant full access to your device
They can be used to install apps, read files, and access system information
Store them securely and regenerate them if compromised
Each device has unique pairing files
Next steps
P12 Export Export certificates for LiveContainer
Device Utilities Learn about device management features