Xcode 15部署至TestFlight后自定义字体样式异常问题咨询
问题解决方案
检查字体的PostScript名称
Xcode 15对字体名称的匹配逻辑更严格,不再兼容模糊的显示名称。打开Font Book应用,选中目标字体后右键选择「显示字体信息」,复制其中的PostScript名称,替换代码中所有引用该字体的名称。验证Info.plist与资源配置
- 确认
UIAppFonts(iOS)或NSAppFonts(macOS)数组里的字体文件名完全正确,包含完整后缀(如.ttf/.otf),无拼写错误。 - 检查字体文件已添加到Target的
Build Phases > Copy Bundle Resources列表中,避免打包时遗漏。
- 确认
清理构建缓存
- 关闭Xcode,删除
~/Library/Developer/Xcode/DerivedData目录下的全部内容 - 在Xcode中按
Cmd+Shift+K清理项目构建缓存 - 重启模拟器/测试设备后重新安装应用
- 关闭Xcode,删除
添加字体加载验证代码
在应用启动时加入验证逻辑,确认字体是否正确加载:
// iOS示例 if let regularFont = UIFont(name: "YourFont-Regular-PostScriptName", size: 16) { print("常规字体加载成功: \(regularFont.fontName)") } else { print("常规字体加载失败,请检查文件或名称") }
如果输出加载失败,说明字体未正确打包或名称配置错误。
检查TestFlight打包配置
确保Archive使用的Build Configuration与本地测试一致,未开启可能篡改字体的优化选项。同时确认TestFlight构建来自最新的Xcode Archive,未复用旧打包文件。排查系统字体 fallback 问题
若缺少指定字重的字体文件,系统会自动 fallback 到粗体字体。需确保所有需要的字重文件(常规、中等、粗体等)都已正确打包,并在代码中对应使用各自的PostScript名称。
内容的提问来源于stack exchange,提问作者Sergey Krasiuk
相关产品推荐
相关产品推荐

