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
相关产品推荐
相关产品推荐

