The sideloading process
Apple acts as the provider of all necessary credentials for installing apps on your iOS device. Without a paid developer program membership, you’re limited to 7-day app validity and a restricted number of apps and components.Device registration
When you first sideload an app, Impactor registers your iOS device with Apple’s servers using its unique device identifier (UDID).The device information is sent to Apple’s developer API:
Certificate creation
Impactor creates a development certificate that lasts 365 days. The private key is stored locally in your configuration directory.The certificate creation process:
If you use Impactor on multiple machines, you’ll need to copy the private key (
key.pem) from ~/.config/plume_impactor/keys/<team_id>/ to maintain the same certificate. Otherwise, Impactor will create a new certificate on each machine.- Generates a 2048-bit RSA private key
- Creates a Certificate Signing Request (CSR)
- Submits the CSR to Apple’s developer API
- Receives and stores the signed certificate
App registration
Your app is registered with Apple using its bundle identifier. This creates an App ID in your developer account.Impactor extracts entitlements from your app’s binary to determine what capabilities it needs (like push notifications, iCloud, etc.).
Provisioning profile generation
A provisioning profile is created that links together:
- Your certificate
- The registered App ID
- Your device UDID
- Requested entitlements
App modifications
Before signing, Impactor performs any necessary modifications:
- Injects tweaks (if specified)
- Changes the app name (if requested)
- Adds frameworks, bundles, or app extensions
- Merges entitlements from the binary with the provisioning profile
Code signing
The app is signed using apple-codesign-rs, which:
- Signs all executable binaries in the app bundle
- Signs frameworks, plugins, and extensions
- Embeds the provisioning profile
- Creates code signatures that iOS will verify
Installation
Finally, Impactor uses idevice to communicate with
installd on your iOS device and install the signed app.Free vs paid developer accounts
Free Apple Developer Account
Free Apple Developer Account
- Apps expire after 7 days and need to be re-signed
- Limited to 3 apps at a time
- Limited number of App IDs and certificates
- Cannot use certain entitlements (like push notifications)
- Certificates last 365 days but apps only last 7 days
Paid Apple Developer Program ($99/year)
Paid Apple Developer Program ($99/year)
- Apps expire after 1 year
- No limit on number of apps
- Access to all entitlements
- Can distribute apps via TestFlight
- Certificates and provisioning profiles last 1 year
Alternative installation methods
If you have AppSync installed on a jailbroken device, Impactor can install apps without signing them. This bypasses all Apple restrictions on app validity and quantity.