APNs .p8 Key vs .p12 Certificate: Which Push Credential to Use
Use an APNs .p8 key for new projects: it never expires and covers every app in your team. A .p12 push certificate is per app and expires yearly.
Use an APNs .p8 key for new projects: it never expires and covers every app in your team. A .p12 push certificate is per app and expires yearly.
An expired or revoked iOS certificate doesn't affect live App Store apps while membership is active. It breaks new uploads, Ad Hoc builds and push.
A Bundle ID names your app, an App ID is Team ID + Bundle ID + capabilities; a profile ties App ID, certificate and devices. One table plus error fixes.
CFBundleShortVersionString is the iOS version users see; CFBundleVersion, the build number, must grow with each upload. Both are dot-separated integers.
Info.plist usage descriptions like NSCameraUsageDescription must exist before you access protected data, or the app crashes and uploads get ITMS-90683.
Most ITMS-90xxx and ITMS-91xxx upload errors need a higher build number, a fixed Info.plist or icon, or a privacy manifest. 18 codes with causes and fixes.
Most App Store rejections cite guidelines 2.1, 4.3 or 5.1.1. Here are 12 common rejection reasons, fixes, how to reply to review and how to appeal.
Device not registered means your profile lacks the iPhone's UDID: register it, re-download the profile and rebuild. Each device type allows 100 a year.
iPhone Developer Mode is in Settings > Privacy & Security on iOS 16 and later. Missing? Pair the phone with a dev tool first, then restart and confirm.
To fix Untrusted Developer on iPhone, trust the developer in VPN & Device Management while online. Also why free Apple ID apps stop after 7 days.