Xamarin Forms iOS项目应用图标无法正常显示求助
问题根源分析
- 配置冲突:同时在
Info.plist中配置Asset Catalog(XSAppIconAssets、CFBundleIconName)和旧版的CFBundleIcons/CFBundleIcons~ipad,导致iOS系统无法正确识别图标源,修改后直接无图标就是这个原因。 - 格式错误:iOS不支持
.ico格式图标,仅支持PNG格式。 - Asset Catalog配置不全:你的
.csproj仅包含了1024.png,其他尺寸图标未正确纳入项目,且自定义图标命名(如401.png)不符合Asset Catalog的slot映射规则。
分步解决方案
1. 修复Info.plist配置
删除所有CFBundleIcons和CFBundleIcons~ipad相关节点,仅保留Asset Catalog的必要配置,最终片段如下:
<key>XSAppIconAssets</key> <string>Assets.xcassets/AppIcon.appiconset</string> <key>CFBundleIconName</key> <string>AppIcon</string> <key>UIMainStoryboardFile</key> <string>LaunchScreen</string>
2. 规范Asset Catalog图标配置
- 替换图标格式:将所有
.ico图标转为PNG格式,确保每个尺寸符合iOS官方要求(如20pt@1x=20px、20pt@2x=40px、20pt@3x=60px等)。 - 正确放置图标:打开
Assets.xcassets,将对应尺寸的PNG图标拖入AppIcon对应的slot中(不要手动命名为401.png这类自定义名称,系统会自动映射slot对应的文件名)。 - 完善.csproj配置:确保所有图标文件都以
ImageAsset类型纳入项目,示例:
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\20.png"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40.png"> <Visible>false</Visible> </ImageAsset> <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\60.png"> <Visible>false</Visible> </ImageAsset> <!-- 其他所有尺寸图标都需添加此配置 -->
3. 清理缓存并重建项目
- 手动删除iOS项目下的
bin和obj文件夹。 - 在Visual Studio中依次执行:清理解决方案 → 重建解决方案。
- 在iOS设备上卸载当前应用,避免缓存残留。
4. 解决Windows端VS部署缓存问题
- 打开Visual Studio的「工具」→「选项」→「Xamarin」→「iOS设置」,点击「清除iOS模拟器缓存」和「清除设备日志」。
- 重启Visual Studio,重新连接设备部署应用。
额外注意事项
- 不要同时混用Asset Catalog和
CFBundleIcons配置,现代iOS优先推荐使用Asset Catalog管理图标。 - 1024px的PNG图标需放在
AppIcon的「App Store」slot中,用于App Store提交,同时也会被系统识别为备用图标。
内容的提问来源于stack exchange,提问作者hdlcav
相关产品推荐
相关产品推荐

