「アプリケーション“Game.app”を開けません」の対処法

アプリケーション“Game.app”を開けません、と表示されたダイアログ
Macで作業ゲームを遊ぶ方(プレイヤー)ご自身の操作で解決できます。

作者の方がWindows版のツクールMZでMac用に書き出した場合、アプリ内部の実行権限とシンボリックリンクが失われた状態で配布されていることがあります。これがこのエラーの原因です。

書き出した時点で壊れているため、xattr -crでは解決しません。以下の手順で修復できます。

修復手順

ターミナルを使いますが、コピーと貼り付けだけで完了します。

1. ゲームのフォルダを分かりやすい場所に置く

zipを展開したフォルダを、デスクトップなどに移動しておきます。フォルダごと移動してください。Game.appだけを取り出すと、同じ階層にあるファイルを見失って起動しないことがあります。

2. ターミナルを開く

アプリケーション>ユーティリティ>ターミナルを開きます。

3. 修復コマンドを貼り付ける

以下をまるごとコピーし、ターミナルに貼り付けてEnterキーを押します。この時点ではまだ何も起こりません。修復の手順を登録しているだけです。

# NW.js製 Game.app のリンクと実行権限を修復する fixapp() { APP="${1%/}" FW="$APP/Contents/Frameworks/nwjs Framework.framework" [ -d "$FW" ] || { echo "nwjs Framework が見つかりません: $APP"; return 1; } # 1. テキストファイルに化けたシンボリックリンクを復元 for n in "Helpers" "Internet Plug-Ins" "Libraries" "nwjs Framework" \ "Resources" "XPCServices" "Versions/Current"; do if [ -f "$FW/$n" ] && [ ! -L "$FW/$n" ]; then t=$(cat "$FW/$n"); rm "$FW/$n"; ln -s "$t" "$FW/$n" echo "リンク復元: $n -> $t" fi done # 2. 実行権限を付与 find "$APP" -type f \( -path "*/MacOS/*" -o -name "*.dylib" \ -o -name "chrome_crashpad_handler" -o -name "app_mode_loader" \ -o -name "nwjs Framework" \) -exec chmod +x {} \; # 3. 隔離属性を外し、署名を付け直す xattr -cr "$APP" codesign --force --deep --sign - "$APP" echo "完了しました。$APP を開いてみてください。" }

4. Game.appをドラッグ&ドロップして実行する

続けてfixappと入力し、半角スペースを1つ空けてから、Game.appをターミナルの窓へドラッグ&ドロップします。パスが自動で入力されますので、そのままEnterキーを押してください。

$ fixapp /Users/ユーザー名/Desktop/ゲーム名/Game.app リンク復元: Helpers -> Versions/Current/Helpers リンク復元: Internet Plug-Ins -> Versions/Current/Internet Plug-Ins リンク復元: Libraries -> Versions/Current/Libraries リンク復元: nwjs Framework -> Versions/Current/nwjs Framework リンク復元: Resources -> Versions/Current/Resources リンク復元: XPCServices -> Versions/Current/XPCServices リンク復元: Versions/Current -> 88.0.4324.96 完了しました。

このように表示されれば成功です。

5. Game.appの実行

改めてGame.appをダブルクリックしてください。起動するようになっているはずです。

ここで「nwjsが予期しない理由で終了しました。」と表示される場合は、続けてCの対処法をお試しください。

補足事項