XCode 11.5 升级后不显示 React-Native Image

TIM*_*MEX 5 xcode image build ios react-native

我通常显示这样的图像:

<Image source={require('../../assets/images/color/stuff.png')} />
<Image source={require('../some-other-path/picture.png')} />
Run Code Online (Sandbox Code Playgroud)

过去,我可以在任何文件夹中拥有任何我想要的任意路径。

然后,当我为发布而构建时,我会在构建 > 运行之前执行此操作:

react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ./ios/main.jsbundle
Run Code Online (Sandbox Code Playgroud)

升级到 XCode 后,每当我进行发布构建时,我的图像就不再出现。在开发版本中,图像是可见的。

我试过了--assets-dest ./some-folder,但结果是一样的。

什么可能导致这种变化?

Muh*_*man 3

解决方案一:

就我而言,我使用的是 resizeMode='center',当我从 'center' 更改为 'contain' 时,它解决了我的问题。

解决方案2:

  1. 导航到项目目录 => ios=> 创建文件夹assets

  1. 内部文件夹assets=> 创建与项目中保存图像的文件夹相同的文件夹结构(在我的例子中,我将所有图像保存在 app > src > assets > image)并将所有图像复制到此文件夹
  2. 打开 Xcode => 选择项目目标 =>Build Phases
  3. assets将我们创建的文件夹拖入Copy Bundle Resources

  1. 选择Copy items if needed and press Finish

  1. 清理项目并再次构建发布

完毕!

PS:如果您的图像名称是这样的,my_image.ios.jpg您需要将它们重命名为my_image.jpg.

解决方案3:

“构建阶段”>“捆绑 React Native”代码和图像中,替换您为此拥有的任何行:

export NODE_BINARY=node ../node_modules/react-native/scripts/react-native-xcode.sh
Run Code Online (Sandbox Code Playgroud)

之后,从 xcode 和文件夹中删除 main.jsbundle 文件并再次重新制作:

react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios' --assets-dest='./ios'
Run Code Online (Sandbox Code Playgroud)

之后,再次添加生成的main.jsbundle。再次清理、构建并运行项目。