【2020年度版】React Naitiveでデバッグ時に起動するシミュレータを変える方法について




どうもhayaplexです。2019年末あたりからReact Naitiveにドハマリしています。Facebook社が作っただけあって、非常に使いやすいフレームワークですね。

そんなReact Naitiveですが、iOSシミュレータの端末を変える際にハマりました。iPadシミュレータで検証したかったのですが、他サイトで紹介している方法ではエラーがとれませんでした。

今回は、試した方法と経緯、解決策を紹介します。

試した方法

具体的には3つの手法を試しました。最後にやった手法が一番スマートで簡単にiPad起動ができました。

Xcodeプロジェクトを使った方法

ReactNaitiveで開発している人の記事などを見ると、iOS、Androidフォルダがルートにあるような記述があります。

私の環境ではコレみたことがありません・・・。まずiOSプロジェクトフォルダがない。

※ 2020/1/10 追記
expo-cliとReact Native-cliってのがあるんですね・・・。勉強になりました。
この方法でiOSフォルダなどを確認できました。
正しいReact Nativeの環境作り(Mac / 2018年度版)

最新だとフォルダ構成が違うのか、blankで作ったからかは調査中。

iOSフォルダ内に「プロジェクト名.xcodeproj」もあるようですが、私の環境では見つけることができませんでした。つまりXcodeを起動してシミュレータの種類を変える方法は無理そうと判明。

コマンドから直接起動する

expo start とか打つ前の画面で

react-native run-ios –simulator=”シミュレータ名”

のように記載するとシミュレータの種類を変えられるそうです。

xcrun simctl list devices で使えるシミュレータ一覧を取得可能

シミュレータ名は

iOSシミュレータ > Hardware > Device > Manage Device > simulatorタブ

から確認可能

ただこの方法だと

error iOS project folder not found. Are you sure this is a React Native project?. Run CLI with –verbose flag for more details.

というエラーが発生しました。iOSプロジェクトのフォルダーがないよとのことみたいです。
余談ですが、この方法が使えた場合「package.json」にスクリプトを書くことで、簡単に切り替えることができるようでした。

open iOS iPad simulator with React Native by default

package.json に下記を追加

“scripts”: {
“start”: “node node_modules/react-native/local-cli/cli.js start”,
“ipad”: “react-native run-ios –simulator ‘iPad Pro'”
},

npm run ipad で指定したものを起動

iOSシミュレータから無理やり起動させる方法

iOSシミュレータには、デフォルトで起動する端末を指定する方法がないみたいです。iOSシミュレータが閉じている際には、xcodeprojなどの設定で指定している端末が開かれます。

逆にiOSシミュレータが開いている際には、アクティブになっている一番最初に開いた端末になるそうです。

iOSシミュレータ > Hardware > iOS > 起動したいシミュレータを起動
この時点で最初開いたのと2台出ているはず
いらない方の端末をアクティブ > File > Close Window

とすると必要な方のシミュレータだけ起動した状態にできます。
この状態で

expo start > i

といつものコマンドを入れると、 起動したいシミュレータの方でデバッグすることができました。自分でXcodeプロジェクトを作った際には、はまらない部分でもあり時間がかかりました。

こんな方法で解決している人もいなそうだったので、正式な方法がありそうですね。scriptsの追加など色々と勉強になりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です