The “Asset validation failed (90179)” error typically occurs when attempting to resign an IPA file with a provisioning profile that doesn’t match the original provisioning profile used to build the app. This can happen when you’re:

  • Trying to update an existing app with a new provisioning profile.
  • Resigning an IPA file with a different distribution method (e.g., from Ad Hoc to App Store).
  • Using a provisioning profile with a different bundle ID or entitlements.

This error is often accompanied by a cryptic error message, leaving you scratching your head and wondering what went wrong. But don’t worry, we’ll break down the solution into manageable chunks, so you can focus on getting your app back on track.

Posted on

Are you tired of encountering the dreaded “Asset validation failed (90179)” error when trying to resign an iOS IPA file? You’re not alone! This frustrating issue has plagued developers and testers alike, causing headaches and wasted hours. But fear not, dear reader, for we’re about to dive into the depths of this problem and emerge with a solution that’ll make your iOS development life easier.

Table of Contents

The “Asset validation failed (90179)” error typically occurs when attempting to resign an IPA file with a provisioning profile that doesn’t match the original provisioning profile used to build the app. This can happen when you’re:

  • Trying to update an existing app with a new provisioning profile.
  • Resigning an IPA file with a different distribution method (e.g., from Ad Hoc to App Store).
  • Using a provisioning profile with a different bundle ID or entitlements.

This error is often accompanied by a cryptic error message, leaving you scratching your head and wondering what went wrong. But don’t worry, we’ll break down the solution into manageable chunks, so you can focus on getting your app back on track.

Before we dive into the troubleshooting process, make sure you have the following tools and information at hand:

  • Xcode (preferably the same version used to build the original app)
  • Terminal or Command Prompt
  • The original IPA file
  • The new provisioning profile (`.mobileprovision` file)
  • The app’s bundle ID (found in the `Info.plist` file)
  • Familiarity with the command-line tool `codesign` (don’t worry, we’ll cover it)

Let’s start by verifying the new provisioning profile is correctly configured:

$ security cms -D -i <new_provisioning_profile>.mobileprovision

This command will decode the provisioning profile and display its contents. Check for the following:

  • Ensure the ApplicationIdentifierPrefix matches the app’s bundle ID.
  • Verify the Entitlements section contains the necessary permissions and keys.

If the provisioning profile looks correct, proceed to the next step.

We need to extract the original provisioning profile from the IPA file:

$ unzip -p <original_ipa>.ipa <original_provisioning_profile>.mobileprovision > original_provisioning_profile.mobileprovision

This command will extract the original provisioning profile from the IPA file and save it to a new file.

Now, let’s compare the original and new provisioning profiles using the `security` command:

$ security cms -D -i original_provisioning_profile.mobileprovision
$ security cms -D -i new_provisioning_profile.mobileprovision

Compare the output to identify any differences between the two provisioning profiles. Take note of the following:

  • Entitlements: Ensure the new provisioning profile contains all the necessary entitlements from the original profile.
  • ApplicationIdentifierPrefix: Verify the prefix matches the app’s bundle ID in both profiles.
  • Other differences: Be aware of any other differences, such as modified or removed keys, as they might affect the resigning process.

With the provisioning profiles compared, it’s time to resign the IPA file using the new provisioning profile:

$ xcodebuild -exportNotarizedApp -archivePath <archive_path> -exportPath <export_path> -exportOptionsPlist <export_options.plist>

Replace `` with the path to the original IPA file, `` with the desired output path, and `` with a plist file containing the resigning options (see below).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>method</key>
    <string>appstore</string>
    <key>provisioningProfiles</key>
    <dict>
      <key><your_bundle_id></key>
      <string><new_provisioning_profile>.mobileprovision</string>
    </dict>
  </dict>
</plist>

Replace `` with the app’s bundle ID and `` with the path to the new provisioning profile.

If you’re still encountering issues, try the following:

  • Verify the app’s bundle ID hasn’t changed between the original and new provisioning profiles.
  • Check for any typos or mistakes in the provisioning profiles, especially in the entitlements section.
  • Ensure the new provisioning profile is properly configured for the desired distribution method (e.g., App Store, Ad Hoc, or Enterprise).
  • If using a wildcard provisioning profile, ensure the bundle ID prefix matches the app’s bundle ID.
  • Try re-creating the provisioning profile from scratch, making sure to include all necessary entitlements and keys.

The “Asset validation failed (90179)” error can be a frustrating obstacle, but by following these steps and understanding the underlying causes, you’ll be well-equipped to troubleshoot and resolve this issue. Remember to carefully compare the provisioning profiles, ensure the app’s bundle ID matches, and verify the resigning process is correctly configured.

With patience and persistence, you’ll overcome this hurdle and get your iOS app back on track. Happy developing!

Common Errors Solutions
Provisioning profile mismatches Verify the provisioning profile’s ApplicationIdentifierPrefix and entitlements match the app’s bundle ID and requirements.
Entitlements missing or incorrect Ensure the new provisioning profile contains all necessary entitlements from the original profile.
Bundle ID mismatch Verify the app’s bundle ID hasn’t changed between the original and new provisioning profiles.
Resigning process incorrect Double-check the resigning command and ensure the export options plist is correctly configured.

By following these guidelines and troubleshooting steps, you’ll be able to overcome the “Asset validation failed (90179)” error and successfully resign your iOS IPA file.

Frequently Asked Question

Stuck with the dreaded “iOS IPA resign issue – Asset validation failed (90179)” error? Don’t worry, we’ve got you covered! Here are some frequently asked questions to help you resolve this issue:

What is the “iOS IPA resign issue – Asset validation failed (90179)” error?

This error typically occurs when the iOS app’s assets, such as images or videos, are not validated correctly during the IPA resigning process. The error code 90179 indicates that the asset validation has failed, preventing the app from being resigned successfully.

Why does the asset validation fail during IPA resigning?

There are several reasons why asset validation might fail, including corrupted or missing assets, incorrect file names or formats, or even a faulty resigning tool. It’s essential to double-check your assets and resigning process to identify the root cause of the issue.

How can I fix the “iOS IPA resign issue – Asset validation failed (90179)” error?

To resolve this issue, try the following steps: 1) Verify that all assets are present and correctly named. 2) Ensure that the assets are in the correct format and not corrupted. 3) Re-sign the IPA file using a reliable resigning tool, such as Transporter or Sideloadly. 4) If the issue persists, try cleaning and rebuilding the Xcode project.

What are some common mistakes that lead to asset validation failure?

Common mistakes that can lead to asset validation failure include using incorrect file names or formats, missing or corrupted assets, and not updating the asset catalog after making changes to the app’s assets. Additionally, using an outdated or unreliable resigning tool can also cause issues.

Can I use Transporter to resign my IPA file and avoid the asset validation issue?

Yes, Transporter is a reliable tool for resigning IPA files, and it can help you avoid the asset validation issue. Transporter is a command-line tool provided by Apple, and it’s specifically designed for IPA resigning and distribution. By using Transporter, you can minimize the risk of asset validation failure and ensure a smooth IPA resigning process.

Leave a Reply

Your email address will not be published. Required fields are marked *