Repository navigation
gpget v0.2.0
v0.1.0 をお使いの方は、この版に上げてください。
v0.1.0 には、macOS と Windows のそれぞれに、自動起動まわりの重いバグがあります。
- macOS: 通知の許可が一度も求められないまま「拒否」で固定される。
転送は動きますが、終わったことが分かりません - Windows: 自動起動の登録が失敗しているのに「登録しました」と表示される。
自動起動がまったく動きません - Linux: この版での変更はありません(自動起動は引き続き未検証です)
直したこと
macOS: 通知の許可が一度も出せなかった
v0.1.0 では、.app を ~/Library/Application Support に置いていました。
macOS はここを Launch Services のデータベースに載せないため、通知の担当プロセス
(usernoted)が「このプロセスがそのバンドル ID を名乗ってよいか」を検証できず、
許可のプロンプトを一度も出さないまま拒否していました。しかもその拒否は残るので、
以後は二度と聞かれません。
.app の置き場所を ~/Applications/gpget.app に変えました。ここは
Launch Services が自動で見る場所なので、普通のアプリと同じように許可を聞かれます。
あわせて、通知の許可の求められ方が分かりにくいことも分かりました。
macOS はこれをダイアログではなく、画面右上のバナーで聞いてきます。
- タイトルが「gpget」、本文が「テキスト、サウンド、アイコンバッジにより通知されます」だけ
- 許可は**バナー右下の「オプション」→「許可」**からしか出せない
- バナー本体をクリックすると設定画面が開くだけで、許可にはならない
- 60 秒で消え、放置すると「拒否」として記録される
gpget autostart install の出力で、この見た目と押し方を先に案内するようにしました。
macOS: install が「テスト通知を送りました」と嘘をついていた
通知の許可が無いとき、gpget は osascript に切り替えて送っていました。これは
macOS がほぼ確実に握りつぶす経路ですが、install は成功と表示していました。
許可が無いユーザーに「大丈夫です」と伝えていたことになります。
どの経路で通ったかを見るようにして、許可が無いときはそう表示します。
Windows: 自動起動の登録が無言で失敗していた
gpget autostart install が「登録しました」と出すのに、直後の
gpget autostart status が disabled を返す、という報告への対応です。
タスクの繰り返し期間にタスクスケジューラのスキーマが受け付けない値を渡しており、
かつ PowerShell 側でエラーを検出していなかったため、失敗が成功として報告されて
いました。タスク XML を直接渡す方式に変え、登録後に存在確認するようにしました。
タスクが毎分コンソール窓を一瞬出す問題も、同時に直しています。
その他
gpget autostart test-notifyを.appの外から実行するとクラッシュしていた- README にアップデートとアンインストールの手順を追加(これまで無かった)
gpget autostart statusが、実際に使われている.appの場所を表示するように
上げるときにやること
1. バイナリを入れ替える(インストールと同じコマンド。README 参照)
2. 自動起動を使っているなら、install をやり直す(macOS / Windows とも必須)
gpget autostart install
gpget autostart status
- macOS:
.appの置き場所が変わったため。statusのapp:行が
~/Applications/gpget.appを指していれば移行できています - Windows: v0.1.0 では登録自体が失敗していたため、やり直しが要ります。
statusがenabledを返せば成功です。v0.1.0 ではdisabledが返っていました - Linux: 変更はありませんが、やり直しても害はありません
3. macOS で v0.1.0 を使っていた方は、通知を手で ON にしてください
システム設定 > 通知 > gpget
上げても通知の許可は聞かれません。 拒否はバンドル ID に紐づいて記録されており、
アプリ側から解除する手段がないためです。お手数ですが手動でお願いします。
ON にしたあと、こちらで確認できます:
"$HOME/Applications/gpget.app/Contents/MacOS/gpget" autostart test-notify
設定と、取り込み済みのファイルには影響しません。
検証状況
macOS(Apple Silicon / macOS 15 以降)は実機で検証済みです。
通知の許可については、使い捨てのバンドルを 13 本作って挙動を実測し、
初回インストールから許可・通知までの流れを通しで確認しています。
Windows の修正は実機で確認できていません。 報告された症状の原因は特定し、
Register-ScheduledTask の失敗を検出するようにしましたが、Windows 実機での
end-to-end は未実施です。Linux も未検証のままです。
試していただける方は docs/testing.md(英語) / docs/testing.ja.md(日本語) に
手順と報告方法をまとめてあります。うまくいかなかった報告も歓迎します。
注意
バージョンが 0.x の間は、コマンドの形や設定ファイルの項目が変わることがあります。