react-native 0.63.4 正式版及TestFlight环境require本地图片无法渲染
问题解决方案
- 优先排查资源路径大小写问题:iOS开发环境模拟器默认不区分路径大小写,正式打包后的iOS系统文件系统区分大小写,请确认代码中require的图片路径、文件名的大小写和实际文件完全一致,比如实际文件为
XYZ.png时,代码中写require('../assets/images/xyz.png')会在release模式下加载失败。 - 检查是否开启了
use_frameworks!:0.63版本React Native的静态资源打包逻辑默认适配静态库,如果你的Podfile中开启了动态库配置use_frameworks!,会导致require引入的资源路径解析错误,临时解决方案可以将资源手动移入Xcode的Images.xcassets,通过source={{uri: '图片名'}}的方式加载,或者升级RN到支持动态库资源打包的版本。 - 检查metro配置:如果自定义过
metro.config.js的resolver.assetExts字段,请确认已添加png、jpg、jpeg等你用到的图片格式后缀,否则release打包时资源不会被正确映射。 - 验证样式有效性:将测试图片的样式临时修改为固定宽高
{width: 100, height: 100},排除正式环境下父容器尺寸变化导致百分比宽高的图片无法渲染的问题。 - 排查构建配置:打开Xcode项目的Build Settings,找到
Asset Catalog Compiler - Options分类,确认Optimization选项为默认值,不要设置为不压缩或者其他异常值,避免资源读取失败。
内容的提问来源于stack exchange,提问作者jotaro
相关产品推荐
相关产品推荐

