React Native iOS Release构建后图片丢失问题求助
iOS Release模式下React Native图片不显示的解决方案
我之前也碰到过一模一样的问题!结合自己踩过的坑,给你几个大概率能解决的方向:
检查资源输出路径与Xcode配置
你用了--assets-dest='./ios',打包后会在./ios下生成assets文件夹,但需要确保这个文件夹被正确添加到你的Xcode项目(也就是billhunterstarget)里。操作步骤:- 打开Xcode,把
./ios/assets文件夹拖到项目导航栏中 - 弹出的窗口里勾选「Copy items if needed」,并确保选中了你的
billhunterstarget - 去
Build Phases->Copy Bundle Resources里确认assets文件夹(或里面的图片)已经被包含
- 打开Xcode,把
排查大小写与路径问题
iOS真机的文件系统是区分大小写的!Debug模式下可能会忽略这个问题,但Release模式里如果你的代码里写的是require('./assets/img/logo.png'),但实际文件名是Logo.png或者路径多了/少了层级,就会加载失败。仔细核对文件名和引用路径的大小写、层级是否完全一致。清理缓存并重新打包
先删除旧的打包产物:rm -f ./ios/billhunters/main.jsbundle rm -rf ./ios/assets然后加上
--reset-cache参数重新打包:react-native bundle --entry-file='index.js' --bundle-output='./ios/billhunters/main.jsbundle' --dev=false --platform='ios' --assets-dest='./ios' --reset-cache同时清理Xcode的Derived Data(Xcode -> Settings -> Locations -> Derived Data -> 点击箭头打开文件夹后删除对应项目的文件夹),再重新编译Release版本。
验证打包产物是否包含图片
打包完成后,打开./ios/assets文件夹,看看里面有没有img/logo.png,如果没有的话,说明打包命令没有正确把图片拷贝过来,可能需要检查你的图片引用路径是否在项目中存在,或者有没有拼写错误。
内容的提问来源于stack exchange,提问作者theDC
相关产品推荐
相关产品推荐

