【问题标题】:Why does Application Loader not find my icons (error code: ERROR ITMS-90023)?为什么 Application Loader 找不到我的图标(错误代码:ERROR ITMS-90023)?
【发布时间】:2021-02-04 01:13:02
【问题描述】:

我想发布一个用 Xamarin 开发的 ios 应用。在我将 .ipa 文件加载到 Appstore 的最后一步中,我收到了众所周知的消息:

错误 ITMS-90023:“缺少所需的图标文件。捆绑包没有 包含一个正好为“152x152”像素的 iPad 应用程序图标,以 .png 格式 iOS 版本 >= 7.0 的格式。

错误 ITMS-90023:“缺少所需的图标文件。捆绑包没有 包含一个正好为“167x167”像素的 iPad 应用程序图标,以 .png 格式 支持 iPad Pro 的 iOS 版本的格式。

错误 ITMS-90023:“缺少所需的图标文件。捆绑包没有 包含一个精确的“76x76”像素的 iPad 应用程序图标,采用 .png 格式 对于 iOS 版本 >= 7.0。

许多人有同样的问题,许多人花了几天或几周的时间来解决这个问题。我已经阅读了我能找到的关于这个主题的所有文章,不幸的是他们提出的解决方案对我不起作用。

我有最新版本的 VS (16.7.6)、Xcode (12.0.1) 和 Xamarin (16.7.0)。 我使用 Transporter 作为应用程序加载器。

设置:

  1. 我的所有图标都是由 VS 中的 Media.xassets AppIcons 设置的。 所有图像都有正确的尺寸。我的原始图像名称是 Icon-76.png、Icon-152.png、Icon-167.png。 VS 使用新名称制作新的物理图标,并且这些图标与 json 文件匹配。
{
  "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 很好地映射了图标。

  2. 在 bin\iPhone\Release 中的图标有一个新名称:

    Icon names

  3. .ipa 文件也包含所有内容

  4. Info.plist 有

<key>XSAppIconAssets</key>
    <string>Resources/Media.xcassets/AppIcons.appiconset</string> 
<key>CFBundleIconName</key>
    <string>AppIcons</string>
  1. Mac 端正确反映 Windows 端。所有图片、content.jpg、info.plist 都在 库/缓存/Xamarin/mtbs/builds/.ios//bin/iPhone/Release/..

我在pc端编译,设置如下:

PC side settings

(当我在模拟器和设备上以开发者模式运行应用程序时,它运行良好。)

我删除了所有占位符,我删除了 Resources\Media.xcassets\AppIcons.appiconset 中的所有图标,我删除了 Contents.json "images":[],我删除了所有 bin 和 obj。我删除了mac端Library/Caches/Xamarin/mtbs/ 清理了项目。重新启动计算机。

然后我通过 assets i VS 小心地放回所有图像。

我再次重复这个过程来检查。

我还尝试将错误的图像尺寸用于占位符,但我收到反馈说图像尺寸错误。

您有什么想法可能是什么问题以及接下来要尝试什么?

【问题讨论】:

  • 您好,首先我想确定一下您使用什么方法生成图标图像?
  • 我没有使用任何特定的工具,只有 Paint .NET。

标签: ios xamarin.ios publishing


【解决方案1】:

我发现filename有些错误。

一般filenameIcon-scale*size.png 定义,但是您的文件名包含 显示更多号码1

因此,您可以修改filename如下:

{
  "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"
},

注意:也可以不定义-,定义filename,如Icon167.png

【讨论】:

  • 感谢您的回答!我也对此进行了测试,但在错误消息中没有显示任何差异。我会再次测试。我可以在下周再次访问我的测试环境时更新你。
  • @kriba Okey,当您更新 Contents.jsonfilename 时,您还需要更新实际的 .png 文件的名称。
【解决方案2】:

我做了两个改变:

  1. 我再次创建了配置文件。
  2. 我在我的 Mac 上安装了 VS 并从中运行程序。

我的结论是,如果你在你的电脑端做的一切都是正确的并且你得到这个非常奇怪的行为,请确保你的配置文件设置正确并直接从你的 mac 运行程序。

【讨论】:

    【解决方案3】:

    在尝试 Kriba 升级 VS / xCode 的解决方案之前,我想快速检查创建一个新项目并将我的文件移动到它是否可以解决我的问题。 (因为升级 VS/xCode 会放大问题,比较耗时)

    所以,我创建了一个新的 Xamarin.Forms 项目,并在配对的 Mac 中使用 Transporter 工具 上传了 IPA。在 Transporter 工具中,我使用 Verify 选项(而不是 Deliver)来检查任何错误。这个新的 IPA 没有任何问题。所以我确认问题出在旧的 Visual Studio 项目文件上。

    将所有文件复制/粘贴到新创建的 VS 项目 (Xamarin.Forms) 后,Transporter 工具中的验证 选项现在会导致成功(已验证状态 - 绿色勾号图标)

    附: :除了在终端中使用命令之外,我发现 Transporter 应用程序更加用户友好和有用。

    【讨论】:

    • 谢谢!很高兴知道!如果我再次遇到这种情况,我会尝试这个解决方案。
    猜你喜欢
    • 2016-01-16
    • 2017-01-04
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2019-08-03
    相关资源
    最近更新 更多