如何修复上传 ipa 到 AppStore 时出现“'CFBundleIconName' is missing”错误?
How to fix "'CFBundleIconName' is missing" error when uploading ipa to AppStore?
还有一个“'CFBundleIconName' 丢失”的问题
我知道 SO 中已经有很多标题几乎相同的问题,许多答案提出了不同的解决方案。
在我看来,这背后的问题是使用来自 Apple 的非常通用的消息来涵盖非常广泛的问题。
我有一个 iOS 应用程序(使用 Xamarin.Forms 编写),它已经发布在 AppStore.尽管如此,最近我尝试上传更新,但我从 Apple 那里收到了一个 e-mail 说
Dear Developer,
We identified one or more issues with a recent delivery for your app,
"Kuhnle Mobile 2021" 2021.1.35242 (35242). Please correct the
following issues, then upload again.
ITMS-90713: Missing Info.plist value - A value for the Info.plist key
'CFBundleIconName' is missing in the bundle 'com.kuhnle.mobile2021'.
Apps built with iOS 11 or later SDK must supply app icons in an asset
catalog and must also provide a value for this Info.plist key. For
more information see
http://help.apple.com/xcode/mac/current/#/dev10510b1f7.
Best regards,
The App Store Team
这是我第一次从 Apple 收到此消息,但我很快明白我不是第一个这样做的人:这里是 SO 和在其他论坛上我找到了很多针对不同情况的解决方案,但遗憾的是我找到的答案都不能解决我的问题:我不断从 Apple 收到相同的消息。
接下来我将描述我的系统以及我已经尝试过的内容。
系统说明
配置详情
我正在使用
构建iOS应用程序
- Xamarin.Forms 5.0.0.2012
- 因为 IDE 我正在 Visual Studio 19 16.10 Windows 10.
- 为了构建 iOS 应用程序,我使用带有 macOs Big Sur 11.4
的远程 MacMini
- Xcode 12.5
项目详情
如上所述,我已经 tried/ruled 找出所有 options/solutions 我发现:
- 我的项目已经使用 Asset Catalogs(自从之前上传到 AppStore!),其中包含 1024 像素的 AppStore 图标。
- 我的
Info.plist
已经有 XSAppIconAssets
和 CFBundleIconName
,看起来像:
<?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>
- 我的 ~ios.csproj 文件确实包含
ImageAssets
,看起来像这样
<ItemGroup>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-761.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-83.5@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-AppStore1024.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Notification20.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Notification20@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Settings29.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-401.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Spotlight29@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Spotlight29@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Spotlight29@3x.png">
<Visible>false</Visible>
</ImageAsset>
</ItemGroup>
问题描述
话虽这么说:我可以使用 VS 构建、存档和上传项目,但是,在上传项目后,我会收到一个 e-mail 消息 post . 此外,当我去检查我的 macMini 中的 ipa 文件时,我看不到 payload[ 中包含的任何资产=83=] 文件夹和 Assets.car 文件都不包含:尝试上传此 ipa 导致 e-mail来自 Apple,同样的信息。
我真的很感激任何解决这个问题的想法,因为我已经处理了几天!
更新 (16.06.2021)
Visual Studio for Windows v.16.10.2 已发布,并修复了导致 OP 问题的错误。
原答案
这是一个已报告的错误,正在修复中
还有一个“'CFBundleIconName' 丢失”的问题
我知道 SO 中已经有很多标题几乎相同的问题,许多答案提出了不同的解决方案。
在我看来,这背后的问题是使用来自 Apple 的非常通用的消息来涵盖非常广泛的问题。
我有一个 iOS 应用程序(使用 Xamarin.Forms 编写),它已经发布在 AppStore.尽管如此,最近我尝试上传更新,但我从 Apple 那里收到了一个 e-mail 说
Dear Developer,
We identified one or more issues with a recent delivery for your app, "Kuhnle Mobile 2021" 2021.1.35242 (35242). Please correct the following issues, then upload again.
ITMS-90713: Missing Info.plist value - A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'com.kuhnle.mobile2021'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7.
Best regards,
The App Store Team
这是我第一次从 Apple 收到此消息,但我很快明白我不是第一个这样做的人:这里是 SO 和在其他论坛上我找到了很多针对不同情况的解决方案,但遗憾的是我找到的答案都不能解决我的问题:我不断从 Apple 收到相同的消息。
接下来我将描述我的系统以及我已经尝试过的内容。
系统说明
配置详情
我正在使用
构建iOS应用程序- Xamarin.Forms 5.0.0.2012
- 因为 IDE 我正在 Visual Studio 19 16.10 Windows 10.
- 为了构建 iOS 应用程序,我使用带有 macOs Big Sur 11.4 的远程 MacMini
- Xcode 12.5
项目详情
如上所述,我已经 tried/ruled 找出所有 options/solutions 我发现:
- 我的项目已经使用 Asset Catalogs(自从之前上传到 AppStore!),其中包含 1024 像素的 AppStore 图标。
- 我的
Info.plist
已经有XSAppIconAssets
和CFBundleIconName
,看起来像:
<?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>
- 我的 ~ios.csproj 文件确实包含
ImageAssets
,看起来像这样
<ItemGroup>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-761.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-83.5@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-AppStore1024.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Notification20.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Notification20@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Settings29.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-401.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Spotlight29@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Spotlight29@2x1.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Spotlight29@3x.png">
<Visible>false</Visible>
</ImageAsset>
</ItemGroup>
问题描述
话虽这么说:我可以使用 VS 构建、存档和上传项目,但是,在上传项目后,我会收到一个 e-mail 消息 post . 此外,当我去检查我的 macMini 中的 ipa 文件时,我看不到 payload[ 中包含的任何资产=83=] 文件夹和 Assets.car 文件都不包含:尝试上传此 ipa 导致 e-mail来自 Apple,同样的信息。
我真的很感激任何解决这个问题的想法,因为我已经处理了几天!
更新 (16.06.2021)
Visual Studio for Windows v.16.10.2 已发布,并修复了导致 OP 问题的错误。
原答案
这是一个已报告的错误,正在修复中