flutter.devが開けない時に試すたった1つのこと【Mac】

Macでflutter.devやzenn.devなどの〇〇.devにアクセスできない問題を解決する方法を紹介します。
TLDが.devのURLを開くとき、自動でそのURLを127.0.0.1と解釈する設定ファイルがあるため、そのファイル(/etc/resolver/dev
もしくは /etc/resolvers/dev
)を削除するor無効化する。
説明はこのページの後半に書き、まずは解決策を紹介します。
Terminalでのファイル操作に慣れている人は解決策2を、慣れていない人は解決策1をお試しください。こだわりのない人は解決策1で十分だと思います。
解決策1: Finderでファイル名を変える/削除する
難易度: ★☆☆☆☆
不確実性: ★★☆☆☆
- Finderを開く
- command ⌘ + shift ⇧ + Gを同時に押し、「フォルダへ移動」ウィンドウを開く
- /etc/resolver/と入力し、return ⏎ を押す
- 人によっては
/etc/resolver/
ではなく/etc/resolvers/
になっていることがあります
- 人によっては
- 該当のフォルダが開く



dev
という名前のファイルを選択し、return ⏎ キーを押す_dev
と入力し、return ⏎ キーを押す- Touch IDで認証するか、Macにログインするときのパスワードを入力する


削除する際は、devという名前のファイルを選択し、command ⌘ + delete ⌫ で削除します。Touch IDやパスワードを求められた際は上記と同じ手順で認証します。

解決策2: Terminalでファイル名を変える/削除する
難易度: ★★★☆☆
不確実性: ★☆☆☆☆
- command ⌘ + space キーでSpotlightを起動
- “terminal”と入力
- Terminalアプリに選択肢が合っている状態でreturn ⏎ を押す

Terminalを開くと、以下のような画面が表示されるはずです。
(色やデザインは人の設定によって変わります)

このような画面が開けたら、以下のコマンドを入力します。
(意味がわからない方はコピペ推奨)
ls -l /etc/resolver/
その結果、以下のようにdevというファイル名が表示されたら、このdevファイルが原因と見て間違いないでしょう。
-rw-r--r-- 1 root wheel 59 Apr 9 2020 dev
-rw-r--r-- 1 root wheel 59 Apr 9 2020 test
もし、ls: /etc/resolver/: No such file or directory
というエラーが出た場合は、resolverの箇所をresolversと変えてみてください。(以後のコマンドも同様です)
ls -l /etc/resolvers/
この設定ファイルを無効化するには、devファイルの名前を_devと変えるコマンドを実行します。
sudo mv /etc/resolver/dev /etc/resolver/_dev
Password:
とパスワード入力を求められるので、Macにログインするときのパスワードを入力してください。
もう要らないと思う方は、devファイルを削除してもよいです。
sudo rm -f /etc/resolver/dev

devファイルには何が書いてあるの?
_devファイル(旧devファイル)に何が書かれているか、出力してみましょう。
cat /etc/resolver/_dev
# Lovingly generated by Pow
nameserver 127.0.0.1
port 20560
この原理を説明する前に、URLやTLD(Top Level Domain)について簡単に説明します。
まず、URLと言って皆さんが思い浮かべるであろうもの(例: https://www.youtube.com)はいくつかの構成要素に分かれています。
- スキーム:
https
- ホスト:
www.youtube.com
- ポート:
80
- ポート番号が省略されているときは80が既定値
- 省略されているだけなので、
https://www.youtube.com:80
でも同じサイトにアクセスできます
そのホストの中で、.comや.net、.orgなどのファイルの拡張子みたいなものがついていますね。そのホストの最後につく.〇〇〇のことを正式にはトップレベルドメイン(Top Level Domain: TLD)と言います。
- https://www.apple.com
- https://www.speedtest.net
- https://www.freecodecamp.org
ここまでが前置きで、ここから/etc/resolver/フォルダーの説明に移ります。
/etc/resolver/フォルダーに存在するファイル名のTLDのURLにアクセスするときは、そのファイルの中で指定された「ホスト名(nameserver)」と「ポート番号(port)」へ半ば勝手にアクセス先が変わります。
つまり、/etc/resolver/フォルダーにdevファイルが存在すると、〇〇.devにアクセスする際に127.0.0.1:20560へアクセスしてしまい、エラーが表示されたのでした。
127.0.0.1とは自分のパソコンでサーバーを立てた時のIPアドレスとなります。
どんなサイトやサーバーにも「ネット空間における住所」のようなものがあり、それがIPアドレスです。
上述の”ホスト”には、対応するIPアドレスが必ずあります。
127.0.0.1と対応するホストはlocalhost
です。
「なぜ127.0.0.1にアクセスするとエラーが出るか」というと、あなたのコンピュータでサーバーが立ち上がっていないからです。
自分のPC上でサーバーを立ち上げる方法はいくつもありますが、簡単に試したい方は以下の記事を参考にしてみてください。

因みに、lovingly generated by powの”pow”とはRuby on Railsでローカルサーバーを立てる際に使われるツールのようです。
人によってはpumaというものが使われているらしく、pumaが使われた人は/etc/resolvers/フォルダーが作られるとのことでした。
実に余計なおせっかい🧐🧐