升级xcode12后,React Native ios工程,图片不显示解决问题

升级xcode 12后,图片不显示解决办法

一、升级 react-native 到0.63版本以上

二、在当前版本,给react-native打补丁包,使用了patch-package(需要执行 yarn add --dev patch-package),本质就是在当前的react-native 的git版本上打补丁包。

1.打开xcode 搜索 RCTUIImageViewAnimated.m 文件或根据路径查找
项目/node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m

搜索方法

#pragma mark - CALayerDelegate

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

替换为

#pragma mark - CALayerDelegate

- (void)displayLayer:(CALayer *)layer
{
  if (_currentFrame) {
    layer.contentsScale = self.animatedImageScale;
    layer.contents = (__bridge id)_currentFrame.CGImage;
  } else {
    [super displayLayer:layer];
  }
}
2.给react-native打补丁

需要先安装 patch-package

 yarn add --dev patch-package
npx patch-package react-native 或者 yarn patch-package react-native
3.添加patches到git里
git add patches/*
// 例如:git add patches/react-native+0.61.0.patch
4.添加script自动执行补丁

在package.json文件中添加

"scripts": {
  ...
  "postinstall": "patch-package",
}

此方法是不管什么时候执行 npm install 或 yarn install ,最后总会自动为虽有需要打补丁的文件执行补丁操作

参考文献:https://blog.0x5e.cn/2017/10/14/patch-npm-package/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容