본문 바로가기
Swift

[Swift] Custom Font 추가하기

by Odin_1204 2022. 7. 29.

 

새로운 프로젝트 시작할 때 쯤이면
매번 까먹는 Font 추가하는 방법...😅

 

 

 

안녕하세요. 오딘(Odin)입니다.

 

몇 번의 프로젝트를 만들어도 Font를 추가할 때마다 놓치고 까먹는 부분이 생겨서
이왕 이렇게된거 블로그에 정리해두려고 합니다!! 

 

그러면 우리같이 폰트를 추가해볼까요~??

 

 

 

 


1. Font 다운로드

'눈누'는 원하는 Font를 바로바로 적용해보고 다운로드 받을 수 있는 괜찮은 사이트에요~!

'눈누'->   https://noonnu.cc/

 

해당 사이트에서 원하는 Font를 다운로드 받아볼까요??

앗..! 다음과 같이 (.TTF, .OTF) 두 종류의 Font가 뜨는 경우가 있는데 둘 중에 아무거나 다운 받으셔도 상관이 없습니다!!

(저렇게 쓰여 있어도 TTF는 애플에서, OTF는 마이크로소프트에서 개발된 저장 방식이라고 하네요..! 깔깔)

 

 

 

 

 

2. Font 추가하기

Font를 다운받으셨으면  XCode Project file 내부에 Drag & Drop 해볼까요??
(해당 'Font' 폴더는 제가 임의로 만들어 두었어요~!)

 

 

다음 화면처럼 뜨면 Destination, Added folders, add to targets 세개 모두 체크를 해주세요!

   

⛔️ 주의!
     -> 만약 Added folders 에서 Create folder refernces 를 체크하게 되면 폰트 파일을 다운로드 받은 경로를 참조하여
         다운받은 폰트 파일의 경로 이동 & 삭제할 경우 error가 발생하게 되니깐 주의해주세요!!

 

 

 

 

 

3.  Info.plist 내부에 글꼴 추가하기

Info.plist 내부에 들어간 뒤 "Fonts Provided by application" 를 추가해줍니다.

 

 



추가를 하면 다음과 같은 " Item " 이 나타나는데 해당 value 값에 추가한 Font 이름을 넣어주면
XCode에 Font 넣어주기 성공!! 😁

 

 

 

 

 

원하는 Text에 다음과 같이 Font로 적용하면 끝~!!!

정말 쉽죠?!? 

 

 

 

 

 


 

 

 

그런데 여러분...

 

Info.plist에 해당 Font들을 입력하지 않아도
시뮬레이터, app에서 돌아가더라구요...!? 🤔🤔

 

그래서 공식 문서를 한번 찾아봤습니다!!

https://developer.apple.com/documentation/uikit/text_display_and_fonts/adding_a_custom_font_to_your_app

 

 

 

 

"프로젝트에 추가하는 각 글꼴 파일은 해당 배열에 나열되어야 합니다.
 그렇지 않으면 앱에서 글꼴을 사용할 수 없습니다."

 

 

 

... 라고 적혀있네요!!

 

그러니 여러분!!!
안넣고 잘 돌아간다 하더라도
Info.plist에 글꼴 추가하기
꼭꼭!! 🐔🐓

넣어 주시길 바래요~

 

 

 


 

 

 

⛔️  Font 적용이 안됐을 때 Check 해보자!!

 

1.

 

추가한 Font가 "Copy Bundle Resources"에 추가 되어 있는지 확인해봅시다.

 

 

Copy Bundle Resources 란?

- 앱에 추가할 리소스를 결정합니다.
- 해당 항목에 없는 리소스는 Project에 추가되어 있어도 실제로 접근할 수 없습니다.

 

 

 

2.

 

해당 Font파일의 "Target Membership"이 잘 체크 되어 있는지 확인하기!!

 

 

 

3.

 

내가 추가한 Font의 이름이 다른 이름으로 추가되어 있을 수 있으니 해당 코드를 작성해서 확인해봅시다~!

 

 

 

 

 

 

 

 

자 이렇게 Custom Font을 사용하는 방법 & error시 대처 방법에 대해서 작성해봤습니다!

 

이제는 Font 집어 넣는 방법 까먹을 일은 없겠네요!!!

 

그럼 안녕~!!😁