前の書き込みで、pyinstallerでpython + PyQt5 + sqlite3のスタンダロンアプリが作れた、と書いた気がするが、これを他のMacに持っていくと動かないのだった。
なぜか。
macOSのSierraかHighSierraの頃から、Appleの認証を受けていないアプリは起動しようとすると、まず「怪しいアプリなので削除しますか」的なメッセージが出て削除されそうになる。それを回避するには「システム環境設定」-「セキュリティとプライバシー」を開けて解除する手順が必要になるが、たとえそこを通過しても、外部ファイルのデータベースファイルにはアクセスできない。
なぜならば、怪しい認定されたプログラムはランダムな場所に移されて実行されることになるから。
そのため、データベースファイルを相対パスとしてプログラムに埋め込んでいても、まずそこにアクセスすることはできない。
対策と思って、実行ファイルの二つ上のフォルダにデータベースファイルを配置すると、確かにアクセスできるのだけれど、SQLの実行結果を外部ファイルとして書き出そうとするとエラーで落ちてしまい、実質的には役に立たない。
ああ、どうしたものだろうか。
繰り言を言えば、こんなことをしても悪い奴らはこんなものを軽々突破して悪いことを成し遂げるわけだし、実質的に被害を受けるのは善意のアマグラマなんだよなぁー。ま、現実と同じだね。