atelier:mitsuba

i love UI/UX, Blend, XAML, Behavior, P5, oF, Web, Tangible Bits and Physical computing. なにかあればお気軽にご連絡ください。atelier@c-mitsuba.com

Windows Visual Studioからasp.net coreで作ってるWebをデバッグ実行でiPhoneのSafariで表示させて、MacからiPhoneにつないでWebインスペクタからデバッグするお話。

まず大前提として、iPhoneSafariが全盛期のIE並みにイケてないことが全ての始まり。

iPhone/Safariの挙動が他のブラウザと違いすぎて、Chromeの開発者ツールのモバイルビューだけじゃ再現できないことがちらほらあったりする。
でも、作ってるWebをAzureにデプロイが終わってから、Safariで確認して、あーイケてないな、直そう、デプロイしよう、あーまだイケてないな直そうのループがめちゃくちゃダルい。
なんとかしたいよね、っていうのが今回のお話。


今回、ポイントは2つあって、
Visual Studioデバッグ実行中のWebを同じLANの他デバイスからでも見れるようにする。
iOS SafariのWebインスペクタ機能を使って、Mac Safariの開発者ツールから、iOS Safariに表示されてるWebを操作する。
をあわせてやるかんじ。


色々調べてみると、1個目のはVSDevなMVPの @jsakamoto さんが記事書いてたのを真似したらできた!
さすがさかもとさんやで。。。。
devadjust.exblog.jp

ざっくりやると、プロジェクトのプロパティを
このデフォルトからー
https://pbs.twimg.com/media/EsoqOr9U0AAO1zZ?format=png&name=medium

これに変えた。
f:id:c-mitsuba:20210126144201p:plain

1.ブラウザーの起動にチェック入れて、任意のURL(今回はデフォルトを使い回すから、locakhost:5001)を入れる。
2.環境変数に「ASPNETCORE_URLS」を作って待ち受けるURLを入れる(今回は何でもいいから*でポートだけ指定)
3.Webサーバーの設定を消す。
ってかんじ。

で、デバッグ実行してWindows Defenderが怒ってきたら正解。
これでLAN内にサーバーが立ってる状態のはず。
f:id:c-mitsuba:20210126144623p:plain


そうすると、同じLANのMacだったりiPhoneから、WindowsのIPでブラウザで叩けばページが表示される。
f:id:c-mitsuba:20210126144744p:plain
f:id:c-mitsuba:20210126144757p:plain


よし、ここまでで、ポイント1がクリア。
Visual Studioデバッグ実行中のWebを同じLANの他デバイスからでも見れるようにする。

で、2をやってく。
まず下準備にiPhoneの設定 -> Safari -> 詳細からWebインスペクタをONにする。
f:id:c-mitsuba:20210126145124p:plain

MacSafariの開発タブもONにする。
f:id:c-mitsuba:20210126145433p:plain

あとはiPhoneMacにつないで操作したいページにアタッチすれば
f:id:c-mitsuba:20210126145533p:plain

いつもどおり、Webインスペクタが使える。
f:id:c-mitsuba:20210126145619p:plain

f:id:c-mitsuba:20210126145647p:plain



これで、Safariを倒す準備はできた!!!!
けど、それでもやっぱりSafari対応はだるい。
(特にCSSな。。。。。)