購入者環境監査で「Python未導入問題」と販売基準を見直した一日

今日は販売前監査として、開発環境ではなく購入者と同じ環境で日比谷佑紗が本当に動くかを徹底的に檢証した。

結果から言うと、販売前に見つかって本当に良かったと思える問題がいくつも見つかった。


「動くコード」と「売れるソフト」は違う

これまで開発は主に mrfta 環境で行ってきた。

開発者の環境ではPythonもライブラリも揃っているため、

「ちゃんと動く」

と思っていた。

しかし実際に購入者役として五条律(GojoR)アカウントで試すと、全く違う世界だった。




install.ps1問題

最初に分かったのは

install.ps1

という名前では何を押せばいいか分かりにくいこと。

そこで

秘書に来てもらう.ps1

を追加し、

さらに

はじめにこれを押してね.bat

を入口として用意した。

しかし今度は

ps1がメモ帳で開く

というWindows特有の問題に遭遇した。

そこでBATからPowerShellを起動する構成へ変更した。


BATもすぐ閉じる

BATを作って終わりではなかった。

文字コードやPowerShellのエスケープが原因で

一瞬だけ黒い画面が出て終了する

という問題が発生。

原因を調査し、

  • CP932
  • UTF-8 BOM
  • PowerShellの引用符

などを修正し、ようやく正常に動くようになった。


アイコンが出ない

インストールには成功した。

しかし

デスクトップのSecretaryPetが

白い紙アイコン

だった。

ショートカットへ

characters/yusa/icon_yusa.ico

を設定する処理を追加。

購入者から見た第一印象も改善した。


それでも秘書は起動しなかった

ここが一番重要だった。

綾華は

「確認しました」

「正常です」

と報告していた。

しかし実際に五条律アカウントで試すと

秘書が起動しない。

つまり

「コードは正しい」

と

「購入者が使える」

は別問題だった。

ここで販売基準を変更した。


販売基準を変更

今後は

コードが動く

ではなく

購入者がインストールし、
実際に起動できる

まで確認して初めて完成とする。

つまり

  • ZIP
  • インストール
  • ショートカット
  • 起動
  • 監視開始

全部通って初めて

「できました」

と言える。


真犯人はPythonだった

原因を調査すると

GojoR環境では

Get-Command python

が

C:\Users\GojoR\AppData\Local\Microsoft\WindowsApps\python.exe

を返していた。

これは

Microsoft Storeのダミーエイリアス

だった。

つまり

Pythonが入っているように見えて

実際には入っていなかった。

そのため

python secretary_pet.py

は

終了コード9009

になっていた。


インストーラー改善

そこで

秘書に来てもらう.ps1

へ

  • WindowsApps判定
  • python --version確認
  • Python公式サイトを開く
  • install_logへERROR
  • SUCCESSを出さない

を追加した。

これで

Python未導入でも

何が起きたのか分かるようになった。


さらに新しい問題

しかし

Pythonをインストールした後でも

Pythonがありません

と言われた。

原因として考えられるのは

  • PATH未更新
  • PowerShell再起動前
  • WindowsAppsエイリアス優先

など。

つまり

購入者は

Pythonを入れても

もう一度つまずく。


次に直すもの

インストーラーは

python.exe

だけではなく

  • python.exe
  • py.exe
  • AppData内Python
  • Program Files内Python

まで探すよう改善する。

「PATHにない=未インストール」

という考え方をやめる。


今回決めた販売ルール

販売前監査では

もう

「確認しました」

では終わらない。

合格条件は

  • GojoR環境でZIP展開
  • BAT実行
  • インストール成功
  • ショートカット作成
  • 日比谷佑紗起動
  • AI監視開始

ここまで成功して初めて

販売できる

と判断する。

今回の監査で、「開発者目線」と「購入者目線」の違いを改めて痛感した。

販売するソフトは、開発者の環境で動くだけでは意味がない。

誰の環境でも、迷わず使えること。

その品質を目指して、引き続き改善を進めていく。