React Native ios工程,升級xcode12后,圖片不顯示解決方案

升級xcode12后,圖片不顯示解決方案

環(huán)境:
os: macOS Big Sur
react: 16.9.0
react-native: 0.61.2

A: 兩種方案

  1. 升級react-native 到 0.63以上(比較復雜一下,涉及依賴包更新)

  2. 保持當前版本,為 react-native 包打補?。ㄍ扑]),主要是使用了patch-package,官方的解釋為包作者可以為自己的開發(fā)包快速的打補丁,而不用等到新的pr到來后就可以立即使用。這非常有用,前端包更新速度太快,相互依賴總會有不兼容的情況發(fā)生,而patch-package可以很迅速的為應用開發(fā)者提供‘創(chuàng)可貼’。
    具體步驟:

  • 打開 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自動執(zhí)行補丁
"scripts": {
  ...
  "postinstall": "patch-package",
}

無論何時安裝依賴包,最后總會自動為所有需要打補丁的文件執(zhí)行補丁操作。

3.如果碰到如下錯誤

CFBundleIdentifier", Does Not Exist

點擊推薦做法

嘗試執(zhí)行以下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

如果我的分享有幫助到您,歡迎來個贊加關注哦,感謝!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容