为什么我的React Native自定义字体在将应用程序拉入前台时会恢复为系统字体?

3
我有一个相对较小的应用程序,由StackNavigator管理的几个视图。
我有三种自定义字体(TTF),在整个应用程序中使用。
该应用程序在模拟器上正常工作,适用于Android和iOS - 自定义字体按预期显示。
我现在开始向TestFlight提交我的应用程序,并在设备上运行它 - 到目前为止是两个不同的iPhone。
首次加载应用程序时,一切正常,字体正确显示。
但是,当应用程序进入后台,然后再次拉到前台时,字体会恢复到系统字体。(从后台拉出的页面实际上看起来是正确的,只有在堆栈切换到另一个视图时,这些字体才是不正确的。)
如果我强制关闭应用程序,然后重新启动,直到下一次进入后台,一切都还好。
您认为为什么这些资源没有显示?
1个回答

1
回答这个问题是为了未来的读者:
我将我的应用程序分解成了几个部分。使用最新的RN版本生成了一个新项目等。
使用react-navigation构建了一个最小的项目,结果它崩溃了。
删除导航,并使用条件渲染来显示页面,结果它崩溃了。
进一步简化它,最终发现在XCode中设置显示名称是罪魁祸首:我的应用程序名称中有一个“?”(问号)。
iOS指南表示这是可以的,在部署时没有出现任何问题,但某些关于React Native和重新加载带有此字符的上下文的东西似乎出了问题。我的直觉是,在查找字体文件的某个全局匹配例程中,问号导致它无法找到。
删除问号后,它正常渲染并返回前景。

我遇到了一个感觉上类似的问题,但是我的显示名称中只有纯粹的[A-Za-z]字符。:( - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接