应用图标不再适用于 iOS (Xamarin)

问题描述

我已经向应用商店提交应用更新两年多了,但在我最后一次提交时,Apple 突然拒绝了提交。

ITMS-90713:缺少 Info.plist 值 - 包“com.gerrie.mobile.ios”中缺少 Info.plist 键“CFBundleIconName”的值。使用 iOS 11 或更高版本 SDK 构建的应用程序必须在资产目录中提供应用程序图标,并且还必须为此 Info.plist 键提供值。如需更多信息,请参阅http://help.apple.com/xcode/mac/current/#/dev10510b1f7

奇怪的是,我的 Info.plist 文件明确指定了这个值。

<key>CFBundleIconName</key>
<string>AppIcon</string>

我有一个名为“媒体”的资产目录,并且我创建了一个 AppIcon 资产。我在设计器中为每个图像尺寸提供了一个图像。

我的 Info.plist 也包含对此资产的引用。

<key>XSAppIconAssets</key>
<string>Media.xcassets/AppIcon.appiconset</string>

我的 csproj 包含目录中每个文件的 ImageAsset 条目

<ImageAsset Include="Media.xcassets\AppIcon.appiconset\Contents.json">
    <Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcon.appiconset\Icon1024.png">
    <Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcon.appiconset\Icon120.png">
    <Visible>false</Visible>
</ImageAsset>
... snip

每当我将我的应用部署到设备进行调试时,图标就不再显示,而我只会获得 iOS 认图标。

我不确定我哪里出错了。大多数关于此主题的帮助文章都说我需要使用资产目录,但我已经在使用。

是否有我需要遵循的特定命名约定,或者我做错了什么?

解决方法

我前段时间遇到了同样的问题。所以我将我的 info.plist 文件修改为

  <key>CFBundleIcons</key>
    <dict>
      <key>CFBundlePrimaryIcon</key>
      <dict>
        <key>CFBundleIconName</key>
        <string>Icon1024</string>
        <key>CFBundleIconFiles</key>
        <array>
          <string>Icon-60</string>
          <string>Icon-76</string>
        </array>
      </dict>
    </dict>
    <key>XSAppIconAssets</key>
    <string>Assets.xcassets/AppIcons.appiconset</string>

Apple 批准我的应用程序就足够了。希望,这会有所帮助。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...