IOS13에서이 글꼴 관련 핵심 텍스트 경고의 출처를 어떻게 찾을 수 있습니까?


17

내 앱 업데이트 작업 중 IOS13의 Xcode 11.2에서 앱을 실행할 때 로그에 많은 경고가 표시됩니다.

CoreText 참고 : 클라이언트가 ".SFUI-Regular"라는 이름을 요청하면 의도 한 글꼴이 아닌 TimesNewRomanPSMT가 표시됩니다. 모든 시스템 UI 글꼴 액세스는 CTFontCreateUIFontForLanguage () 또는 + [UIFont systemFontOfSize :]와 같은 적절한 API를 통해 이루어져야합니다.

나는 조금 주위를 파고 WWDC 에서이 인용문을 발견했다.

많은 WWDC 세션에서 언급했듯이 점 접두사 글꼴 이름은 직접 사용되지 않습니다.

나는 거의 독점적으로 텍스트 필드 등의 글꼴을 설정하기 위해 IB와 펜촉을 사용하고 있으며 내 코드에는 "SFUI-Regular"에 대한 참조가 없으므로 이러한 경고의 실제 원인을 찾는 방법을 잘 모르겠습니다 ( 로그에 20-30 행과 같은 것).

누구나 경고의 출처를 찾는 방법과 수정 방법에 대한 팁이 있습니까?

답변:


6

콘솔에 다른 출력이 있습니다. 심볼 중단 점을 추가 할 수 있습니다

CoreText 참고 : CTFontLogSystemFontNameRequest에서 중단 점을 설정하여 디버그하십시오.


예,이 기호 브레이크 포인트를 설정하십시오. 고장이 나면 통화 스택을 확인하십시오. 그러면 범인이 무엇인지 볼 수 있습니다. 나를 위해, 타사 소프트웨어.
PDG

@PDG 타사 소프트웨어는 정확히 무엇을하고 있었습니까?
Kaunteya

5

MacOS 및 iOS 대상 모두에서 Xcode 11로 시작하는 콘솔 에서이 경고가 발생하기 시작했습니다.

에서 ".SFUI-Regular"를 받게됩니다 UIFont.systemFont(ofSize: X).fontName. 를 사용하여 인스턴스화하려고하면 경고가 발생합니다 UIFont(name: fontName, size: size).

제 경우에는 사용자가 디스플레이 글꼴을 사용자 정의 할 수 있지만 기본값은 ".SFUI-Regular"이므로 "TimesNewRomanPSMT"로 변경했습니다.

let defaultFont = UIFont.systemFont(ofSize: X).fontName

// replace with
let defaultFont = "TimesNewRomanPSMT"

UIFont(name: defaultFont, size: size)

2

내 코드에서 동일한 문제가 있고 점 접두사 글꼴에 대한 참조가 없습니다. 상징적 중단 점을 설정하지만 아무 것도 사용하지 않음


2
macOS 앱에서 동일한 문제가 발생합니다. SDK 버그가 의심 되는가?
Jorge Leandro Perez

내가 사용중인 포드의 이전 버전으로 추적했습니다.
Tony Law

6
기록을 위해이 문제를 빈 macOS 프로젝트, 외부 종속성 및 코드 2 줄로 재현했습니다. 기술 지원 티켓 제출, 신사 숙녀 여러분
Jorge Leandro Perez

1
@Klaas 늦는 것에 대해 사과드립니다! YES ...이 기술 지원을 통해 내가 가진 공식 반응이다 :
호르헤 레안드로 페레즈

1
Regarding the error mesage shown in your video, I view it as a system bug because I don’t see any of your code requesting “.AppleColorEmojiUI” – If your real app indeed does that, you should follow the message to correct it. Other than that, I don’t have anything worth to mentioning. (그리고 그들은 .... 더 "시스템 버그를"아무것도 추가하지 않은)
호르헤 레안드로 페레즈에게

0

나에게 그것은 그것이 범인이었던 한동안 업데이트되지 않은 타사 라이브러리였습니다.

사용자 clatt가 제안하고 소스를 찾은대로 중단 점을 넣었습니다. 내 경우에는 TOMSMorphingLabel 입니다.


0
let fontCT = CTFontCreateUIFontForLanguage(.label, fontSize as CGFloat, nil)
attrStr.addAttribute(.font, value: fontCT as Any, range: NSMakeRange(0, text.count))

iOS 13의 uifont 문제 해결

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.