Photo by Alistair MacRobert on Unsplash

古いReact NativeのプロジェクトをXcode 10.2でbuildする

Tatsuya Tobioka
Ruffnote
Published in
3 min readJun 18, 2019

--

先日、古いReact Native(0.55.3!)のプロジェクトをbuildする必要がありました。

私が普段使っている端末は、もうXcode10.2しか入っていなかったため、たぶん駄目だろうな、と思いながらもbuildしてみました。

$ ./node_modules/.bin/react-native run-iosCould not find iPhone 6 simulator

予想通りだめでした。
buildエラーどころかbuildが始まってもいない…。

シミュレーターを探す部分が古くなっているようで、そこを書き換えれば動くようです。

この記事を参考に「node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js」の「// Making sure the version of the simulator is an iOS or tvOS (Removes Apple Watch, etc)」 の if を書き換えました。

結果は……

$ ./node_modules/.bin/react-native run-iosCould not find iPhone 6 simulator

なぜだ……

動かしながら中身を見ていると、その後の if 文が期待しているJSONと形式が変わってそうだったので、そこも書き換えてみました。

// Skipping non-available simulator
// if (simulator.availability !== '(available)') {
if (!simulator.isAvailable) {
continue;
}

結果は……

$ ./node_modules/.bin/react-native run-ios** BUILD SUCCEEDED **

行けました!!

真っ当な対応はRNのバージョンアップだと思いますが、やむを得ない場合の参考になれば幸いです。

--

--