Certificates & Profiles
Code signing is how Apple verifies that your app comes from you and hasn’t been tampered with. Nativeline handles most of this automatically, but understanding the basics helps when troubleshooting.The Simple Version
Why Code Signing Exists
- Identity — Proves you made the app
- Integrity — Ensures the app hasn’t been modified
- Authorization — Controls what the app can do
Key Concepts
Certificates
A certificate proves your identity as a developer.| Type | Purpose |
|---|---|
| Development | Run apps on your devices during development |
| Distribution | Distribute via TestFlight and App Store |
Provisioning Profiles
A profile links your certificate to your app and specifies:- Which app (by Bundle ID)
- Which capabilities (push, Sign in with Apple, etc.)
- Which devices (for development)
Bundle ID
A unique identifier for your app, likecom.yourname.appname. This must be consistent across all profiles.
How Nativeline Handles This
Automatic Management
Nativeline can manage code signing automatically:- Creates certificates when needed
- Generates provisioning profiles
- Signs your app before uploading
Manual Management
For advanced users or specific requirements:- Create certificates in Apple Developer portal
- Create provisioning profiles manually
- Import into Nativeline
Setting Up (First Time)
Understanding Profile Types
Development Profile
- For testing on your devices
- Includes specific device IDs
- Can test all app capabilities
App Store Profile
- For TestFlight and App Store distribution
- No device restrictions
- Used for final distribution builds
Ad Hoc Profile
- For distributing outside App Store (up to 100 devices)
- Requires specific device IDs
- Rarely needed with TestFlight available
Common Scenarios
Building for Simulator
No code signing required. Simulator uses your Mac’s identity.Testing on Your iPhone
Requires:- Development certificate
- Development provisioning profile
- Your device registered in Apple Developer portal
Uploading to TestFlight
Requires:- Distribution certificate
- App Store provisioning profile
Troubleshooting
”No signing certificate found”
Cause: Certificate missing or expired Fix:- Go to Settings → Signing
- Click “Reset Certificates”
- Let Nativeline create new ones
”Provisioning profile doesn’t match”
Cause: Bundle ID mismatch Fix:- Check Bundle ID in Settings → App Identity
- Ensure it matches what’s in Apple Developer portal
- Regenerate profile if needed
”Profile doesn’t include capability”
Cause: App uses a capability not in the profile Fix:- Enable the capability in Apple Developer portal
- Regenerate the provisioning profile
- Rebuild your app
”Certificate has been revoked”
Cause: Someone revoked your certificate Fix:- Go to Settings → Signing
- Reset certificates
- Rebuild your app
Certificate Limits
Apple limits the number of certificates:| Type | Limit |
|---|---|
| Development | 2 per team |
| Distribution | 3 per team |
Device Registration
For development testing, devices must be registered:Automatic Registration
When you connect your iPhone and run from Nativeline, it can register automatically.Manual Registration
- Get device UDID (from Finder when connected)
- Add in Apple Developer portal → Devices
- Regenerate provisioning profile
Device Limits
- Up to 100 devices per type per year
- Resets when you renew your Developer account
- Can remove devices once per year
Team Considerations
Multiple Team Members
If working with a team:- Each developer has their own development certificate
- Share distribution certificates carefully
- Use role-based access in App Store Connect
Multiple Macs
Each Mac needs:- The certificate installed
- Access to the private key
- Provisioning profiles downloaded
Best Practices
Use automatic signing
Use automatic signing
Let Nativeline handle code signing unless you have specific requirements. It prevents most common issues.
Backup certificates
Backup certificates
Export certificates from Keychain Access and store securely. Losing your distribution certificate means regenerating profiles.
Don't share certificates freely
Don't share certificates freely
Check expiration dates
Check expiration dates
Certificates and profiles expire. Renew before they expire to avoid distribution interruptions.
Expiration
Certificate Expiration
- Development: 1 year
- Distribution: 1 year
- Cannot create new builds with that certificate
- Existing apps continue working
- Create new certificate to continue
Profile Expiration
- Profiles expire when the certificate they use expires
- Or when the Developer Program membership lapses