ITMS-90682: can't contain 16-bit or P3 assets if the app supports iOS 8 or earlier

Hi, I just started seeing this error (without change in assets) in a testflight submission (we have iOS10-only code) - this is the full message (from XCode8)


"ERROR ITMS-906832: "Invalid Bundle. The aseet catalog at 'Paylod/XXXX/Assets.car' can't contain 16-but or P3 assets if the app supports iOS 8 or earlier"


I can submit by disabling iOS8 but need to know if this is a temporary error, or something wrong in our assets.


Thank you

Accepted Reply

How to resolve "ERROR ITMS-90682: Invalid Bundle - The asset catalog at 'Payload/XXXXX/Assets.car' can't contain 16-bit or P3 assets if the app supports iOS 8 or earlier."

With Xcode 8 GM, this error will occur if you include 16-bit or P3 assets in an app submission targeting iOS releases earlier then iOS 9.3. If your app requires wide color functionality you must change your Deployment Target to iOS 9.3 or later. If your app does not require wide color functionality and you wish to deploy it to older iOS versions then you should replace all 16-bit or P3 assets with 8-bit sRGB assets.


You can find 16-bit or P3 assets by running “assetutil” on the asset catalog named in the error message from iTunes Connect. The following steps outline the process:

1. Create an Inspectable .ipa file. In the Xcode Organizer (Xcode->Window->Organizer), select an archive to inspect, click “Export...", and choose "Export for Enterprise or Ad-Hoc Deployment". This will create a local copy of the .ipa file for your app.

2. Locate that .ipa file and change its the extension to .zip.

3. Expand the .zip file. This will produce a Payload folder containing your .app bundle.

4. Open a terminal and change the working directory to the top level of your .app bundle

cd path/to/Payload/your.app


5. Use the find tool to locate Assets.car files in your .app bundle as shown below:

find . -name 'Assets.car'


6. Use the assetutil tool to find any 16-bit or P3 assets, in each Assets.car your application has as shown below. :

sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json


7. Examine the resulting /tmp/Assets.json and look for any contents containing “DisplayGamut": “P3” and its associated “Name". This will be the name of your imageset containing one or more 16-bit or P3 assets.


8. Replace those assets with 8-bit / sRGB assets, then rebuild your app.


Update: If your Deployment Target is set to either 8.3 or 8.4 and you have an asset catalog then you will receive this same error message, even if you do not actually have 16-bit or P3 assets. In this case you will either need to lower your Deployment Target to 8.2, or move it up to 9.x.

Replies

I'm having the same issue? We need help over here

I'm having the same issue.


For sanitys sake I took all the stickers + iMessage icons and put them in my project without the iMessage extension and the build validates fine so it seems like the issue is not with my raw assets atleast.

I am running into the same issue.

I solved it this way.


  1. in the Project Navigator, go to your iMessage Extension and select all the app icons that are included in the Assets.xcassets file.
  2. On the Utilities panel (the one on the right) change the Type of the asset to Icon. Just like in this pic:
    https://dl.dropboxusercontent.com/u/7870516/Screen%20Shot%202016-08-26%20at%204.30.43%20PM.png


In my case, it seems like I had problems with the extension icons.

Could we get a response from iTC engineers? I've already went through all images and all of them have 8-bit color depth or less and are using RGB/sRGB/Gray color space.

We are running into this as well. As far as I know everything is setup correctly in the Assets.xcassets, and I've even tried the setting to "Icon" suggestion.

We could use some anwsers, in the dark on this one!

I'm also having this issue after submitting a build with an iMessage extension. Would appreciate some answers as well.

The Icon setting didn't help with my build (xcode 8 beta 6). Still have targetting ios 9 as my only option.


Yes, an Apple response here would be great.

Having the same issue In xcode8 beta6, removed all sticker assests from app and still having the issue, would be great to get a response from Apple.

This appears to be a new issue/bug introduced in ITC in the last 10 days. We submitted a beta app 10 days ago and all was fine, then today we get the error.


ERROR ITMS-90682: “Invalid Bundle. The asset catalog at “Payload/MYAPP.app/Watch/MYAPPWatchApp2.app/Assets.car’ can’t contain 16-bit or P3 assets if the app supports iOS 8 or earlier.


The assets that the error is complaining about are in our watchOS app. These assets have been shipping in our app since watchOS 1 without issue. Since they're in watchOS, it doesn't make any sense that restricting to iOS 9 or later would help.


BTW, my colleague found this tool for inspecting .car archives.


https://github.com/steventroughtonsmith/cartool


Time to submit a bug.


Steve

Some slight variation here:
I do have a Universal App building for iOS 7 but I do have a Today Widget that is only targeting iOS 9 and newer.


Here, I'm having the same issue with Xcode 8 beta6.


I suspect the problem is having a target building for iOS 9 and newer only, Xcode probably creates a resource for this target which is not compatible with iOS 8 and older and thus invalidates the whole bundle.

This started happening for me too (no extensions).

What's interesting is that it started when I selected iOS 8.3 (instead of 8.1) as my target in XCode 8 (Beta 6). It does indeed work switching back to 8.1.

I also tried 8.4 which has the same bug.

Chiming in that this has also happened to me when trying to test an iMessage extension. I had to raise all deployment targets to iOS 9 in order for iTunes Connect to accept the build.

I/we also ran into this problem with Assets.car in our watch app. We were perplexed because the images in the Asset Catalog haven't changed in more than a year, since we first built our watch OS 1.0 support. It turns out we have several variants of our app and one of our apps was rejected while the others were accepted bythe submission process. I tried to find info on the Assets.car (BOM file) format. I found some tools on GitHub that didn't really help but the one thing I noticed is that Assets.car in the reject app (watch app) was much larger than in the other variants of our app. After a lot of poking around I found that for the rejected app, I had forgotten I had bump the minimum deployment target for our watch extension and our watch app up to watchOS 3.0 while in the other variants the minmum deployment target was watchOS 2.0. I lowered the minimum deployment target back to watchOS 2.0 and our app submission was accepted. I came to the conclusion that there is something in compatible with iOS 8, in compiled asset files whose miminum deployment target is watch OS 3 and ultimately the problem I encountered was that watchOS 3 only apps are not compabile with iOS 8. I guess if you want to deploy on iOS 8, you have to continue to support watchOS 2.

Had the same problem. Turned out, that XIB Files that were (automatically) set to "XCode 8" format caused the issue. After setting them back to XCode 7.x (which closes them, you can't reopen them in the XCode-8 Beta later on, since that will set the Format back to v8) the Upload went without issues!