上传IPA到应用商店时如何修复"'CFBundleIconName' is missing"错误?



又是一个&quotCFBundleIconName"丢失";问题

我知道SO中已经有很多问题的标题几乎相同,许多答案提出了不同的解决方案

在我看来,这背后的问题是使用了苹果公司的一条非常通用的消息来涵盖非常广泛的问题

我有一个iOS应用程序(使用Xamarin.Forms编写(,它已经在AppStore中发布。然而,最近,我试图上传一个更新,我收到了一封来自苹果电子邮件,上面写着

尊敬的开发人员,

我们发现您的应用程序的最近交付存在一个或多个问题,"Kuhnle Mobile 2021;2021.1.35242(35242(。请更正以下问题,然后再次上传。

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

致问候,

应用商店团队

这是我第一次从Apple收到这条消息,但我很快就明白我不是第一个这样做的:在so和其他论坛中,我找到了许多针对不同场景的解决方案,但遗憾的是,我找到的答案都不能解决我的问题:我一次又一次地从

Apple接下来我将描述我的系统以及我已经尝试过的内容。

系统说明

配置详细信息

我正在使用构建iOS应用程序

  • Xamarin.Forms 5.0..2012
  • 作为IDE,我在Windows 10上使用Visual Studio 1916.10
  • 要构建iOS应用程序,我使用带有macOs Big Sur 11.4的远程MacMini
  • Xcode 12.5

项目详细信息

如上所述,我已经尝试/排除了我发现的所有选项/解决方案:

  • 我的项目已经使用资产目录(自上次上传到AppStore以来!(,其中包括1024像素的AppStore图标
  • 我的Info.plist已经有了XSAppIconAssetsCFBundleIconName,看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>MinimumOSVersion</key>
<string>13.5</string>
<key>CFBundleDisplayName</key>
<string>Kuhnle Mobile 2022</string>
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
<key>CFBundleLocalizations</key>
<array>
<string>de</string>
<string>en</string>
<string>es</string>
</array>
<key>CFBundleIdentifier</key>
<string>com.my.AppName</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>CFBundleShortVersionString</key>
<string>2022.1.34969</string>
<key>CFBundleVersion</key>
<string>34969</string>
<key>XSAppIconAssets</key>
<string>Assets.xcassets/AppIcon.appiconset</string>
<key>CFBundleIconName</key>
<string>AppIcon</string>
<key>UIUserInterfaceStyle</key>
<string>Light</string>
<key>NSCameraUsageDescription</key>
<string>By granting access to the camera you will be able to make photos that you consider specifically relevant for the current document and have them stored directly in its associated folder.</string>
</dict>
</plist>
  • My~ios.csproj文件确实包含ImageAssets,看起来如下
<ItemGroup>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetContents.json">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-60@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-60@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-60@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-76.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-761.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-76@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-83.5@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-AppStore1024.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Notification20.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Notification20@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Settings29.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Small-40.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Small-401.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Small-40@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Small-40@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Spotlight29@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Spotlight29@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassetsAppIcon.appiconsetIcon-Spotlight29@3x.png">
<Visible>false</Visible>
</ImageAsset>
</ItemGroup>

问题描述

所有这些都是说:我可以使用VS构建、归档和上传项目,然而,在上传后,我收到了一封电子邮件,邮件开头有这样的消息此外,当我去检查macMini中的ipa文件时,我看不到有效负载文件夹中包括任何资产,也不包括资产。car文件:试图上传此ipa会导致Apple发来一封带有相同消息的电子邮件。

我真的很感激任何解决这个问题的想法,因为我已经处理了几天了!

更新(2021年6月16日(

Visual Studio for Windows 16.10.2版已经发布,并对导致OP问题的错误进行了修复。


原始答案

这是一个已报告的错误,正在进行修复

https://github.com/xamarin/xamarin-macios/issues/11786

相关内容

最新更新