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

升级xcode12后,图片不显示解决方案

环境:
os: macOS Big Sur
react: 16.9.0
react-native: 0.61.2

A: 两种方案

  1. 升级react-native 到 0.63以上(比较复杂一下,涉及依赖包更新)

  2. 保持当前版本,为 react-native 包打补丁(推荐),主要是使用了patch-package,官方的解释为包作者可以为自己的开发包快速的打补丁,而不用等到新的pr到来后就可以立即使用。这非常有用,前端包更新速度太快,相互依赖总会有不兼容的情况发生,而patch-package可以很迅速的为应用开发者提供‘创可贴’。
    具体步骤:

  • 打开 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];
  }
}
  • 为react-native开始打补丁
npx patch-package react-native
  • 添加patches到git里
git add patches/*

例如:patches/react-native+0.61.5.patch

  • 添加script自动执行补丁
"scripts": {
  ...
  "postinstall": "patch-package",
}

无论何时安装依赖包,最后总会自动为所有需要打补丁的文件执行补丁操作。

3.如果碰到如下错误

CFBundleIdentifier", Does Not Exist

点击推荐做法

尝试执行以下5步
- File -> Workspace Settings -> Build Sytem -> Legacy Build System

image.png

- rm -rf node_modules
- 删除yarn.lock 或 package.lock文件
- yarn 或 npm i
- npm run ios

如果我的分享有帮助到您,欢迎来个赞加关注哦,感谢!

你可能感兴趣的:(React Native ios工程,升级xcode12后,图片不显示解决方案)