0
votes

I would like to publish an ios app developed in Xamarin. In my last step to load the .ipa-file to the Appstore I get the well-known messages:

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.

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 '76x76' pixels, in .png format for iOS versions >= 7.0.

Many had the same problem and many spent days or weeks to solve this problem. I have read all the articles I could find on the subject and unfortunately their proposed solutions don’t work for me.

I have the latest version of VS (16.7.6), Xcode (12.0.1) and Xamarin (16.7.0). I use Transporter as Application Loader.

Settings:

  1. All my icons set up by Media.xassets AppIcons in VS. All images have correct size. My original image names were Icon-76.png, Icon-152.png, Icon-167.png. VS makes new physical icons with new names and those match the json-file.
{
  "scale": "1x",
  "size": "76x76",
  "idiom": "ipad",
  "filename": "Icon-761.png"
},
{
  "scale": "2x",
  "size": "76x76",
  "idiom": "ipad",
  "filename": "Icon-1521.png"
},
{
  "scale": "2x",
  "size": "83.5x83.5",
  "idiom": "ipad",
  "filename": "Icon-1671.png"
},
  1. Contents.json maps the icons well.

  2. In bin\iPhone\Release the icons are there with a new name:

    Icon names

  3. .ipa-file contains everything as well

  4. Info.plist has

<key>XSAppIconAssets</key>
    <string>Resources/Media.xcassets/AppIcons.appiconset</string> 
<key>CFBundleIconName</key>
    <string>AppIcons</string>
  1. The Mac side reflects the Windows side correctly. All images, content.jpg, info.plist are in the Library/Caches/Xamarin/mtbs/builds/.ios//bin/iPhone/Release/..

I compile on pc side with the following settings:

PC side settings

(When I run the app in developer mode both in simulator and on device it works well.)

I have deleted all the placeholders, I deleted all icons from Resources\Media.xcassets\AppIcons.appiconset, I deleted the Contents.json "images":[], I deleted all the bin and obj. I deleted the mac side Library/Caches/Xamarin/mtbs/ Cleaned the project. Restarted computer.

Then I put back all the images carefully via assets i VS.

I repeated this procedure again to check.

I also tried to take bad image size to the placeholder but I got feedback that the image had wrong size.

Do you have any ideas what the problem could be and what to try next?

3
Hi, frist I want to be sure that what method did you use to generate the icon image? - Junior Jiang
I haven't used any particular tools, only Paint .NET. - kriba

3 Answers

0
votes

I found that there are some wrongs with filename.

Generally, the filename defined by Icon-scale*size.png, however your filename contains number 1 more is shown.

Therefore, you could modify the filename as follows:

{
  "scale": "1x",
  "size": "76x76",
  "idiom": "ipad",
  "filename": "Icon-76.png"
},
{
  "scale": "2x",
  "size": "76x76",
  "idiom": "ipad",
  "filename": "Icon-152.png"
},
{
  "scale": "2x",
  "size": "83.5x83.5",
  "idiom": "ipad",
  "filename": "Icon-167.png"
},

Note: Also can define the filename without -, such as Icon167.png.

0
votes

The two changes I made:

  1. I created the provisioning profile again.
  2. I installed VS on my mac and run the program from that.

My conclusion is if you do everything correct on your pc side and you get this very strange behavior, make sure your profile is set up correctly and run the program directly from your mac instead.

0
votes

Before trying Kriba's solution of upgrading VS / xCode, I wanted to quickly check whether creating a new project and moving my files to it would solve my problem. (Because upgrading VS/xCode will enlarge the issue and is more time-consuming)

So, I created a new Xamarin.Forms project and uploaded the IPA using Transporter tool in the paired Mac. In the Transporter tool, I used Verify option (instead of Deliver) to check for any errors. This new IPA didn't have any issues. So I confirmed that the problem was with the old Visual Studio project file.

After copy/pasting all the files to the newly created VS project (Xamarin.Forms), the Verify option in Transporter tool now resulted in success (Verified status - Green tick icon)!

P.S. : More than using the command in Terminal, I found the Transporter app to be more user-friendly and helpful.