ITMS-90892:Apple App Store 中缺少推荐的图标错误

Posted

技术标签:

【中文标题】ITMS-90892:Apple App Store 中缺少推荐的图标错误【英文标题】:ITMS-90892: Missing recommended icon error from Apple App Store 【发布时间】:2021-07-19 22:57:52 【问题描述】:

我最近将我的应用提交到 App Store 时收到此错误。

ITMS-90892:缺少推荐的图标 - 该捆绑包不包含适用于 iPad 的替代应用程序图标,该图标正好为“167x167”像素,支持 iPad Pro 的 ios 版本为 .png 格式。为了支持较旧的操作系统,在资产目录之外的捆绑包中可能需要该图标。确保 Info.plist 文件包含引用该文件的适当条目。见

它与应用程序结构中的备用图标和我认为的名称有关,但与资产目录无关。在我的应用中,用户可以选择主屏幕的图标。

我有 4 个图标可供选择,每个图标有 4 个尺寸,例如- AA_appIcon@2x, AA_appIcon@2x~iPad, AA_appIcon@3x, AA_appIcon83.5@2x~iPad 以前可以正常工作,但现在我收到这个错误,名称为 AA_appIcon83.5@2x~iPad。 它的尺寸是正确的 167x167,所以不确定是什么问题。 这只是在最近几天发生的,在我一个月前的上一次提交中没有发生。

命名格式必须是最近更改过的。 有没有人能够发现错误?

这是 info.plist

<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>AA</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>AA_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
        <key>Cake</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>Cake_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
        <key>NA</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>NA_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
        <key>OA</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>OA_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
    </dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>Cake_appIcon</string>
        </array>
        <key>UIPrerenderedIcon</key>
        <false/>
    </dict>
</dict>

<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>AA</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>AA_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
        <key>Cake</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>Cake_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
        <key>NA</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>NA_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
        <key>OA</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>OA_appIcon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <string>No</string>
        </dict>
    </dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>Cake_appIcon</string>
        </array>
        <key>UIPrerenderedIcon</key>
        <false/>
    </dict>
</dict>

【问题讨论】:

【参考方案1】:

如果您遇到错误 ITMS-90890ITMS-90892 等,这就是您在 2021 年末所需要的。

File Name size
IconName@2x.png 120x120
IconName@3x.png 180x180
IconName@2x~ipad.png 152x152
IconName@3x~ipad.png 167x167

*注意~ipad 没有大写!

【讨论】:

【参考方案2】:

没关系

我刚刚将图标从 AA_appIcon83.5@2x~iPad.png 重命名为 AA_appIcon@3x~ipad.png,错误消失了,图标选择器仍然可以在应用内工作。

【讨论】:

【参考方案3】:

根据@Warpling 的回答,以下是正确设置备用图标所需的一切:

1。创建图标文件

首先,您必须在主项目(info.plist 文件所在的位置)内创建一个名为 AlternateAppIcons 的文件夹。

现在,在您创建的文件夹中,添加具有表格中描述的名称和大小的文件:

File Name Size
IconName@2x.png 120x120
IconName@3x.png 180x180
IconName@2x~ipad.png 152x152
IconName@3x~ipad.png 167x167
我建议您使用Icon Set Creator 生成所有尺寸,然后 确保@之后的文件名完全相同(区分大小写)。 当您更改IconName 时,请确保在info.plist 中也进行更改。

2。配置info.plist

您必须将此添加到info.plist

<key>CFBundleIcons</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>IconName</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>IconName</string>
            </array>
        </dict>
    </dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array/>
        <key>UIPrerenderedIcon</key>
        <false/>
    </dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>IconName</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>IconName</string>
            </array>
        </dict>
    </dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array/>
        <key>UIPrerenderedIcon</key>
        <false/>
    </dict>
</dict>

3。以编程方式更改图标

您所要做的就是验证该应用是否支持备用图标并进行更改:

guard UIApplication.shared.supportsAlternateIcons else  return 
UIApplication.shared.setAlternateIconName("IconName")

*您可能想要创建一些 enum 助手,例如 this。

【讨论】:

以上是关于ITMS-90892:Apple App Store 中缺少推荐的图标错误的主要内容,如果未能解决你的问题,请参考以下文章

苹果mac怎么下载app stor以外的东西

Apple 在 S3 上的 apple-app-site-association 文件与 CloudFront 分发

Apple-app-site-association 文件未链接到应用程序

Apple 拒绝 App 的元数据:“Cant locate In App Purchase in my App”。? [关闭]

如何将用户从 Apple Watch 通知转移到 Apple Watch App?

Firebase 更新 apple-app-site-association