[Flutter] Microsoftストアに提出したWindowsアプリで無限にロードするらしい
MicrosoftストアにFlutterでつくったWindowsアプリを提出したが、ロードが無限に続いて機能を確認できないというレポートが届いた。
そのロードされるのは、APIデータを入手するところ。
http
パッケージを利用している。
ビルドして生成された.exeファイルを開いてアプリを実行した場合は、問題なくロードが終わりデータを入手できている。
msix
パッケージを使ったcapability
の指定に問題があったのかとも思ったが、internetClient
を指定しているので問題ないはず。
そもそも、ここでの指定はただの宣言にすぎないっぽい。
関係あるかもしれないReddit
Flutter公式ページをよく見ると、Compiling with Visual Studioという項目があった。
For most apps, it’s sufficient to allow Flutter to handle the compilation process using the flutter run and flutter build commands. If you are making significant changes to the runner app or integrating Flutter into an existing app, you might want to load or compile the Flutter app in Visual Studio itself.
なんか大きな変更があった場合は、Visual Studioでコンパイルした方がいいってこと?
ということで、上記ページの手順にしたがってVisual Studioからアプリを実行してみる。
実行してみると、APIデータを入手するところでUnhandled Exception: Failed host lookup
というエラーが発生してた。
…と思ったけど、そのエラーが発生したのは最初にアプリを実行したときのみ。
その後、同様の手順でVisual Studioからアプリを実行してもそのエラーは発生せず、APIデータの取得に何も問題はなかった。
とりあえず、この状態でmsixを作成(flutter pub run msix:create
)して、Microsoft Storeに提出。
GitHubで質問してみた
Flutter 3.10とDart 3が正式にリリースされたタイミングで再びビルドしてMicrosoft Storeに提出したら、審査に通った。
ただ、Flutter 3.10またはDart 3のおかげで問題が解決されたかどうかはわからない。
調べると、使ってたAPIの証明書が変更されていたので、この変更によって問題が解決した説はある (以前はGlobalSign発行の証明書で、現在はDigiCert発行の証明書だった)。
いずれにせよ解決したので、ヨシ!