どうも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 とか打つ前の画面で
のように記載するとシミュレータの種類を変えられるそうです。
xcrun simctl list devices で使えるシミュレータ一覧を取得可能
シミュレータ名は
iOSシミュレータ > Hardware > Device > Manage Device > simulatorタブ
から確認可能
ただこの方法だと
というエラーが発生しました。iOSプロジェクトのフォルダーがないよとのことみたいです。
余談ですが、この方法が使えた場合「package.json」にスクリプトを書くことで、簡単に切り替えることができるようでした。
open iOS iPad simulator with React Native by default
“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シミュレータが開いている際には、アクティブになっている一番最初に開いた端末になるそうです。
この時点で最初開いたのと2台出ているはず
いらない方の端末をアクティブ > File > Close Window
とすると必要な方のシミュレータだけ起動した状態にできます。
この状態で
expo start > i
といつものコマンドを入れると、 起動したいシミュレータの方でデバッグすることができました。自分でXcodeプロジェクトを作った際には、はまらない部分でもあり時間がかかりました。
こんな方法で解決している人もいなそうだったので、正式な方法がありそうですね。scriptsの追加など色々と勉強になりました。
コメントを残す