iOS App Submission Pitfalls: Common Issues and Solutions for Certificates, Packaging, and Submission Review

iOS App Submission Guide, covering common issues during certificate creation, provisioning profile configuration, IPA packaging and upload, and submission for review: wrong certificate type and forgotten password, mismatched provisioning profiles, missing build versions, various ITMS errors (90189/90101/90704/90076), and rejection reason troubleshooting. Each issue explains the cause and solution, helping developers avoid or quickly resolve problems at different stages.

I used to think that as long as the code was fine, submitting an iOS app was easy. But after uploading one myself, I realized that most of the process is spent dealing with certificates, provisioning profiles, and various ITMS errors. Knowing these pitfalls in advance can save a lot of time. This iOS submission guide lists several typical issues we encountered, explaining the cause and solution for each.

Certificate-Related Issues

Wrong certificate type. Development certificates are only for debugging on a real device; you must use a Distribution certificate for submission. If you select the wrong one during packaging, the upload will fail with an invalid signature. Check which type is currently used in Keychain. If you don’t have a Mac, Appuploader lets you directly regenerate a Distribution certificate on Windows.

Forgotten P12 password. The password you set for the P12 file when generating the certificate cannot be retrieved if forgotten; you have to regenerate it. It’s recommended to record this password separately and not mix it with your Apple ID password.

Certificate not available on another computer. If the certificate is generated on one Mac, it won’t be available on another. You need to export the .p12 and provisioning profile, then import them on the new computer. Alternatively, tools like Appuploader can sync certificates to the cloud, allowing other computers to download them directly after login, avoiding manual copying and transfer.

Provisioning Profile Issues

Provisioning profile type mismatch. You must use an App Store type profile for submission; selecting Ad Hoc or Development will cause upload errors. Check the type carefully when creating it.

Bundle ID mismatch. If the Bundle ID used for packaging doesn’t match the provisioning profile, signature verification fails. Make sure both are consistent when creating a new project.

Test device UDID not in the provisioning profile. For Ad Hoc distribution, if the tester’s UDID is not included in the profile, the app cannot be installed on that device. The App Store type for submission does not have device limits.

Upload and Build Version Issues

Build version not showing. After a successful upload, the build may not appear in App Store Connect. Possible reasons: the build version number (CFBundleVersion) duplicates a previous submission—change it in Info.plist and rebuild; the upload is still processing—wait 5-15 minutes and refresh; using a free Apple ID—it has no distribution rights and can only create development certificates. Uploading to a different App Store Connect account can also cause it not to show. If you resubmit with a different developer account, confirm the app record exists under the new account.

ITMS errors. ITMS-90189 means duplicate build version, fix it and re-upload. ITMS-90101 is a certificate issue—check if the Distribution certificate is expired or whether the provisioning profile type is correct. ITMS-90704 indicates incorrect icon size—adjust to the required size and rebuild. ITMS-90076 means the image has an Alpha channel (transparent background)—use a tool to remove the channel and save as an opaque format. UnknownError usually occurs when the app record hasn’t been created in App Store Connect—create the app first, then upload. ITMS-90161 is a configuration issue during packaging—check the signing settings.

Submission Review Notes

Screenshot sizes not meeting App Store specifications, missing privacy policy links, user permission descriptions not included in the review notes, and not providing a test account for login-required apps are common rejection reasons. Going through the checkpoints in this iOS submission guide before submitting can reduce the chance of rejection. If rejected, modify the corresponding issues based on Apple’s feedback and resubmit; you don’t need to go through the entire submission process again.