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

iOS 14设备部分SF Symbols不显示问题排查求助

问题:iOS 14设备上SF Symbols图标显示异常(Debug模拟器正常)

我从一款稳定运行的生产级应用复刻了一年前的代码库,使用最新Xcode版本构建了会议实时字幕应用,所有设置保持不变。新应用最低部署目标为iOS 14,功能运行正常,但在iOS 14测试设备上部分SF Symbols图标显示异常;而通过Xcode安装的Debug模拟器构建中,这些图标显示完全正常。

相关代码示例

教程页中负责显示图标的代码如下:

HStack{
    Text("\(Image(systemName: "bell.and.waveform.fill")) ")
                .foregroundColor(Color("SecondaryColor"))
    Text(NSLocalizedString("Conference - Connect with streams in the conference rooms to get the live captions", comment: "CONFERENCE") + "\n") // TODO: Use idiom instead of device
                .font(Font.custom("Avenir", size: 18))
                .foregroundColor(Color("SecondaryColor"))
}

异常截图

  • 文本内联图标缺失
  • 列表SF Symbols图标缺失
  • 导航栏图标缺失

调试建议

  • 检查SF Symbols版本兼容性:确认使用的图标是否在iOS 14中存在。iOS 14对应SF Symbols 2,部分图标是iOS 14之后的版本新增的,可通过官方文档查询图标最低支持版本。
  • 调整图标布局方式:当前将Image嵌入Text的写法存在兼容性风险,建议直接通过HStack单独布局图标和文本,示例代码:
    HStack{
        Image(systemName: "bell.and.waveform.fill")
            .foregroundColor(Color("SecondaryColor"))
        Text(NSLocalizedString("Conference - Connect with streams in the conference rooms to get the live captions", comment: "CONFERENCE") + "\n")
            .font(Font.custom("Avenir", size: 18))
            .foregroundColor(Color("SecondaryColor"))
    }
    
  • 排查构建配置差异:Debug和Release构建的资源处理逻辑可能不同。尝试在测试设备上安装Debug构建,若问题消失,检查Release模式下的Build Settings,比如Strip Debug Symbols During Copy、Compress PNG Files等选项是否影响了SF Symbols的加载。
  • 清理缓存重新构建:删除测试设备上的应用,清理Xcode的Derived Data(Xcode > Settings > Locations > Derived Data),重新编译安装,避免缓存导致的资源加载异常。
  • 验证系统字体完整性:确认测试设备的iOS 14系统字体未损坏,可打开系统自带应用(如“设置”)查看内置SF Symbols图标是否正常显示,排除系统层面的问题。

内容的提问来源于stack exchange,提问作者Saamer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:07:11