I tried Safari and Chrome, the result is the same.
The same issue here.
I even tried to manually: unzip -> add missing 1024x1024 icon and update Info.plist -> sign resources -> zip it back. Although binary is valid and has that icon inside, it didnât help, same story ⌠Any guess what it could be?
I believe currently projects built by defold canât be upload to app store((( so if you have some time please take a look on this.
P.S.
I also tried to check if the same icon will work with hello world xcode project (indeed it works) but resulted .ipa
icons layout is really different from one that Iâm getting from defold so i canât really reuse this working layout to patch defold bundled .ipa
.
P.S. P.S.
I guess for now the best thing to do just wait for random upload success as betofantasioso proposed.
Did you try modifying the Info.plist too?
Also are you 100% sure you are using the proper signing information?
Both yes. last item icon1024.png
is one that I add (but I also tried apple recommended iTunesArtwork@2x.png
and iTunesArtwork.png
it doesnât change anything).
For signing I used:
codesign -f -s 'iPhone Distribution: xxx xxx (xxx)' --timestamp=none --entitlements entitlements.xml Payload/my_app.app
Entitlements file was obtained from original bundle file with:
codesign -d --entitlements entitlements.xml Payload/my_app.app
After this process .ipa
works perfect on end device and can be uploaded through Transporter as new build without any problem. But error sadly still appears.
Also I believe icon (marked by arrow) is indicator too if App Store Connect actually sees icon inside the bundle, it should show actual icon there if it can detect it supposedly.
That must have changed recently, I remember setting the app icon shown there on the site itselfâŚ
https://help.apple.com/app-store-connect/#/dev8b5cb82e2
Here are the icons and a custom info.plist I used (set in game.project) last time I submitted an app successfully.
[ios]
app_icon_57x57 = /_ios_resources/icons/57.png
app_icon_72x72 = /_ios_resources/icons/72.png
app_icon_76x76 = /_ios_resources/icons/76.png
app_icon_114x114 = /_ios_resources/icons/114.png
app_icon_120x120 = /_ios_resources/icons/120.png
app_icon_144x144 = /_ios_resources/icons/144.png
app_icon_152x152 = /_ios_resources/icons/152.png
app_icon_167x167 = /_ios_resources/icons/167.png
app_icon_180x180 = /_ios_resources/icons/180.png
pre_renderered_icons = 1
bundle_identifier = com.subsoap.fsr
launch_image_320x480 = /_ios_resources/launch_images/ios_launch_320x480.png
launch_image_640x960 = /_ios_resources/launch_images/ios_launch_640x960.png
launch_image_640x1136 = /_ios_resources/launch_images/ios_launch_640x1136.png
launch_image_750x1334 = /_ios_resources/launch_images/ios_launch_750x1334.png
launch_image_1334x750 = /_ios_resources/launch_images/ios_launch_1334x750.png
launch_image_768x1024 = /_ios_resources/launch_images/ios_launch_768x1024.png
launch_image_1536x2048 = /_ios_resources/launch_images/ios_launch_1536x2048.png
launch_image_1024x768 = /_ios_resources/launch_images/ios_launch_1024x768.png
launch_image_1242x2208 = /_ios_resources/launch_images/ios_launch_1242x2208.png
launch_image_2208x1242 = /_ios_resources/launch_images/ios_launch_2208x1242.png
launch_image_2048x1536 = /_ios_resources/launch_images/ios_launch_2048x1536.png
launch_image_2048x2732 = /_ios_resources/launch_images/ios_launch_2048x2732.png
launch_image_2732x2048 = /_ios_resources/launch_images/ios_launch_2732x2048.png
launch_image_1668x2224 = /_ios_resources/launch_images/ios_launch_1668x2224.png
launch_image_2224x1668 = /_ios_resources/launch_images/ios_launch_2224x1668.png
launch_image_1125x2436 = /_ios_resources/launch_images/ios_launch_1125x2436.png
launch_image_2436x1125 = /_ios_resources/launch_images/ios_launch_2436x1125.png
infoplist = /_ios_resources/Info.plist
icons_info_plist.zip (2.6 MB)
Yeah itâs weird as for me i have no input for icon at all.
The best I found on the internet, apple is detecting xcode tools version with what app was built if itâs above 8.3 it automatically asks for icon in bundle and remove icon input from the form. At least itâs a theory as I didnât try to build my app with different set of tools, etc.
Do you have any clue what version of xcode/tools do you have for this app?
P.S.
Also Apple as always - oh my GOD!
Apple is definitely moving away from the solution where the App Store Icon could be set in iTunes Connect. The new way to work with the app icons is through an icon set and an .xcassets folder, just like with the launch screen storyboard.
We have a PR here for Defold 1.2.175: https://github.com/defold/defold/pull/5148 (not merged yet)
And updated docs here: https://defold.com/manuals/ios/#creating-an-icon-asset-catalog
I tried to apply this solution from MR manually. No luck yet.
For the starters on upload in Transporter Iâm getting:
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. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file.â
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. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file.â
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. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file.â
ERROR ITMS-90704: âMissing App Icon. An app icon measuring 1024 by 1024 pixels in PNG format must be included in the Asset Catalog of apps built for iOS, iPadOS, or watchOS. Without this icon, apps cannot be submitted for review.â
I googled there is nice thread about why tablet images donât work https://developer.apple.com/forums/thread/86290, so by changing <key>BuildMachineOSBuild</key> again i get rid of following tablet icons error.
But missing app icon error still exists no matter what:
ERROR ITMS-90704: âMissing App Icon. An app icon measuring 1024 by 1024 pixels in PNG format must be included in the Asset Catalog of apps built for iOS, iPadOS, or watchOS. Without this icon, apps cannot be submitted for review.â
I followed https://defold.com/manuals/ios/#creating-an-icon-asset-catalog to create Assets.car file in Xcode it contains all relevant icons.
And patched resulting Info.plist to match MR results:
<?xml version="1.0"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19G73</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>***</string>
<key>CFBundleExecutable</key>
<string>***</string>
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconName</key>
<string>AppIcon</string>
<key>CFBundleIconFiles</key>
<array>
<string>Icon-60</string>
<string>Icon-76</string>
<string>Icon-83.5</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
<key>UIRequiresFullScreen</key>
<true/>
<key>CFBundleIdentifier</key>
<string>****</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>****</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>17G64</string>
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>DTPlatformVersion</key>
<string>12.1</string>
<key>DTSDKBuild</key>
<string>16B91</string>
<key>DTSDKName</key>
<string>iphoneos12.1</string>
<key>DTXcode</key>
<string>1010</string>
<key>DTXcodeBuild</key>
<string>10B61</string>
<key>UIFileSharingEnabled</key>
<false/>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>MinimumOSVersion</key>
<string>8.0</string>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
<string>opengles-2</string>
</array>
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>CFBundleURLTypes</key>
<array>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Your application needs permission to save the content to the gallery.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Your application needs permission to save the content to the gallery.</string>
</dict>
</plist>
Still error is the same although now on build upload and not on submit.
@britzl do you have any further ideas?
Currently ipa
files layout looks like so after patch
Also small stuff that I noticed on my way:
#1 I tried to add something like this
<key>CFBundleIconFile</key>
<string>Icon.png</string>
together with and instead of it - same old result.
<key>CFBundleIconName</key>
<string>AppIcon</string>
#2 On build version and above
<key>BuildMachineOSBuild</key>
<string>19G73</string>
I believe, it also requires this key
<key>UIRequiresFullScreen</key>
<true/>
To work properly.
With the patched Info.plist and with the presence of an Assets.car file which are the errors you are getting from the Transporter app when uploading your IPA?
@britzl with next in Info.plist
<key>BuildMachineOSBuild</key>
<string>19G73</string>
Iâm getting next errors:
With lower versions suggested in https://developer.apple.com/forums/thread/86290, it returns only:
ERROR ITMS-90704: "Missing App Icon. An app icon measuring 1024 by 1024 pixels in PNG format must be included in the Asset Catalog of apps built for iOS, iPadOS, or watchOS. Without this icon, apps cannot be submitted for review. For details, see https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/."
Which version of Xcode are you using and which macOS version?
An additional thing in new documentation https://defold.com/manuals/ios/#creating-an-icon-asset-catalog we have next statement
The App Store icon does not have to be referenced from *game.project* . It is automatically extracted from the Asset.car file when uploading to iTunes Connect.
which is entirely not true.
I canât imagine that Asset.car
embeds 1.4 MB file and weights 44KB âŚ
So last question to finish my upload is how to reference App Store icon inside defold Info.plist.
@britzl
Ok, so thatâs a problem right there then because when Iâm testing it the app icon does in fact get packaged with the Assets.car file:
I tried latest xcode from appstore 11.7 - didnât work.
I switched to xcode 10.1 now because supposedly itâs the one you used for Info.plist here
didnât work neither.
To check the contents of a .car file:
$> assetutil -I Assets.car
I see ⌠what version of xcode/mac do you use?
Catalina 10.15.6
Xcode 11.6
I think this was updated on my system a few days ago
assetutil -I Assets.car
[
{
"AssetStorageVersion" : "IBCocoaTouchImageCatalogTool-10.1",
"Authoring Tool" : "@(#)PROGRAM:CoreThemeDefinition PROJECT:CoreThemeDefinition-347.1\n",
"CoreUIVersion" : 498,
"DumpToolVersion" : 609.4,
"Key Format" : [
"kCRThemeAppearanceName",
"kCRThemeScaleName",
"kCRThemeIdiomName",
"kCRThemeSubtypeName",
"kCRThemeDeploymentTargetName",
"kCRThemeGraphicsClassName",
"kCRThemeMemoryClassName",
"kCRThemeDisplayGamutName",
"kCRThemeDirectionName",
"kCRThemeSizeClassHorizontalName",
"kCRThemeSizeClassVerticalName",
"kCRThemeIdentifierName",
"kCRThemeElementName",
"kCRThemePartName",
"kCRThemeStateName",
"kCRThemeValueName",
"kCRThemeDimension1Name",
"kCRThemeDimension2Name"
],
"MainVersion" : "@(#)PROGRAM:CoreUI PROJECT:CoreUI-498.40.1\n",
"Platform" : "ios",
"PlatformVersion" : "12.1",
"SchemaVersion" : 2,
"StorageVersion" : 15,
"ThinningParameters" : "optimized <idiom 1> <subtype 1792> <scale 2> <gamut 1> <graphics 6> <graphicsfallback (5,4,3,2,1,0)> <memory 4> <deployment 3> <hostedIdioms (4,5)>",
"Timestamp" : 1599423009
},
{
"AssetType" : "Icon Image",
"BitsPerComponent" : 8,
"ColorModel" : "RGB",
"Colorspace" : "srgb",
"Compression" : "lzfse",
"Encoding" : "ARGB",
"Icon Index" : 0,
"Idiom" : "phone",
"Image Type" : "kCoreThemeOnePartScale",
"Name" : "AppIcon",
"NameIdentifier" : 6849,
"Opaque" : true,
"PixelHeight" : 120,
"PixelWidth" : 120,
"RenditionName" : "Icon-120.png",
"Scale" : 2,
"SHA1Digest" : "7B4BC71B23FDE1A02F7B5A42E155173BA08E911F",
"SizeOnDisk" : 9894,
"State" : "Normal",
"Value" : "Off"
},
{
"AssetType" : "Icon Image",
"BitsPerComponent" : 8,
"ColorModel" : "RGB",
"Colorspace" : "srgb",
"Compression" : "lzfse",
"Encoding" : "ARGB",
"Icon Index" : 3,
"Idiom" : "phone",
"Image Type" : "kCoreThemeOnePartScale",
"Name" : "AppIcon",
"NameIdentifier" : 6849,
"Opaque" : true,
"PixelHeight" : 180,
"PixelWidth" : 180,
"RenditionName" : "Icon-180.png",
"Scale" : 2,
"SHA1Digest" : "5534549CCFC315C094D91E77C4D3F0D4B405E282",
"SizeOnDisk" : 16370,
"State" : "Normal",
"Subtype" : 1792,
"Value" : "Off"
},
{
"AssetType" : "MultiSized Image",
"Idiom" : "phone",
"Name" : "AppIcon",
"NameIdentifier" : 6849,
"Scale" : 1,
"Sizes" : [
"60x60 index:0 idiom:phone"
],
"State" : "Normal",
"Value" : "Off"
},
{
"AssetType" : "MultiSized Image",
"Idiom" : "phone",
"Name" : "AppIcon",
"NameIdentifier" : 6849,
"Scale" : 1,
"Sizes" : [
"90x90 index:3 idiom:phone subtype:1792"
],
"State" : "Normal",
"Subtype" : 1792,
"Value" : "Off"
}
]
yeah itâs definitely not full icon list, might it be alpha channel that causes problem or so?