はじめに
Go言語でデスクトップアプリを開発できるツールWails
があります。
このツールを使ってMac OS版のアプリを開発していますが、App Storeで購入した人から、Mac OSの古いバージョンで起動すると画面が真っ白になったというバグレポートを頂きました。
原因を調べてWailsのGetting Started
に従って作成したプロジェクトのデフォルト設定で注意すべき点を見つけたので、その紹介です。
現象
本来は、起動すると
という画面を表示するアプリがあります。
Mac OS Catalina
で起動すると
のようにプログラムは起動しますが、画面が真っ白になってしまいます。
2022年に同じWailsを使って開発した別のアプリは、
のように画面が表示されます。
2022年のWailsで開発したアプリは、問題なかったようです。
Montereyでも、画面は表示されました。
原因
Wailsのアプリをデバッグモードで起動してWebインスペクター(ブラウザーの開発者ツールと同じ)で確認するとどうやらJavaScriptのエラーで画面を読み込めないことが原因のようす。
WailsはWebKit(WebView)を利用して画面を表示しますが、古いMac OSの環境で対応していない機能を使っているようです。
対策
古いMac OSは、WebKit(たぶんSafari)のアップデートを提供していないためOSの更新では対応できません。
開発しているアプリの最低動作OSのバージョンを制限して対策するのがよいと思います。
Wailsの
$wails init -n <Project Name>
コマンドで作成したプロジェクトの雛形では、OSの最低バージョンが
<key>LSMinimumSystemVersion</key>
<string>10.13.0</string>
と設定されています。このままだとHigh Sierraから動作することになります。
当然Catalinaも対象になってしまいます。
そこで、ここを書き換えて、
<key>LSMinimumSystemVersion</key>
<string>13.0.0</string>
にしました。2025年の1月時点のサポートOSの範囲にしています。
に基づいて作成したパッケージは
のようにインストールできなくなりました。
余談
この問題が発生したWailsを使ったアプリは、
で紹介しているものです。