Pracując nad aktualizacją mojej aplikacji, zauważam, że dostaję mnóstwo ostrzeżeń w dzienniku podczas uruchamiania aplikacji w Xcode 11.2 na IOS13.
Uwaga CoreText: Klient zażądał nazwy „.SFUI-Regular”, otrzyma TimesNewRomanPSMT zamiast zamierzonej czcionki. Cały systemowy dostęp do czcionek interfejsu użytkownika powinien odbywać się za pośrednictwem odpowiednich interfejsów API, takich jak CTFontCreateUIFontForLanguage () lub + [UIFont systemFontOfSize:].
Odkopałem trochę i znalazłem ten cytat z WWDC:
Jak wspomniano w wielu sesjach WWDC, nie należy bezpośrednio używać nazw czcionek z prefiksem kropki.
Jestem prawie wyłącznie używam IB i końcówek do ustawiania czcionek dla pól tekstowych itp. I nigdzie nie ma odniesienia do „SFUI-Regular” w moim kodzie, więc nie jestem pewien, jak znaleźć faktyczną przyczynę tych ostrzeżeń (mam około 20-30 rzędów tych w logach).
Czy ktoś ma jakieś wskazówki, jak znaleźć źródło ostrzeżenia i jak je naprawić?
Ostrzeżenie zaczęło się w konsoli, zaczynając od Xcode 11, zarówno w systemach MacOS, jak i iOS.
Otrzymasz „.SFUI-Regular” od
UIFont.systemFont(ofSize: X).fontName
. Ostrzeżenie pojawi się wtedy, gdy spróbujesz utworzyć instancję za pomocąUIFont(name: fontName, size: size)
.W moim przypadku pozwalam użytkownikowi dostosować czcionkę wyświetlaną, ale domyślnie był to „.SFUI-Regular”, więc zmieniłem to na „TimesNewRomanPSMT”
źródło
Ten sam problem i brak odniesienia do czcionki z kropką w moim kodzie. Ustaw symboliczny punkt przerwania, ale bezużyteczny
źródło
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.
(I nie dodali nic więcej… „błąd systemu”)Dla mnie okazuje się, że była to biblioteka innej firmy, która nie była aktualizowana od dłuższego czasu.
Ustawiłem punkt przerwania zgodnie z sugestią użytkownika i odnalazłem źródło. W moim przypadku była to TOMSMorphingLabel .
źródło
rozwiązanie problemu uifont dla iOS 13
źródło