0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人開発のexe配布、2026年の選択肢を整理したくて調べた

0
Posted at

PyInstallerでビルドしたexeをInno Setupのインストーラーにして、AV誤検知を16/66から0/66まで落とした話は以前書きました。

PyInstallerで作ったexe、ウイルス扱いされる問題をInno Setupで解決した話

一旦は落ち着いたんですが、配布を続けるうちに気になってきたことがあります。「次のバージョンリリースで検知が復活したとき、次の手は何か」と「そもそもどんな選択肢があって、何がまだ解決されていないのか」が、調べてみるまでよくわからなかった。

2024〜2025年にかけてコード署名まわりの状況が変わっていたりもしたので、今時点での整理として書いておきます。実際に試したのはInno Setupまでで、それ以外は調べた話です。


今の配布方法

Pythonで作った設計データの比較ツールをGitHub Releasesに置いています。Inno Setupで作ったインストーラー版と、ZIP版の両方です。

インストーラー版は今のところVirusTotalで0/66を維持できています。ただ次のリリースでどうなるかは毎回わからない。この「毎回わからない」が地味に落ち着かない。

ZIP版はそのまま投げると誤検知が出るので、ダウンロードページに「ウイルスソフトを一時無効にするか、ファイルの信頼を手動で許可してください」と書いています。インストーラーに抵抗ある人がいるので両方残していますが、説明文が必要なのは理想的ではないとは思っています。


「次の手」として思い浮かんだもの

Inno Setupを試した後に候補として思い浮かんだのは、こんな感じでした。

コード署名(OV/EV証明書)、AVベンダーへの誤検知申請、bootloaderの自前ビルド、Nuitkaへの移行、Microsoft Storeへの申請——それぞれについて一通り調べてみました。


コード署名の状況(2024〜2026年版)

Windowsのコード署名にはOV(組織認証)とEV(拡張認証)があります。EV証明書を持っていると初回ダウンロードからSmartScreen警告が出なくなる、という情報が以前からありましたが、この動作は2024年に廃止されています

Microsoftの公式ドキュメントを確認したところ、「Extended Validation (EV) certificates previously bypassed SmartScreen entirely on first download. That behavior was removed in 2024.」と書いてありました。今はEVとOVでSmartScreen挙動の差はほぼなくなっています。

無料でOSSアプリに署名できるSignPath(signpath.io)も調べました。個人開発者向けの無料プランがあります。ただ署名後に開発者名がパッケージに表示されないという仕様で、ユーザーから見て「誰が作ったか」がわからない形になる。信頼感という観点では微妙なところがあります。

有料のOV証明書(DigiCert、Sectorなど)は取得に年間数万円〜かかります。「個人ツールの配布コストとして見合うか」という問いに対して、今の自分にはまだNoかなと思っています。

bootloaderの自前ビルドとNuitkaへの移行は、前の記事でも触れましたが、試していません。VisualStudioの環境構築と毎リリースの管理コストを考えると、今は優先度を下げています。


AVベンダーへの申請

誤検知が出たベンダーのサポートページから申請する方法です。

各ベンダー(Microsoft Security Intelligence、Kaspersky、Bitdefender、ESET等)がそれぞれ申請フォームや報告窓口を持っています。調べてみると申請を自動化するツールやAPIは今のところ存在しません。英語・日本語両方で探しましたが、統合した自動申請パスは見当たらない。ベンダーごとにフォームの構成も違うので、全部手動で送ることになります。

英語圏の事例を読んでも、ベンダーによっては数日で対応するものもあれば、まったく返答がないまま誤検知フラグが残ることもあるようです。手動申請が続いているのは自分だけではなさそう。

66ベンダー全部に毎リリース手動申請するのは現実的ではないので、今は対応していません。誤検知が復活したときにいくつかの主要ベンダーに絞って試すかどうか、という感じです。


Microsoft Storeの状況が変わっていた

これは調べるまで知らなかったんですが、Microsoft Storeへの個人開発者登録が2025年に無料になっていました。以前は$19かかっていたのが、政府発行IDとセルフィーによる本人確認フローに変わって無料化されています。

SmartScreen問題の解決手段としては一番確実で、Microsoftがパッケージを再署名してくれるため警告がゼロになります。

ただ実際に自分のツールでやろうとすると詰まりそうな点がいくつかありました。

まずMSIXというパッケージ形式への変換が必要です。AppxManifest.xmlを書いて、Windows SDKのmakeappx.exeでパッケージ化する手順が発生します。GitHub Actionsで自動化している事例はあるようですが、整備のコストがそれなりにかかりそう。

バグ修正のたびに審査が入ります(数時間〜最大3営業日)。ホットフィックスを即日配布したい場面と噛み合わない。

CLIツールやコマンドライン系の小ツールはStoreのエコシステムと相性が悪く、ユーザーが探しにくい。今の自分はGitHub Releasesのダウンロード数でフィードバックを見ている運用なので、Storeに移るとその流れが変わります。プライバシーポリシーのURLも別途用意する必要があって、小さなツール向けには余分な準備が増えます。

「選択肢としてある」のはわかりましたが、今の運用スタイルには合わないと思いました。


統合ツールがないのを確認した

「PyInstallerでビルド→コード署名→インストーラー生成→AVベンダー申請」をまとめてやってくれるCLIがあれば、と思って探しました。

Briefcaseというツールが一番近くて、ビルド・署名・インストーラー生成まではカバーしています。ただBeeWare/Togaというフレームワーク向けに最適化されていて、PyInstallerで作ったCLIツールへの適用は設計意図が違う。

他にpup(Mu Editor向け)、winsign(Mozillaのコード署名専用ツール)なども見ましたが、どれかひとつで「AV誤検知まで含めて解決できる」というものはなかった。特に「AVベンダー申請」のステップだけ、どのツールでも手動のままになっています。

こういうツール、誰かが作っていそうなんですが、まだないんですね。需要はあると思うんですが。


調べてわかったこと、今のスタンス

手段 状態 今の判断
Inno Setup インストーラー化 実施中(0/66維持) 継続
コード署名(有料OV) 調べた・未実施 今は見送り
コード署名(SignPath無料) 調べた・未実施 開発者名非表示が引っかかる
AVベンダー手動申請 調べた・未実施 誤検知復活時に検討
bootloader自前ビルド 調べた・未実施 環境コストで見送り
Nuitka移行 調べた・未実施 ビルド管理コストで見送り
Microsoft Store 調べた・未実施 運用スタイルと合わない
統合CLIツール 探した・不在を確認 代替なし

今はInno Setupで凌いでいます。次のリリースで検知が戻ってきたときにどうするか、というのは引き続き悩み中です。

「完全に解決できる手段はない」「各手段に固有のトレードオフがある」というのが、調べてみてわかったことです。個人開発者がどこで折り合いをつけるかは、ツールの規模とユーザー数によって変わりそう。今の自分にはInno SetupとZIP両方置いておく形がまだ現実的かなと思っています。


参考

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?