Missing required icon file

this issue is annoying…

I tried default icons from Resource folder, I tried to create each icon with required size and without transparency, I even tried stupid thing to save icon in jpg and then jpg to png to be sure there is no transparency… and nothing

I use Corona Version 2017.3174 (2017.11.14) and xcode Version 9.1 (9B55). 

ITMS-90022: “Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly ‘120x120’ pixels, in .png format for iOS versions >= 7.0.”, ERROR ITMS-90023: “Missing required icon file. The bundle does not contain an app icon for iPad of exactly ‘76x76’ pixels, in .png format for iOS versions >= 7.0.”, ERROR ITMS-90023: “Missing required icon file. The bundle does not contain an app icon for iPad of exactly ‘167x167’ pixels, in .png format for iOS versions supporting iPad Pro.”, ERROR ITMS-90023: “Missing required icon file. The bundle does not contain an app icon for iPad of exactly ‘152x152’ pixels, in .png format for iOS versions >= 7.0.”]

Most people miss an important step. There are other files that need included. The entire Images.xcassets folder needs copied to make sure to get all the .json files.

Try copying the entire folder, then dropping your icons into the folder, overwriting the default ones.

Rob

thanks for reply, Rob Miracle.

I’ve removed Images.xcassets and copy-paste from Recourse Library again and nothing.

I have these icon related options in the build.settings

CFBundleIconFiles = {},  – Required!

UIPrerenderedIcon = true,

CFBundleIconFile = “Icon.png”,

I tried with and without CFBundleIconFile 

here is my build.settings if needed

[spoiler][lua]

settings = {

splashScreen =
{
enable = false
},
orientation =
{
default = ‘portrait’,
supported =
{
‘portraitUpsideDown’
},
},

android = {
supportsScreens =
{
smallScreens = true,
normalScreens = true,
largeScreens = true,
xlargeScreens = true,
},
usesPermissions = {
‘android.permission.INTERNET’,
‘android.permission.ACCESS_NETWORK_STATE’,
“android.permission.RECEIVE_BOOT_COMPLETED”,
“com.android.vending.BILLING”,
“android.permission.ACCESS_COARSE_LOCATION”,
“android.permission.WRITE_EXTERNAL_STORAGE”
},
facebookAppId = “381887575532140”, – Replace XXXXXXXXXX with your Facebook App ID
},
plugins =
{
[“CoronaProvider.native.popup.social”] =
{
publisherId = “com.coronalabs”
},

[“plugin.appodeal”] =
{
publisherId = “com.coronalabs”,
supportedPlatforms = { iphone=true, android=true }
},

[“plugin.google.play.services”] =
{
publisherId = “com.coronalabs”,
supportedPlatforms = { android=true }
},
[“plugin.notifications”] =
{
publisherId = “com.coronalabs”
},
–[“plugin.openssl”] = { publisherId = “com.coronalabs”, },
[“plugin.google.iap.v3”] =
{
publisherId = “com.coronalabs”,
supportedPlatforms = { android=true }
},
[“plugin.utf8”] =
{
publisherId = “com.coronalabs”
},
[“plugin.facebook.v4”] =
{
publisherId = “com.coronalabs”
},
},

iphone = {
plist = {

UILaunchStoryboardName = “LaunchScreen”,

UIAppFonts = {
–“Raleway.ttf”, “RalewayBold.ttf”, “Lora.ttf”
},
NSAppTransportSecurity={
NSAllowsArbitraryLoads=true,
},
CFBundleLocalizations = {
“en”, “ru”
},
UIApplicationExitsOnSuspend = false,
CFBundleShortVersionString=“1.5.6”,

CFBundleIconFiles = {}, – Required!
UIPrerenderedIcon = true,
CFBundleIconFile = “Icon.png”,

NSAppTransportSecurity =
{
NSAllowsArbitraryLoads=true,
NSExceptionDomains =
{
[“fbcdn.net”] =
{
NSIncludesSubdomains = true,
NSExceptionRequiresForwardSecrecy = false,
},
[“facebook.com”] =
{
NSIncludesSubdomains = true,
NSExceptionRequiresForwardSecrecy = false,
},
[“akamaihd.net”] =
{
NSIncludesSubdomains = true,
NSExceptionRequiresForwardSecrecy = false,
},
},
},

– Whitelist Facebook Apps
LSApplicationQueriesSchemes =
{
“fb”,
“fbapi20130214”,
“fbapi20130410”,
“fbapi20140410”,
“fbapi20140116”,
“fbapi20150313”,
“fbapi20150629”,
“fbauth”,
“fbauth2”,
“fb-messenger-api20140430”,
},

UIApplicationExitsOnSuspend = false,
FacebookAppID = “381887575532140”, --replace XXXXXXXXXX with your Facebook App ID
CFBundleURLTypes =
{
{ CFBundleURLSchemes = { “fb381887575532140”, } } --replace XXXXXXXXXX with your Facebook App ID
},
}
}

}
[/lua][/spoiler]

It’s really hard to follow the build.settings above since there are no indentions. I don’t know if they got lost when you pasted the code in or not.  Here’s my build.settings iphone block:

 iphone = { xcassets = "Images.xcassets", plist = { UIApplicationExitsOnSuspend = false, UIPrerenderedIcon=true, UIStatusBarHidden=true, NSCalendarsUsageDescription = "", NSAppTransportSecurity = { NSAllowsArbitraryLoads=true }, NSPhotoLibraryUsageDescription = "This app does not access the photo library.", NSCameraUsageDescription = "This app does not use the camera.", UILaunchStoryboardName = "LaunchScreen", } },

You can clean up the Icon entries inside the plist but you also have to list the Images.xcasset file inside iphone but outside of plist.

Rob

Thank you Rob, I missed xcassets = “Images.xcassets”, in my build.settings :( 

now it works, app submitted to Apple

No I discover that different icons show up as missing its random 

It might not be a corona issue others on Apple Developer forum are having similar issues https://forums.developer.apple.com/thread/86290

Hi fastek2000, I recently built an app using Xcode 9, the latest build, assets folder, etc. and didn’t have any issues with icons. 

Thanks, Jeff its got me stumped completely

I think what I need is a sample app to build and compare everything 

I used the sample icons and they worked so some strange thing with my icons.  They worked before.  Progress I guess but it still reports my description length is a problem its 27 Characters including spaces this should be fine.  I have never had such problems.

What version of Corona are you using?

Rob

 version 2017.3145 of the daily build I cant use the public build because it doest work with the latest xcode which is what I have. 

I figured out most of the problem I was not including the Jason file that’s in the sample code.  Even with only the sample code and icons I still get an error about an invalid icon name.  Can anyone tell me what it uses for description length I need to fix that too. 

 package(s) were not uploaded because they had problems:

/var/folders/xt/04vdrm690m79y4n12429254r0000gn/T/B969563D-3693-4142-97EE-B8E536901076/494948291.itmsp - Error Messages:

description length:193434

ERROR ITMS-90328: “Your package contains a file 'LOA Timer iphone.app/Icon ’ with a name that contains invalid characters. Avoid using control characters in the file names.”

If you copy/pasted the text, there is some character between iphone.app/Icon and the closing tick mark.  That indicates that there is more likely a hidden character there. Look to see if you have any iOS type folder Icons on your project that could be getting injected in your project.

Rob

Rob it was a hidden file left behind by dropbox causing that issue.  I still have an inconsistent item description and 120 icon error but at least I found the cause of that one error  

I see the 120x120 error above. What is the other error?

I’d almost need to see the project to debug the icon error.  Just make sure your 120x120 doesn’t have an alpha channel. 

Rob

So for anyone who might be going through this, it looks like it is a transparency issue of sorts.  I manually saved all icons with no alpha channel and I next tried an online service to convert all icons.  I just did the same thing again with a different mac program and all the errors disappeared including the description length error  Thanks Rob for pointing back to the Transparency possibility. 

After following the advice of this thread and several others without any success, I finally happened upon the solution for my individual case, which I couldn’t find posted anywhere. Hopefully this helps someone. I was experiencing the same missing icon errors for 3 icon sizes including the 120x120 like the OP.

Solution:

Copy these files into their corresponding directories in your project:

~/Applications/SampleCode/Getting Started/HelloWorld/Images.xcassets/Contents.json

~/Applications/SampleCode/Getting Started/HelloWorld/Images.xcassets/AppIcon.appiconset/Contents.json

Not to ask the obvious, but if you copy the Images.xcassets folder, shouldn’t it copy those files too?

Rob