react-native-tvOS在Xcode Apple TV模拟器运行报global.performance.now未定义错误
报错原因定位
这个错误的核心诱因是Apple TV模拟器的JS运行环境默认没有挂载performance全局对象,项目依赖的代码(React核心包或第三方依赖)尝试调用performance.now()时触发了异常。你可以通过Xcode的错误堆栈信息快速定位到具体调用该API的文件位置。
可行解决方案
按实现成本从低到高排序:
- 方案1:入口文件注入全局polyfill(最快生效)
直接在项目入口文件index.js的最顶部(所有import语句之前)添加如下代码即可:
该方案通过简单模拟if (typeof global.performance === 'undefined') { global.performance = { now: () => Date.now() } }performance.now的基础行为覆盖绝大多数使用场景,不需要修改任何依赖或原生配置。 - 方案2:切换到稳定适配版本
如果你使用的是0.72及以上版本的react-native-tvos,该版本存在官方已知的全局对象注入疏漏,你可以重新初始化项目时指定使用长期支持的稳定版本:
旧版本默认已经完成了performance全局对象的注入,不会触发该报错。react-native init FinalPOC --template=react-native-tvos@0.71.12-0 - 方案3:排查特定依赖适配
如果添加全局polyfill后仍有报错,可通过Xcode的错误堆栈定位到具体调用performance.now的第三方依赖,单独针对该依赖添加适配逻辑即可。
内容的提问来源于stack exchange,提问作者TheNeon007
相关产品推荐
相关产品推荐

