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

Flutter自定义字体权重在iOS真机不生效问题求助

iOS真机自定义字体Uncut Sans权重失效解决方案

1. 必须在iOS Info.plist中声明字体文件

iOS真机要求显式注册自定义字体,模拟器可跳过此步骤,但真机必须配置:

  • 打开项目的ios/Runner/Info.plist文件
  • 添加UIAppFonts数组,将所有用到的Uncut Sans字体文件名逐一加入:
<key>UIAppFonts</key>
<array>
    <string>UncutSans-Bold.ttf</string>
    <string>UncutSans-Semibold.ttf</string>
    <string>UncutSans-Light.ttf</string>
    <string>UncutSans-Regular.ttf</string>
    <string>UncutSans-Medium.ttf</string>
</array>

2. 验证字体文件的内部元数据

部分字体文件的内部家族名称与文件名不一致,会导致iOS无法正确映射权重:

  • 用Mac「字体册」打开每个.ttf文件,查看字体家族名称是否统一为UncutSans
  • 如果某款字体的内部家族名称不同(比如UncutSans-Light),需要调整pubspec.yaml中对应字体的family字段,或者更换内部元数据统一的字体文件

3. 彻底清理构建缓存

缓存残留可能导致配置不生效,执行以下操作:

  • 清理Flutter项目缓存:
flutter clean && flutter pub get
  • 进入iOS目录清理Pod缓存:
cd ios && pod deintegrate && pod install
  • 在Xcode中按下Cmd+Shift+K清理构建文件夹,重新运行项目

4. 可变字体配置检查(若使用)

如果尝试过可变字体版本,确保pubspec.yaml配置覆盖完整权重范围:

fonts:
  - family: UncutSans
    fonts:
      - asset: lib/theme/fonts/UncutSans[wght].ttf
        style: normal
        range:
          minWeight: 300
          maxWeight: 700

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:47:25