반응형
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
반응형