ITMS-90704 Icon Error Troubleshooting: Starting from Inside the IPA

This article addresses the iOS packaging and App Store upload error ERROR ITMS-90704 icon error, detailing the troubleshooting process by unpacking the IPA, analyzing Assets.car content, and verifying the marketing icon's presence.

During a normal submission process, after uploading the IPA, a prompt was quickly received:

ERROR ITMS-90704: Missing Marketing Icon

There were no crash logs or compilation errors; it was just rejected during upload. If you directly modify configurations for such issues, it’s easy to repeatedly trial and error. A safer approach is to first confirm whether the icon is actually present in the IPA.


1. Don’t Modify the Project First; Check the IPA Content

Many people’s first step is to open Xcode and modify Assets, but a more direct way is to first confirm if the IPA package truly contains the 1024 icon.

You can directly unpack the IPA:

unzip app.ipa -d ipa_tmp

Enter the directory:

ipa_tmp/Payload/YourApp.app/

Then check:

  • Whether Assets.car exists
  • Whether AppIcon resources exist

If Assets.car exists but the error persists, further judgment is needed:

Does Assets.car contain the 1024x1024 marketing icon?


2. Common Misconception: Having Icons ≠ Having the Marketing Icon

In Assets.xcassets:

  • AppIcon contains multiple-sized icons
  • But the 1024x1024 is a “separate requirement”

Errors typically occur when:

  • Only sizes like 180 / 120 / 60 are configured
  • Or the 1024 icon is not correctly packaged

3. Verify Assets.car Content (Key Step)

On macOS, you can use:

assetutil --info Assets.car

Look for in the output whether it contains:

"SizeOnDisk": 1024x1024

If not, it indicates:

  • The marketing icon was not included during packaging
  • Or the icon set configuration is incomplete

4. Several Specific Scenarios Where the Issue Occurs

Based on practical troubleshooting, several triggering scenarios can be summarized:


Scenario 1: Icon File Exists but Is Not Referenced

There is a 1024 image in Assets, but:

  • It was not dragged into AppIcon
  • Or the corresponding position was not checked

Scenario 2: Using Third-Party Packaging Tools

For example:

  • HBuilder
  • Some cross-platform tools

If these tools do not correctly generate Assets.car, it can lead to:

  • Icons existing
  • But not being included in the final package

Scenario 3: Icon Format Does Not Meet Requirements

Even with the correct size, it may fail if:

  • It’s not PNG
  • It uses an alpha channel (in certain scenarios)
  • The color space is not RGB

5. Repair Process

Step 1: Prepare the Correct Icon

Requirements:

  • 1024x1024
  • PNG
  • RGB

Step 2: Regenerate Complete Icon Resources

Manual handling can easily miss sizes; you can directly use tools to generate complete resources.

For example, using the icon generation tool from AppUploader (Happy Upload):

  1. Open the icon generation page
  2. Upload the 1024 original image
  3. Automatically generate all required sizes for iOS
  4. Export Assets.car or icon resources

Icon

This helps avoid:

  • Missing sizes
  • Naming errors
  • Format issues

Step 3: Replace Project Icons

In Xcode:

  1. Open Assets.xcassets
  2. Delete the old AppIcon
  3. Import the newly generated icon set
  4. Confirm the 1024 icon is filled

Step 4: Repackage

Execute Archive → Export IPA.


Step 5: Verify the IPA Again

Repeat the first step:

  • Unpack the IPA
  • Check Assets.car

Confirm it contains the marketing icon.


6. Checks During the Upload Phase

Before uploading, you can add a check action:

  • Confirm icon configuration in Info.plist
  • Confirm Assets.car exists
  • Confirm Bundle ID is correct

If using a Windows upload tool, such as AppUploader:

  1. Select the IPA
  2. Check files before uploading
  3. Switch upload channels
  4. Submit the upload

This can reduce repeated failures.


ITMS-90704 indicates that the final package lacks a compliant marketing icon, not that the icon is missing.