React Native ios工程,升级xcode12后,图片
2021-01-04 本文已影响0人
猫先生的一天
升级xcode12后,图片不显示解决方案
环境:
os: macOS Big Sur
react: 16.9.0
react-native: 0.61.2
A: 两种方案
-
升级react-native 到 0.63以上(比较复杂一下,涉及依赖包更新)
-
保持当前版本,为 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
如果我的分享有帮助到您,欢迎来个赞加关注哦,感谢!