How to Fix iOS App Store Connect Upload Error
In this tutorial, you'll learn about How to Fix iOS App Store Connect Upload Error. We cover key concepts, practical examples, and best practices.
The Problem
You try to upload your app to App Store Connect and get:
ERROR ITMS-90062: This bundle includes a watch app that is not
paired with a companion iPhone app
Or:
ERROR ITMS-90474: Invalid Bundle. The bundle at ... is not
compiled with the latest Swift tools
App Store Connect rejects uploads for missing metadata, version conflicts, or binary validation issues.
Quick Fix
Step 1: Validate the archive first
Xcode > Organizer > Select Archive > Validate App.
Validation catches most upload errors before submission. Fix any issues shown.
Step 2: Check bundle version and build number
- CFBundleVersion (build number): must be higher than any previous upload
- CFBundleShortVersionString (marketing version): must be new for this release
Both are in the target's General > Identity section.
Step 3: Verify the bundle identifier
The bundle ID in Xcode must match the App ID in App Store Connect exactly, including any team prefix.
Step 4: Use the correct distribution certificate
Preferences > Accounts > Apple ID > Team: Verify the distribution certificate exists and has not expired.
For App Store uploads, use an Apple Distribution certificate, not a Development certificate.
Step 5: Resolve ITMS-90062 (watchOS mismatch)
If your app includes a watchOS target, the companion app must support the same iOS version:
- Ensure the WatchKit Extension targets the correct watchOS version
- Verify the parent iOS app includes the required device capabilities
Step 6: Export with the correct method
In the Organizer, choose Distribute App > App Store Connect > Upload.
Do not choose "Development" or "Enterprise" distribution for App Store submission.
Step 7: Check Info.plist for required keys
| Key | Required For |
|---|---|
| NSCameraUsageDescription | Camera access |
| NSPhotoLibraryUsageDescription | Photo library |
| NSLocationWhenInUseUsageDescription | Location |
Missing usage description keys cause validation errors since May 2023.
Step 8: Use Xcode's Transporter app
If upload via Xcode fails, use Transporter (available from the Mac App Store) to upload the .ipa file manually.
Prevention
- Validate the archive before uploading every time.
- Increment both version and build numbers for each submission.
- Keep all usage description keys populated in Info.plist.
Common Mistakes with app store connect
- Forgetting that lazy evaluation defers computation until the value is forced, causing space leaks with unevaluated thunks
- Using
returnto exit a function early instead of wrapping a pure value in the monad - Mixing let bindings with <- bindings in do notation, producing type errors
These mistakes appear frequently in real-world IOS code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.
Practice Exercise
Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.
This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.
FAQ
DodaTech Tool Reference
Doda Browser's IPA Analyzer inspects the archive's Info.plist, entitlements, and code signatures to catch common upload rejection causes before submission.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro