今天,經(jīng)過(guò)多次測(cè)試的項(xiàng)目,交付客戶測(cè)試,卻遭到當(dāng)頭一棒。crash!crash!crash!不斷的crash。
原來(lái)是由于字體不支持的緣故,不直接測(cè)試調(diào)試的話,還真是很容易忽略這個(gè)問(wèn)題。項(xiàng)目主要使用的是蘋方字體,這是蘋果ios9才引入的官方字體,iOS8是不支持的。若要兼容iOS8以上,那只能在項(xiàng)目中添加自定義字體了。
方法如下
- 下載蘋方字體
蘋方字體下載

蘋方字體ttf文件
- 導(dǎo)入字體文件
將字體文件導(dǎo)入到工程中。

字體導(dǎo)入.png
- 配置字體文件
Info plist 下添加 Fonts provided by application,并在Fonts provided by application添加字體文件,名字需于字體文件完全保持一致。

配置字體.png
注意:此處必須是完整的文件名包含后綴。
- 檢查字體文件是否導(dǎo)入
4.1. 檢查Build Phases 下的 copyBundleResources下是否導(dǎo)入了字體文件

Build Phases.png
注意此處必須是單獨(dú)的字體文件,不能是如下圖這種文件夾形式的。
字體文件夾
4.2. 打印
// 遍歷獲取字體名稱
for(NSString *fontFamilyName in [UIFont familyNames])
{
NSLog(@"family:'%@'",fontFamilyName);
for(NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName])
{
NSLog(@"\tfont:'%@'",fontName);
}
NSLog(@"-------------");
}

字體名字.png
- 使用字體
textLabel.font = [UIFont fontWithName:@".PingFang-SC-UltraLight" size:17];
此處使用的名字,必須是如上圖所示打印出來(lái)的名字
經(jīng)測(cè)試發(fā)現(xiàn),在xcode9beta6字體名字不一樣,不只是不是測(cè)試版的緣故,如果不是的話,針對(duì)iOS11要單獨(dú)適配了。

xcode9 iOS11 上字體名字.png
