How to deal with 'Missing Asset Catalog' response from iTunes Connect?

After putting an IPA through the application loader, and it passing without warnings, I receive a mail from iTunes Connect stating:

Missing Asset Catalog - Your app is missing the asset catalog file in ‘Clean.app’.

I assume that the building process is supposed to take care of this, and that the asset catalog is either omitted when building, or perhaps the asset catalog has a fault, that is then in turn interpreted as the list missing, when being evaluated by iTunes Connect.

What is the cause? How do I remedy this?

Some more info and speculation:

I called the project ‘Clean’ due it being a fresh project to test 4.18.0 iOS deployment rather than using something converted from earlier versions.
I’ve been uploading and testing on iOS for some time and have never encountered this problem until 4.18.0, so I assume that is relevant.

I dug into the intermediate folder and found the assetcatalog_generated_info.plist file in the /Intermediate/IOS/Resources folder. I assume this is, or what becomes, the asset catalog. Looking into it I notice there is no reference to the 1024 marketing icon, in spite of it being located in the same folder as all the other icons mentioned. I don’t know if this is as it should be, or the source of the problem.

Contents of assetcatalog_generated_info.plist file:

<?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>CFBundleIcons</key>
	<dict>
		<key>CFBundlePrimaryIcon</key>
		<dict>
			<key>CFBundleIconFiles</key>
			<array>
				<string>AppIcon20x20</string>
				<string>AppIcon29x29</string>
				<string>AppIcon40x40</string>
				<string>AppIcon60x60</string>
			</array>
			<key>CFBundleIconName</key>
			<string>AppIcon</string>
		</dict>
	</dict>
	<key>CFBundleIcons~ipad</key>
	<dict>
		<key>CFBundlePrimaryIcon</key>
		<dict>
			<key>CFBundleIconFiles</key>
			<array>
				<string>AppIcon20x20</string>
				<string>AppIcon29x29</string>
				<string>AppIcon40x40</string>
				<string>AppIcon60x60</string>
				<string>AppIcon76x76</string>
				<string>AppIcon83.5x83.5</string>
			</array>
			<key>CFBundleIconName</key>
			<string>AppIcon</string>
		</dict>
	</dict>
</dict>
</plist>

I also noticed that resetting the 1024x1024 marketing icon to its default, under ‘project settings / platform / iOS’ in the editor, gives the message “Could not overwrite image file.” and as I remember it, the 1024 marketing icon started out not pointing to any image, so I had to make one for testing purposes. Could be related to the larger issue.

Am I on to something here, or is it something else entirely causing the problem? Any insights to this issue will be greatly appreciated.

You need the file Assets.car under your Clean.app. Also you need the proper AppIcon*.png under the root. A good way to verify that they exist is

  1. take your ipa, rename to zip .
  2. extract the .zip file and you should see Payload subdirectory
  3. Browse under Payload, show package contents of Clean.app
  4. When looking under Directory you should see AppIcon pngs, and the respective Assets.car.

If Assets.car is not created properly and loaded in the Payload of your .app, something in the build script is causing it to error. I had the same issue when I migrated from 4.17.2 to 4.18.0. I have both Xcode 8.3.3 and Xcode 9.0.0 running on my build machine, running both versions of UE4. I edited my iOS settings in Unreal Engine, added the marketing 1024x1024 png, changed the Build version to 11.0, and Metal 2.0, required a restart of UE4 editor. When I built this time, voila those missing files were miraculous under the .app Payload!

I don’t know exactly what I did, but toggling those settings seemed to work. I toggled back to iOS 10.0 and Metal 1.2, and it seemed to build just fine, and upload via Application Loader into TestFlight without the error notification.

Here is the .app root listing of files:

The problem has now gone away. In my case the asset catalog was missing while targeting iOS 11 and using metal 2.0. With all the restarting and twiddling with settings, it may well have been changing iOS and metal targets that made the difference, but I would be remiss if I didn’t add, that the last thing I did before things worked out was updating Xcode to version 9.1

It seems this issue is back in UE 4.18.1 and Xcode 9.2 on iOS 11.

Is it just me or is it really hard to sync up with current release cycles on iOS UE4 apps?

Thanks for the warning. You are not wrong, I only upgrade things when something new is really needed and/or something is not working. When waiting for as long as possible to upgrade, there is a chance of issues being solved in the interim.