初めに
react-native-camera がexportしている Camera
と RNCamera
のうち、
前者の Camera
を使ったらiPhoneSEでは動くくせにiPhoneXでは動かない、という罠に嵌った。
やったこと
react-native-camera
をnpmなりyarnなりでinstallし、いつもの手順でlinkさせ、↓ のようにしてアプリから呼び出すと、
default exportな方の Camera
がiPhoneSEでは正しく使えるのにiPhoneXではnullになる、という怪現象に見舞われた。
import Camera, { RNCamera } from 'react-native-camera';
普段から表示崩れを意識してiPhoneSEばかりで動作確認していたので見事に嵌った。
シミュレータでも再現した。
対策
素直に新しい方の RNCamera
を使うようにしたら問題なかった。
マイク不要なアプリなのに勝手にマイクのpermissionまで取られてしまうのが嫌で避けていたのだが、
captureAudio
というpropertyをfalseにすればマイクのpermissionを回避できた。最初からちゃんと調べるべきだった。
そしてちゃんとiPhoneX以降の端末でも動作確認するべきだった。
終わりに
やはりReactNativeなんて使うもんではない (暴論)