iTunes Connect
app development
build upload issues
Apple Developer
troubleshooting

New build disappears after uploading it to iTunes Connect

Interview Questions practice on Codemia

Over 8,000 real interview questions from top companies, searchable by company and role.

Browse interview questions

Introduction

When a build disappears from App Store Connect after uploading, it is almost always because Apple's automated processing rejected it. Apple runs compliance checks, entitlement validation, and binary analysis on every upload. If any check fails, the build is silently removed without appearing in the "Builds" section. The rejection reason arrives via email to the account holder — check the inbox associated with your Apple Developer account before re-uploading.

Why Builds Disappear

After you upload a build via Xcode or Transporter, Apple processes it through several stages:

  1. Upload receipt: Xcode shows "Upload Successful"
  2. Processing: Apple validates the binary (5-30 minutes)
  3. Available: Build appears in App Store Connect under the app's TestFlight or Activity tab

If the build fails during step 2, it never reaches step 3. The build simply does not appear — there is no error in Xcode since the upload itself succeeded.

Check Your Email First

Apple sends an email to the account holder when a build fails processing:

 
1Subject: "App Store Connect: Your app has one or more issues"
2
3Dear Developer,
4
5We identified one or more issues with a recent delivery for your app,
6"MyApp" 1.2.3 (45). Your delivery was successful, but you may wish to
7correct the following issues in your next delivery:
8
9ITMS-90725: SDK Version Issue - ...
10ITMS-90683: Missing Purpose String - ...

The email lists specific error codes (ITMS-XXXXX) that explain exactly what failed.

Common Rejection Reasons

Missing Privacy Purpose Strings (Most Common)

xml
1<!-- Info.plist — add purpose strings for ALL used APIs -->
2<key>NSCameraUsageDescription</key>
3<string>We need camera access to take profile photos</string>
4
5<key>NSPhotoLibraryUsageDescription</key>
6<string>We need photo library access to select images</string>
7
8<key>NSLocationWhenInUseUsageDescription</key>
9<string>We use your location to show nearby results</string>
10
11<key>NSMicrophoneUsageDescription</key>
12<string>We need microphone access for voice messages</string>

Starting with iOS 13, any app that accesses privacy-sensitive APIs without a purpose string in Info.plist is rejected during processing.

Invalid Binary Architecture

bash
1# Check your binary architectures
2lipo -info MyApp.app/MyApp
3# Should include: arm64
4
5# Remove simulator slices before upload
6xcodebuild -create-xcframework \
7    -framework build/Release-iphoneos/MyFramework.framework \
8    -output MyFramework.xcframework

Builds containing x86_64 (simulator) slices are rejected. This commonly happens with manually embedded frameworks that were not properly stripped.

Duplicate Bundle Version

xml
1<!-- Info.plist -->
2<key>CFBundleShortVersionString</key>
3<string>1.2.3</string>
4<key>CFBundleVersion</key>
5<string>45</string>  <!-- Must be unique per upload -->

If you upload the same version + build number combination twice, the second upload is silently ignored. Always increment CFBundleVersion for each upload.

Export Compliance (Encryption)

xml
<!-- Info.plist — declare encryption usage -->
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

If this key is missing, the build may be held in "Processing" indefinitely. Set it to false if your app only uses standard HTTPS, or true if it implements custom encryption.

Checking Build Status

In App Store Connect

  1. Go to My Apps > your app > TestFlight tab
  2. Check the Activity tab for processing status
  3. Look for builds with status "Processing" or "Invalid"

Using Transporter

bash
1# Download Transporter from the Mac App Store
2# Upload and check status with detailed logs
3xcrun altool --upload-app -f MyApp.ipa -t ios \
4    -u "[email protected]" -p "@keychain:AC_PASSWORD"
5
6# Check upload history
7xcrun altool --list-apps -u "[email protected]" -p "@keychain:AC_PASSWORD"

Using fastlane

ruby
1# Fastfile
2lane :upload do
3    build_app(scheme: "MyApp")
4    upload_to_testflight(
5        skip_waiting_for_build_processing: false  # Wait for processing
6    )
7end

fastlane's upload_to_testflight can wait for processing to complete and report errors.

Fixing and Re-uploading

bash
1# 1. Fix the issue identified in Apple's email
2
3# 2. Increment the build number
4agvtool next-version -all
5# Or manually update CFBundleVersion in Info.plist
6
7# 3. Clean and rebuild
8xcodebuild clean -workspace MyApp.xcworkspace -scheme MyApp
9xcodebuild archive -workspace MyApp.xcworkspace -scheme MyApp \
10    -archivePath build/MyApp.xcarchive
11
12# 4. Export and upload
13xcodebuild -exportArchive -archivePath build/MyApp.xcarchive \
14    -exportPath build/ -exportOptionsPlist ExportOptions.plist

Processing Time

Normal processing takes 5-30 minutes. During peak periods (after WWDC, near major iOS releases), processing can take several hours. If a build has been "Processing" for more than 24 hours, it likely failed silently — check email and re-upload.

Common Pitfalls

  • Not checking email: The most common mistake. Apple sends rejection details via email, not through Xcode or App Store Connect notifications. Check the Apple ID email associated with the account holder role.
  • Re-uploading without incrementing build number: The same version + build combination is silently ignored. Always increment CFBundleVersion before re-uploading, even if the previous upload failed.
  • Missing Info.plist keys for linked frameworks: If a third-party framework uses the camera or location, your app must include the corresponding purpose string even if your own code never calls those APIs directly.
  • Uploading from Xcode Organizer without validating first: Use "Validate App" in the Organizer before "Distribute App". Validation catches most issues locally without waiting for Apple's processing.
  • Assuming "Upload Successful" means the build is accepted: Xcode's success message only confirms the binary was received by Apple's servers. Processing and validation happen afterward and can still reject the build.

Summary

  • Builds disappear because Apple's automated processing rejected them after a successful upload
  • Check the Apple Developer account email for rejection details with ITMS error codes
  • Common causes include missing privacy strings, duplicate build numbers, invalid architectures, and missing encryption declarations
  • Always validate in Xcode Organizer before uploading
  • Increment CFBundleVersion for every upload attempt
  • Processing normally takes 5-30 minutes; check email if the build has not appeared after an hour

Related reading
Free course
Beginner
7 lessons
2 hours
Tackling System Design Interview Problems

A short course that equips you with the skills to approach system design interviews methodically.

Start the free course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

Interview Questions practice on Codemia

Over 8,000 real interview questions from top companies, searchable by company and role.

Browse interview questions

All Rights Reserved.