LoginSignup
1
2

More than 3 years have passed since last update.

React Native + Xcode12で画像が表示されない問題

Posted at

ただの以下の日本語訳です。
参照:https://medium.com/@jQN/fix-images-not-loading-in-ios-14-react-native-723534305e46

問題について

特定バージョン(僕の場合0.62.2)のReact NativeでXcodeを使用した場合、画像が表示されない問題が確認されています。ReactNativeのバージョンをあげると解決しますが、依存関係の問題でバージョンをあげられない場合の一時的な解決です。

変更する部分

vi node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
# code node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
// 270行目あたり
#pragma mark - CALayerDelegate

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

ここにelseを追加

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;
  } else {
    [super displayLayer:layer];
  }
}

パッチの作成

npm install patch-package
# yarn install
npx patch-package react-native
# patch-package react-native --use-yarn yarnの場合

# patch-package 6.2.2
# • Creating temporary folder
# • Installing react-native@0.62.2 with yarn
# • Diffing your files with clean files
# ✔ Created file patches/react-native+0.62.2.patch

patches配下に作成されるのでgit add
git add patches/*

package.jsonに追加

package.json
"scripts": {
  ...
  "postinstall": "patch-package",
}
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2