問題の概要
Voice Typerアプリのビルド版で、権限ダイアログが一切表示されないという問題に直面しました。
発生した問題
正常な動作(期待される動作)
初回起動時のみ:
- マイク使用許可のダイアログが表示される
- アクセシビリティ権限のリクエストが表示される
- ユーザーが許可を与えることで、音声認識とテキスト入力が可能になる
実際の動作(問題)
未署名のビルド後のアプリでは:
- アプリを起動するたびに権限ダイアログが表示される
- 許可を与えても、次回起動時にまた表示される
- システム設定での権限が保持されない
- 結果として、毎回権限を許可する必要があり、実用的でない
解決方法
この問題を解決するには、Apple Developer Programに登録し、アプリケーションに対して適切な署名とNotarization(公証)を行う必要があります。
未署名のmacOSアプリケーションでは、権限ダイアログは表示されますが、セキュリティ上の理由から権限を正しく取得できない仕様となっています。
重要: 自分のPCのみで動くアプリを作っている人も同様です。ビルド後の権限問題は必ずついてきます。
詳細な手順
ElectronアプリのmacOS署名とNotarizationの詳細な手順については、以下を参照してください:
個人的な振り返り
正直なところ、年間$99を支払っても本当に問題が解決するのか確信が持てませんでした。権限ダイアログが表示されない原因が他にあるのではないかと疑い、コードの見直しやビルド設定の確認を何度も繰り返しました。
しかし、Apple Developer Programに登録し、署名とNotarizationを行った結果、問題はあっさりと解決しました。アプリを起動すると期待通りに権限ダイアログが表示され、正常に動作するようになった時の安堵感は今でも覚えています。
この経験を通じて、同じような問題で悩んでいる開発者の方々に伝えたいことは:
- 署名とNotarizationは本当に必要です
- 権限ダイアログが表示されない問題の多くは、これで解決します
- $99の投資は、無駄な時間を費やすよりもはるかに価値があります
もし同じ問題に直面している方がいれば、迷わずApple Developer Programに登録することをお勧めします。
また、いずれアプリをリリースする場合は$99を支払う必要があるため、リリース直前ではなく、ある程度余裕を持ってアカウントを作成することをお勧めします。
まとめ
macOSで権限を必要とするアプリを配布する場合、Apple Developer Programへの登録と適切な署名・Notarizationが必須です。これらの手続きを行わない限り、権限ダイアログは表示されず、アプリは正常に動作しません。