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

Flutter:NotoColorEmoji字体iOS真机失效,模拟器正常求助

关于NotoColorEmoji在iOS 12.5.5真机无法显示的问题

配置详情

已下载NotoColorEmoji-Regular.ttf并放入项目assets目录,pubspec.yml中的字体配置如下:

- family: NotoColorEmoji
  fonts:
    - asset: assets/fonts/Noto_Color_Emoji/NotoColorEmoji-Regular.ttf

使用该字体显示emoji的代码如下:

Text(emoji,
  style: const TextStyle(
    fontWeight: FontWeight.w400,
    fontSize: 22,
    height: 1,
    fontFamily: 'NotoColorEmoji',
    color: const Color(0xFF191919),
  ),
)

运行表现

正常显示环境

  • Android模拟器
  • Android真机
  • iOS模拟器(iOS 15.5,iPhone 13)

失效环境

iOS 12.5.5系统的iPhone 6真机,应用其他功能正常,但无法显示emoji。目前无其他iOS真机可测试,恳请验证该情况是否普遍。

已尝试的排查操作

  • 卸载设备上的应用
  • 执行flutter clean
  • 重新安装应用(flutter run)
  • 通过Xcode运行应用

相关问题参考

查询到相关问题提到:Apple系统会将TTF格式的字体编译为SBIX格式,而SBIX格式不支持NotoColorEmoji所使用的CBDT/CBLC格式,不确定该机制是否影响iOS,但iOS模拟器可正常运行。

临时解决方案

iOS端使用系统字体,Android端继续使用NotoColorEmoji,代码实现如下:

TextStyle textEmoji(BuildContext context) {
  return TextStyle(
    fontFamily: Platform.isIOS
      ? null // iOS使用系统字体
      : 'NotoColorEmoji',
    // 其他样式配置
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:35:21