MacでPythonのFlaskでサーバを立てて、iPhone実機のWebViewアプリでアクセスしようとしてハマったのでメモ。
アクセスするIPはPreview(SwiftUIで使えるシュミレータ)と実機で異なる。
# Previewの場合
http://localhost:5000
# iPhone実機の場合(自宅のネットワークのローカルIP、環境によって異なる)
http://192.168.11.8:5000
Previewでは問題なく表示されるが、実機だとWebviewが真っ白に。
Xcodeを見ると以下のエラーが出ていた。
NSURLErrorDomain Code=-1004
アプリに問題があると思い、XcodeのApp Transport Securityの設定をしてみたが何も変わらない。
https://developer.apple.com/jp/news/?id=jxky8h89
AppTransportSecurityは全く関係がなく、Flaskの起動時のオプションが問題であった。
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
Flaskのサーバはデフォルトだと公開されていない:https://qiita.com/tmokmss/items/122dfdb41188176e45b5
host=’0.0.0.0’がないと公開されないようだ。設定したらサーバの再起動もお忘れなく。