적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

카테고리 없음

SPM custom font 추가

hongssup_ 2024. 7. 15. 14:54
반응형

 

SPM 모듈 내에서 다음과 같이 폰트를 register 할 수 있는 코드를 추가해준 후

public struct FontConfiguration {
    public static func registerFonts() {
        _ = FontConfiguration.register(bundle: .module, fontName: "Pretendard-Bold", fontExtension: "otf")
        _ = FontConfiguration.register(bundle: .module, fontName: "Pretendard-Medium", fontExtension: "otf")
        _ = FontConfiguration.register(bundle: .module, fontName: "Pretendard-Regular", fontExtension: "otf")
        _ = FontConfiguration.register(bundle: .module, fontName: "Pretendard-SemiBold", fontExtension: "otf")
    }
    
    private static func register(bundle: Bundle, fontName: String, fontExtension: String) -> Bool {
        guard let fontURL = bundle.url(forResource: fontName, withExtension: fontExtension) else {
            fatalError("Couldn't find font \(fontName)")
        }

        guard let fontDataProvider = CGDataProvider(url: fontURL as CFURL) else {
            fatalError("Couldn't load data from the font \(fontName)")
        }

        guard let font = CGFont(fontDataProvider) else {
            fatalError("Couldn't create font from data")
        }

        var error: Unmanaged<CFError>?
        let success = CTFontManagerRegisterGraphicsFont(font, &error)

        return true
    }
}

 

 

사용하고자 하는 프로젝트에서 다음과 같이 Font를 register 해줘야 함

FontConfiguration.registerFonts()

 

 

 

https://blog.bontouch.com/news-and-insights/custom-fonts-in-a-swift-package/

728x90
반응형