Flutter でアプリ開発を行いUSBケーブルでつないでデバックを行っているときや、debugモードでapkファイルを出力してアプリを利用した場合は問題なくAPIを呼び出せるのに
リリースビルドしていざテストを行ったときにAPIが正常に呼び出せない事象が発生、なんでだろと思って調べ、原因を調査したところ、しっかりとドキュメントに書いてある内容でした。。
そんなの見ないよと思いつつも、絶対同じような場面に直面する人がいると思うので備忘録として残します。
エラーの内容
エラー内容を確認すると
Error: SocketException: Failed host lookup~省略~
最初APIリクエスト先のURL間違えていたのかな、と思い確認したが問題なく、デバックの時点で確認できたので権限周りかなと思い調べるとかなりわかりやすい説明がありました。
デバックビルドはインターネットのアクセス権限が自動で付与されるけどリリースの際は追加しないといけないみたいです。
ドキュメントにもしっかり記載してありました。
実際以下のように赤枠部分を追加して、リリース ビルドしたら問題なくAPIを呼び出せました。
大抵の問題は実は公式ドキュメンとに掲載されていることが多いです。
※初学者の方へ※
初学者の方は(自分もそうでした)エラーが出たらエラー文で調べて最初の方に出てきた、やってみた・対応してみた等の記事から同様なものを探しだしたり、コピーしたりして対応していました。
その場しのぎにはなりますが、ドキュメントを読んで対応するのとでは情報量と質に差が出てきます。
なので、初学者の方はなるべく公式ドキュメントを読んで理解することをお勧めします。
まとめ
エラーが出た際にネットで調べたら、解決策等の記事が大量に出てきて、その中から優良なものを探すのがとても大変です。
ネイティブアプリ開発では特に、端末やバージョン、iOSやAndroidといった環境の違いによりビルド時のエラーがよく出力されますが、ドキュメントに記載されていることが多いです。
日頃からドキュメントを読む意識を心掛けことが大事です。