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

Also happening for me in Xcode 8 GM Seed

Same issue with Xcode 8 GM seed.

It's wonderful when Apple decides to add checks and traps like these in GM time 😠


So what are we supposed to do now? My graphic assets are all mostly exported from Sketch which seems to export them properly color managed and Apple out of the blue decides this is a no-no, *even* when those file work just fine.


This is fantastic, thanks.

Apple ppl, how can we locally test for this, before submitting?

The same issue here.


Xcode stops complaining about 16-bit or P3 assets once deployment target is set to iOS 9 or later but we can't just drop iOS 8 support yet.

Please Apple, a solution or at least a workaround would be nice here.


Max

Archive and on the Organizer instead of hitting 'Upload to App Store' click on 'Validate'

I have submitted an issue at Apple Developer Program Support, together with the Assets.car file.

I have referenced this forum thread too.


Hopefully they'll respond soon.

I managed to submit to the app store after batch converting any 16 bit pngs in the source directory to 8 bit.


If you install ImageMagick using Brew then run this command it should do the trick:


find . -name "*.png" -print0 | xargs -0 identify | grep "16-bit" | awk '{print $1;}' | xargs mogrify -depth 8

Tried this but with no luck... same error when trying to submit the app after running this ImageMagick line on the project's folder. I'm not even sure that my project contains any 16-bit assets. Every image I've inspected in Photoshop so far has been 8 bit. Hoping to find a fix for this soon so we can submit our App + Sticker Pack!

Same thing, I've been running through our assets and I'm pretty sure they are all 8-bit.

Any information to shed light on this would be great.

didn't work for me either.


is this only a xcode 8 GM problem or are we doing something wrong?


cheers

emre

We had the same issuue.


Here's how we managed to submit.


1. With the help of XNViewMP we identified the PNGs different from PNG-8 and PNG-32 (we had PNG-24 and PNG-16)
2. Removed them to be sure they were the cause of the error
3. Convert them to PNG-32



Works like a charm now.

Sounds like it hates having a 24-bit PNG (8-bits per channel RGB) as the 1024x768 iMessage App Icon. Try making it a 32-bit PNG (RGBA 8-bits per channel).

Ran into this issue, saw that all our images did not contain 16-bit or P3 images. However we saw that one image had a differnet color space then what XCode supprots (it was something like DELL U124) . That was causing our issue. So make sure you check that out as well.

could you detail how did you achieve that?


I'm still trying to build my app with iMessage extension support, and I always get this error



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