For AI agents: the complete documentation index is available at https://renmori.mewbaka.cn/ja/llms.txt, the full documentation bundle is available at https://renmori.mewbaka.cn/ja/llms-full.txt, and this page is available as Markdown at https://renmori.mewbaka.cn/ja/cli/verify.md.
  • 日本語
  • renmori verify

    renmori verify は、保護済みビルド自身の renmori-manifest.json に基づき、保護の完了後にビルドが変更されていないか、実行に必要なファイルが欠けていないか、そしてディスク上に直接抽出可能な平文のスクリプトやアーカイブが残っていないかを確認します。ファイルの読み取りのみを行い、内容は一切変更しないため、リリース前に手動で実行することも、CI パイプラインのゲートとして使用することもできます。

    構文

    renmori verify <protected-dir> [--lang {auto,en,zh}] [--no-color] [--quiet]
    引数説明
    protected-dirrenmori protect が生成した保護済みビルドのルートディレクトリ、すなわち renmori-manifest.json と game/ を含むディレクトリ

    検証項目

    検証内容失敗時に報告される問題
    ビルドルートに renmori-manifest.json が存在するno renmori-manifest.json in <dir>(終了コード 2 で直ちに終了)
    game/renmori.rmc が存在するmissing renmori.rmc
    game/renmori.rpe が存在するmissing renmori.rpe
    コンテナファイルの SHA-256 がマニフェストの container_sha256 と一致するcontainer sha mismatch
    game/ とそのすべてのサブディレクトリに .rpa、.rpyc、.rpy、.rpyb、.rpymc ファイルが存在しないplaintext left: <path>(最初に見つかった 1 件のみを報告)

    ビルドマニフェストがない場合に直ちに終了する点を除き、その他の検証結果はまとめて報告されます。いずれかの検証が失敗すると、コマンドはすべての問題を列挙して終了コード 1 で終了します。

    コンテナのハッシュ検証では、保護後にコンテナが差し替えられた場合、切り詰められた場合や転送中に破損した場合、およびビルドマニフェストが別の保護処理によるものである場合を検出できます。平文の残存検証は cache/ ディレクトリも対象とします。このディレクトリ内の .rpyb ファイルにはスクリプトのコンパイル済みバイトコードが含まれているためです。

    検証の対象外

    verify は静的なファイル検査であり、以下は対象外です。

    • ゲームを実行せず、コンテナも復号しないため、すべてのアセットをエンジンが正しく読み込めるかは確認できない。エンドツーエンドの検証には、実際の Ren'Py SDK で保護済みビルドを読み込むリポジトリの tools/verify_in_renpy.py を使用できる
    • game/ 以外のファイル(各プラットフォームのランチャーや lib/ 内のランタイムなど)は検査しない
    • exclude または keep_on_disk によってディスク上に保持されたスクリプト以外のファイルは検査しない(これらのファイルは設計上、平文で存在する)
    • ビルドに使用された保護強度がリリース要件を満たしているかは判断しない。保護強度はマニフェストの strength フィールドに記録されており、パイプラインで別途確認できる

    出力

    進捗情報は stderr に、最終行の JSON は stdout に出力されます。

    検証に合格した場合:

    {"status": "ok", "file_count": 842, "container_sha256": "9f2c…"}

    検証に失敗した場合:

    {"status": "error", "problems": ["container sha mismatch", "plaintext left: game/script.rpyc"]}

    ビルドマニフェストがない場合:

    {"status": "error", "message": "no renmori-manifest.json in /path/to/build"}

    各フィールドの意味と終了コードは出力・ビルドマニフェスト・終了コードを参照してください。

    終了コード

    終了コード意味
    0すべての検証に合格
    1少なくとも 1 つの検証が失敗
    2ディレクトリに renmori-manifest.json が存在しない

    例

    リリース前に手動で検証する場合:

    renmori verify ./dist/MyGame-1.0-pc-protected

    CI のゲートとして使用し、JSON のみを出力する場合:

    renmori verify ./build/MyGame-pc-protected --quiet

    シェルスクリプトで結果に応じてアップロードを続行するか判断する場合:

    if renmori verify ./out --quiet > verify.json; then
      echo "verified"
    else
      cat verify.json
      exit 1
    fi
    Tip

    protect と verify の間でビルドに変更を加えてはいけません。内容を調整する必要がある場合は、保護済みディレクトリを変更するのではなく、新しい配布用ビルドまたはバックアップから protect をやり直してください。

    © 2026 笨猫工作室 MewBaka Studio. All Rights Reserved.