diff --git a/Makefile b/Makefile index 8ea9db2..b86b505 100644 --- a/Makefile +++ b/Makefile @@ -191,6 +191,13 @@ test-transport-comparison: # Check the actual shipped data outside this checkout, including first build. WINDOWS_PCK ?= build/windows/TheTree.pck +MACOS_APP ?= build/macos/TheTree.app +.PHONY: export-macos +export-macos: + mkdir -p build/macos + $(GODOT) --headless --path . --export-release "macOS" "$(MACOS_APP)" + python3 tools/verify_exported_opening.py "$(MACOS_APP)/Contents/Resources/The Tree.pck" --godot "$(GODOT)" + .PHONY: test-exported-opening test-exported-opening: python3 tools/verify_exported_opening.py "$(WINDOWS_PCK)" --godot "$(GODOT)" diff --git a/docs/qa/MACOS_RELEASE.md b/docs/qa/MACOS_RELEASE.md new file mode 100644 index 0000000..a63989a --- /dev/null +++ b/docs/qa/MACOS_RELEASE.md @@ -0,0 +1,19 @@ +# macOS配布ビルド + +`make export-macos` で `build/macos/TheTree.app` を生成する。Godot 4.7.2の公式macOSテンプレートを使用し、Apple Silicon / IntelのUniversalバイナリとして出力する。ARM用の書き出しに必要なETC2/ASTCインポートを有効にした。 + +署名はGodot組み込みのad-hoc署名。Apple Developer IDによる署名・公証は未実施。 + +## 検証(2026-09-10) + +- アプリ内のPCKを制作フォルダー外からGodotで実行し、受付の表示・選択・500Gの支払い・完成・次の案内まで13項目成功。保存は無効。 +- 実際のMacリリース実行ファイルをApple M4でheadless起動、20フレームで正常終了。 +- Finder経由でアプリを開き、ゲーム画面の表示を確認。 +- `file`でarm64とx86_64を確認。`codesign --verify --deep --strict`成功。 +- Intel実機での起動は未確認。 + +公式releaseテンプレートはパス上書きが無効であり、外部テストの`--main-pack`を受け付けない。13項目の自動回帰はエディター実行ファイルで配布PCKを検証し、ネイティブアプリ起動確認と区別する。 + +ログ: `artifacts/macos-opening.log`、`artifacts/macos-native-smoke.log`。画面: `artifacts/macos-opening.png`。 + +配布ZIPはアプリとライセンスを同梱する。展開して`TheTree.app`を開く。ネットから取得した未公証アプリはGatekeeperの確認対象になる。 diff --git a/export_presets.cfg b/export_presets.cfg index 6daa5cb..6396f1c 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -35,3 +35,26 @@ application/product_name="The Tree" application/file_description="The Tree prototype" application/copyright="" application/trademarks="" + +[preset.1] + +name="macOS" +platform="macOS" +runnable=true +export_filter="all_resources" +include_filter="" +exclude_filter="tests/*, docs/*, .vscode/*" +export_path="build/macos/TheTree.app" + +[preset.1.options] + +binary_format/architecture="universal" +application/name="The Tree" +application/icon="res://assets/icons/project_icon.svg" +application/bundle_identifier="com.toriniku.the-tree" +application/short_version="0.1.0" +application/version="0.1.0" +codesign/codesign=1 +notarization/notarization=0 +texture_format/s3tc_bptc=true +texture_format/etc2_astc=true diff --git a/project.godot b/project.godot index f4b5a83..c58beb3 100644 --- a/project.godot +++ b/project.godot @@ -43,3 +43,4 @@ window/stretch/scale_mode="fractional" renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" +textures/vram_compression/import_etc2_astc=true