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 also have this. Just plain ObjC app with several Swift 3 classes.

bug 28298621

lowering to 8.2 helped.

OK, iTunes Connect has been updated and this case (an iOS 10 app containing a watchOS 3.0 app) should not fail validation. Please try submitting again and let us know what happens.

Can you describe what your app is, what the Deployment Targets are of the various pieces (parent app and any extensions), and what specific extensions you have included? We just did an update last night that fixed a case of having watchOS 3 apps, so I'm trying to figure out if that's what this case is or if there's yet another issue.


Getting a bug report filed with a copy of your .ipa attached would be helpful.

Sadly it was just blind luck. Looked through all my images (we have a lot) and saw one with a differnet color space then the others. However the image itself isnt a 16-bit or P3 so the error was misleading.

This is still happening to me.


I have verified there are no P3 assets in Assets.car via the export to JSON method. My application is a Universal (iPhone and iPad) app and I have tried both deployment targets 8.1 and 8.2. I am using Swift 2.3, Xcode 8 (8A218a). The application uploaded fine (last Saturday) with Xcode 7 prior to todays Swift 2.3 upgrade with the same Assets.

I still have a substantial userbase on iOS 8 and cannot drop support for that OS yet.

Please get a bug report filed, attach your .ipa, and post your bug number here.

I now manage to upload the build using Organiser. However, when submitting for review from iTunes Connect I get the following error:

ITC.apps.assetvalidation.ASSET_CATALOG_CONTAINS_GAMUT_NOT_SUPPORTED.error.message

Thanks. Bug report: 28306396

Thanks upperlacon, but it looks like you're still in the state described by the "correct answer" at the top of this thread. Your app's main Assets.car file contains a number of images that have P3 specified as their DisplayGamut, which is not supported on iOS 8.1 (your minimum OS version). So this error message appears to be correctly flagging these issues. So follow the directions in the answer above and that'll show you the images that are problematic (there are 12 of them).

Thanks for your help.


Very weird, for the binary I created this morning (using build target 8.1) these assets are listed as sRGB in the JSON. The build I submitted with the bug report created tonight (deployment target 8.2) that gave me the same error now shows these as P3. I didn't think to run the JSON export again as I assumed it'd show the same.


Supporting 8.2 is fine for my case and I have now successfully uploaded to iTunes connect.

Could you give this one more shot? There was apparently an issue with the deployment yesterday, but hopefully it's fixed now.

This worked for me.

Spoke too soon. The binary uploaded (saw it as processing in ITC) but then I got a PUSH saying that the app had changed to binary invalid status and then it totally disappeared in ITC.


[UPDATE] Looks like I triggered another ITC check so it was correctly marked invalid.

28314971

thanks pdm, switching from 8.3 to 8.2 allowed me to pass validation, however we are using a 3rd party sdk that requires 8.3.

Do you anticipate 8.3 as a deployment target will be fixed on your end?
(realizing the alternative is to move min deployment to 9.x)

thanks,


Mike