You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms iOS项目应用图标无法正常显示求助

问题根源分析
  1. 配置冲突:同时在Info.plist中配置Asset Catalog(XSAppIconAssets、CFBundleIconName)和旧版的CFBundleIcons/CFBundleIcons~ipad,导致iOS系统无法正确识别图标源,修改后直接无图标就是这个原因。
  2. 格式错误:iOS不支持.ico格式图标,仅支持PNG格式。
  3. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:05:23