React Native 应用程序中的所有图像/快速图像不适用于 iOS 14 beta 和 Xcode 12 beta

EmB*_*Rau 20 image react-native ios14 xcode12

我已将 iPhone 设备升级到 iOS 14 测试版和 Xcode 12 测试版。然后我的 React Native 项目上的所有 Image/Fast Image 都无法显示(在以前的 iOS 13 和 Xcode 11.5 上运行良好)。

Cam*_*CHN 26

这是 react-native <= 0.63.1 和 iOS 14 的问题

此问题已修复并合并以响应本机最新版本。但是如果你现在想修复你的项目或者你正在使用 0.63.2 版本以下,有一个解决方案。(感谢https://bityl.co/3ksz

第一个解决方案:如果您可以更新 React Native

将 react-native 更新到 v0.63.2 或更高版本

它已在此版本中修复:https : //github.com/react-native-community/releases/blob/master/CHANGELOG.md#v0632

第二种解决方案:如果您无法更新 React Native

  1. 从以下位置打开文件:

node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m

  1. 编辑源

#pragma mark - CALayerDelegate

- (void)displayLayer:(CALayer *)layer
{
  if (_currentFrame) {
    layer.contentsScale = self.animatedImageScale;
    layer.contents = (__bridge id)_currentFrame.CGImage;
  }
}
Run Code Online (Sandbox Code Playgroud)

#pragma mark - CALayerDelegate

- (void)displayLayer:(CALayer *)layer
{
  if (_currentFrame) {
    layer.contentsScale = self.animatedImageScale;
    layer.contents = (__bridge id)_currentFrame.CGImage;
  } else {
    [super displayLayer:layer];
  }
}
Run Code Online (Sandbox Code Playgroud)
  1. 打补丁

npx patch-package react-native

  1. 为 Git 跟踪补丁文件

git add patches/*

  1. 为自动应用补丁添加包脚本

包.json

"scripts": {
  ...
  "postinstall": "patch-package",
}
Run Code Online (Sandbox Code Playgroud)

每当您安装软件包时,它都会从所有补丁文件中打补丁。

  • 不要忘记安装补丁包库 (2认同)

t3c*_*b0y 1

这与https://github.com/SDWebImage/SDWebImage/issues/3040相关。只需
更新或删除并重新安装即可。SDWebImagePodfilePodfile.lock