Macでゲームが起動しない (TLD doesn't work on Macinosh.)

(確認した環境:Sierra10.12-Catalina10.15)
ロストダイアリーQRは、18日にWin版をふりーむに申請しているのですが、1週間経過しても審査が完了せず、後に登録したベクターの方(Mac版)が2日ほどで公開されてしまったので、先に公開を予定していたTLDポータルより、こちらの記事(Macでのトラブル対策)を先に案内させていただきます。
発生する例外
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
作業中、コード署名や公証等に関していろいろ調べていて、薄々予感していたのですが、Macでダウンロードしたzipファイルそのまま解凍すると、プログラムが起動しないことがあります。(右クリックで起動しても落ちる)
根本的な解決策ではありませんが、対処方法をメモしておきます。
(まず、SDL2は、Frameworksフォルダに正しくインストールされている前提)
◆原因
ブラウザ(サファリ以外でもMacのファイル保存APIを使っている以上、起きると考えられる)が、ダウンロードしたファイルを保存する際、ファイルシステム管理域にあるファイルカタログに、インターネットからダウンロードした等、のなんらかの属性が付くからのようで、それが付くと、当プログラムの場合、起動時に上記例外が発生して落ちるようです。
ZIPを解凍してもデフォルトのアーカイバでは、その属性を展開後のファイルに継承するようで、影響は消えません。他のアーカイブアプリで解凍したり、UNIXコマンド等を用いた特定の複製プロセスを経ることで解決することもあります。
実際のところ、ローカルにビルドしたプログラムと、ダウンロードしたものを比べても、ファイル的には寸分の違いはありません。
◆対処方法
⇒Windows環境が近くにある
・Windowsでzipをダウンロードする。
・OneDriveに保存してWindows側で解凍する。
※WindowsではファイルシステムがMacとは異なり、属性という、ファイルそのものと関係ない要素においては共通点が無いため、複製や解凍を経ることで、属性問題が回避できると考えられます。(NTFSにもややこしい拡張属性があって、ネットからダウンロードしたファイルの実行がブロックされたりします。)
⇒Windows環境がない
・ダウンロードしたzipファイル(すでにごみ箱へ移動しているかも)をデフォルトのアーカイバではなく、別のものを使用して解凍してみる。(Catalina以降だと64ビットアプリ以外動かないので、選択肢は狭そうですが、専用ソフトなら属性継承のオプションがあるかもしれません。)
・意外と一番簡単なのが、アプリケーションのパッケージを開いて、そこにある実行バイナリ―本体(TLDQR2023.app/Contents/MacOS/TLDQR2023)をダブルクリックして起動する。コンソールが表示され、裏技っぽいですが、とりあえず起動したい人には向いています。
⇒その他
・デジカメなどMac以外でフォーマットされたSDカード等にコピーし、同時にそこに作成される不可視ファイル削除後、Macに再び戻す...とかで属性洗浄できるかもしれません。(未確認)
◆自分のMacで起きてることは、自分で解決するぜ、な意識高いやり方
ファイル自体は全く同じものですので、このファイル属性を洗浄すれば解決します。
参考サイト
https://ohllengeapplication.com/blog/index.php/2022/07/25/mac_terminal_extended-attributes_remove/
1.属性の確認
ターミナルを開いて、「ls -l 」とタイプ。区切りのスペースに気を付けます。
***Macの名前***:~ ***ユーザ名***$ ls -l [●該当ファイル(または内包するフォルダ)をドラッグ]
[return]
属性が表示されると該当ファイルは、このようになっています(例)
-rw-rw-rw-@ 1 *****ユーザ名****** staff 55413510 7 25 23:26 TheLostDiaryQR200.zip
2.拡張属性(@)を削除する。(xattr -c コマンド)
ターミナルを開いて、「xattr -c 」とタイプ。区切りのスペースに気を付けます。
***Macの名前***:~ ***ユーザ名***$ xattr -c [●該当ファイルをドラッグ]
[return]
ファイル名に括弧が付いていると面倒(””で囲う必要がある)なので外しておきましょう。
これができると、昔保存した動画が再び見れるようになったり、ファイル名を変える際に一々管理者名を入力するのを省くことができそうです。
Problems with games not starting on Macintosh.
Sierra(10.12)~Catalina(10.15)
Such an exception may occur and the program may not start.
Exception that occurs...
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
@Cause of occurrence
The problem is caused by the extended attributes added to files downloaded with Mac browser.
@Countermeasures
--- First, make sure that SDL2 frameworks are properly installed in the Frameworks folder. ---
#If you have Windows PC
- Download on Windows PC
- Unzip via OneDrive
#If you don't have Windows PC
- Use a different archiver instead of the default archiver that comes with the OS.
- Launch the executable binary directly from the app package.
(TLDQR2023.app/Contents/MacOS/TLDQR2023)
#The way using Terminal utility.
- Remove the extended attribute (@)
- The ZIP file that causes the problem has the following attributes:
-rw-rw-rw-@ 1 *****USER_NAME****** staff 55413510 7 25 23:26 TheLostDiaryQR200.zip - Remove the extended attribute.
Open Terminal, type "xattr -c", drag the ZIP file into the terminal window, and press [Return].
Then unzip this file and the problem will be solved.
« MacでSDL2(OpenGL)初めの一歩 | トップページ | 10数年ぶりにゲームをリリースしたよ(TLDQR) »
« MacでSDL2(OpenGL)初めの一歩 | トップページ | 10数年ぶりにゲームをリリースしたよ(TLDQR) »



コメント