iOS code signing links cryptographic certificates, bundle identifiers, and device UUIDs to ensure authentic executable deployment on Apple hardware.
Profile Types Comparison
| Dimension | Development | Ad-hoc Distribution | App Store Distribution |
|---|---|---|---|
| Primary Purpose | Local debugging via Xcode | Internal testing / TestFlight | App Store submission |
| Requires Device UDIDs | Yes | Yes (up to 100 per device class) | No |
| Requires CSR & Certificate | Yes (Development Cert) | Yes (Distribution Cert) | Yes (Distribution Cert) |
| Push Notifications Enabled | Development Sandbox | Production APNs | Production APNs |
Core Workflow Steps
1. Generating a Certificate Signing Request (CSR)
- Open Keychain Access.app on macOS.
- Select Keychain Access → Certificate Assistant → Request a Certificate From a Certificate Authority...
- Enter your developer email address in User Email Address.
- In Common Name, enter your name or team name.
- Leave CA Email Address blank.
- Select Saved to disk, then click Continue.
2. Downloading & Installing Certificates
- Visit Apple Developer Portal: Certificates.
- Click
+and choose Apple Development or Apple Distribution. - Upload the
.certSigningRequestfile saved from Keychain. - Download the generated
.cerfile and double-click to install it into macOS Keychain Access.
3. Collecting Device UDIDs
- Via Finder / Music: Connect iPhone via USB; click the device serial number until the UDID appears; right-click to copy.
- Via Xcode: Press
Cmd+Shift+2(Devices & Simulators) and copy the Identifier string.
4. Packaging .ipa for Distribution
- In Xcode, select Product → Archive.
- Open the Organizer window (
Cmd+Shift+2→ Archives). - Select your archive build and click Distribute App.
- Select Ad Hoc (or App Store Connect) and complete signing export.