You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native iOS Release模式本地图片不显示问题求助

React Native Release模式本地图片加载失败解决方案(React 17.0.2 + RN 0.67.4 + Xcode 14.x)
  • 检查路径大小写
    Release模式对文件路径大小写严格,Debug模式会忽略差异。比如实际文件是logo.png,就别写成Logo.png,确保require里的路径和文件系统完全一致。

  • 确认Xcode资源配置

    1. 右键Xcode项目目录,选Add Files to "[项目名]",选中图片所在文件夹,勾选Copy items if needed,选Create groups(别选Create folder references)。
    2. 进入Build Phases → Copy Bundle Resources,检查图片/资源文件夹是否在列表里,没有的话点+号手动添加。
  • 清理缓存重构建

    • 清RN缓存:执行npx react-native start --reset-cache
    • 清Xcode缓存:点击Xcode顶部Product → Clean Build Folder(快捷键Cmd+Shift+K),再手动删除Derived Data(路径在Xcode偏好设置→Locations里)
    • 重新打包JS bundle:执行npx react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ios/main.jsbundle --assets-dest ios,之后用Xcode构建Release版本。
  • 检查metro.config.js配置
    确保metro能识别图片格式,在配置里补充assetExts:

    const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
    
    const config = {};
    
    module.exports = mergeConfig(getDefaultConfig(__dirname), {
      resolver: {
        assetExts: [...getDefaultConfig(__dirname).resolver.assetExts, 'png', 'jpg', 'jpeg', 'gif'],
      },
    });
    
  • 避免动态require路径
    别用require(./assets/${name}.png)这种动态拼接的写法,Release模式下metro没法静态解析,必须写死完整路径,比如require('./assets/logo.png')。

内容的提问来源于stack exchange,提问作者Ragu Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 01:10:00