[Flutter] iOS 환경에서 custom font weight < 400 이하 적용 안됨 이슈

두더지·2025년 5월 8일

pubspec.yaml

flutter:
  assets:
    - assets/images/
  fonts:
    - family: GyeonggiBatang
      fonts:
        - asset: fonts/GyeonggiBatang_Bold.ttf
        - asset: fonts/GyeonggiBatang_Regular.ttf
    - family: GyeonggiTitle
      fonts:
        - asset: fonts/GyeonggiTitle_Light.ttf
          weight: 300
        - asset: fonts/GyeonggiTitle_Medium.ttf
          weight: 500
        - asset: fonts/GyeonggiTitle_Bold.ttf
          weight: 700
    - family: GyeonggiTitleV
      fonts:
        - asset: fonts/GyeonggiTitleV_Bold.ttf

-> 이런식으로 적용해서

code

Text(
                      '학부모 / 자녀 ',
                      style: TextStyle(
                        fontFamily: 'GyeonggiTitle',
                        fontSize: 14,
                        fontWeight: FontWeight.w300,
                        color: Color(0xff525152),
                      ),
                    ),

fontweight을 적용했더니, ios에서 적용이 안된다.

  • 폰트 파일의 내부 Weight Class (예: 300 = Light, 400 = Regular)가 실제로 어떻게 적용되어있는지 파악하기 위해 https://fontdrop.info/ 를 접속해서 확인해봤더니, Weight class가 300으로 지정되어 있었음에도 불구하고 ios 디바이스에서는 font weight이 적용이 되지 않음을 확인 했다.
  • 그래서 안드로이드 에뮬레이터에서도 돌려보니.. 안드로이드 에뮬레이터에서는 font weight이 적용이 되어있었다.
  • 결론 = pubspec.yaml 문제는 아님

어쨌든, 해결은 해야한다.
결론, 폰트 family 클래스별로 분류하지 말고 폰트 단일 파일별로 분류를 해야했다.

수정한 pubspec.yaml

  fonts:
    - family: GyeonggiBatangBold
      fonts:
        - asset: fonts/GyeonggiBatang_Bold.ttf
    - family: GyeonggiBatangRegular
      fonts:
        - asset: fonts/GyeonggiBatang_Regular.ttf
    - family: GyeonggiTitleLight
      fonts:
        - asset: fonts/GyeonggiTitle_Light.ttf
    - family: GyeonggiTitleMedium
      fonts:
        - asset: fonts/GyeonggiTitle_Medium.ttf
    - family: GyeonggiTitleBold
      fonts:
        - asset: fonts/GyeonggiTitle_Bold.ttf
    - family: GyeonggiTitleVBold
      fonts:
        - asset: fonts/GyeonggiTitleV_Bold.ttf

code

                    Text(
                      '학부모 / 자녀 ',
                      style: TextStyle(
                        fontFamily: 'GyeonggiTitleLight',
                        fontSize: 14,
                        fontWeight: FontWeight.w300,
                        color: Color(0xff525152),
                      ),
                    ),

렌더링이 되긴 한다 ^^
주먹구구식이지만,, 도움은 되셨길.

profile
일단 하긴 합니다.

0개의 댓글