プログラムを守るか、それとも製作者を困らせるか、最近のセキュリティパッチ。MAC編。

この前ユーザーからMac版のアプリが動かないとの連絡を受けました。すべてのアプリは起動確認をしてからアップしたのに、なぜ?と思い、いろいろを調べて、最初はCatalinaのせいかと思ってましたが、報告されたのはMojaveなので、別の原因があるかと思って、とりあえず結果と対策を書きたいと思います。

結論としては:去年11月ごろ……かしら、何かMacで新しいセキュリティ更新が原因かと思われます。

①現状:何が問題か、何が守られているのか

.appアプリをビルドして→オンラインストアにアップロード→ユーザーが購入して、オンラインストアのサイトから直接ゲームをダウンロード→ユーザーが遊ぶ >>これなら問題ありません。

ただその後、もし、

ユーザーから誤字の報告を受けた→.appアプリ内をちょっといじって、誤字のところだけ直す、つまりパッチをする→アプリをオンラインストアに再アップして、ユーザーに修正版をダウンロードしてもらう→ユーザーが遊べなくなります(アプリ起動できません) >>これが問題です

つまり、.appになってから、中身をいじられると最近のマックアプリはユーザー側のパソコンで起動できなくなります。
ある意味、これによりアプリの中身はいじられません=海賊版から守られています=安全ですが、開発者としては、いちいち直すたびにビルドをするのがすごく手間です。しかも、Mac Catalina以降だと公証が必要になっており、手間が数倍になり、一方で表すと『非常に面倒くさい』

②製作者側のワークフロー。よく見逃しているミスと対策。

私の場合、というか、同じやり方の開発者も多いかと思いますが、基本:

.appをビルドして→起動テストして、ゲームを修正しながら.appの中身を修正する→まったく問題がなくなったら.appをオンラインストアにアップする→終わり、ユーザーから問題が報告されない限り、OSから更新しろと言われない限りは触らない

今まではこれでよかったです。このやり方でも普通にゲームは起動できました。ただし今じゃダメなんです。なぜかというと

開発者側のパソコンでゲームが起動できる=ユーザーのパソコンでゲームが起動できるわけではなくなりました😨😨😨

.appアプリの中をいじっても、実は開発者側のパソコンだと普通に起動できます。そうです。問題なのは『ダウンロードしたアプリを起動しようとすると、MACがまずそのアプリをチェックする』という仕組みです。
開発者側のパソコンではそのアプリは『作られた』であって、『ダウンロードされた』というわけではありません。つまりオンラインストアにアップしてから、一度自分のパソコンに落として起動確認をすればやっと不具合があるかどうかがわかります。

ただし、アプリの中身を全くいじれないで、ビルドしてからすぐにオンラインストアにアップする場合、ほとんどこの起動不能不具合は発生しません。

私の場合複数のマックアプリを海外オンラインストアで販売しており、いじってしまったものもあれば、いじれないものもあるのですが、やはりいじられているものが起動できないという問い合わせが来ています。前はちゃんと起動できましたが……。

③MACでアプリをビルドして、WINDOWSでオンラインストアにアップする場合にも、問題が……。

……たぶん、私だけではありません。私が使ってるエンジンによって、MACアプリはMACがないとビルドできないものがあります。ただし、やはりMAC使ってアップロードというのが、慣れてなくて、基本WINDOWSに移動させてから全部をアップロードします。ただし、ここで問題が発生……。

私はAdobeAir使っているのですが、どうもこのMACセキュリティ更新後、アプリの中にある.symlinkファイルがうまくWINDOWSに移動できなくなります😭😭😭

試した方法:
●コピペするとエラーが出ます。
●ZIPにして、WINDOWSで展開したら同じく展開中にエラーが出ます。
●ツールで強制コピペすると、コピペは成功。ただし、コピペしたデータをアップしようとしたら、エラーが出ます。

❗そして大事なのは❗
ビルドしたアプリのすべての内容がちゃんとアップされないとユーザー側のパソコンでアプリが起動できません。MACセキュリティに編集されたアプリとみなされてしまいます。

……。
何かいい方法がないですかね、と本当にMAC面倒くさいな!と思いました。

④カタリナの場合

そもそも公証はめんどくさいです。やったことのある方はわかるかと思いますが、公証にアップルサーバーへのゲームデータのアップロードが必要ため、基本毎回2回のアップロードが必要になります(アップルサーバーにと、オンラインストアサーバーに)。これだけでもすでにめんどくさいです!!

しかも、アプリの中身を直したければ、基本毎回アプリの再ビルドと再公証が必要になります。私のような、ネット速度がひどいところに住むと、本当に泣きたくなります。

ちなみに、公証の場合も気を付けてください。正しいentitlements.plistを使わないと、Steamなどでゲームが起動できません!
※公証について少しややこしいので、希望があれば有料記事にて書こうかと思います。

⑤やっと見つけた対策! その名はSteam!

すみません、大げさかもしれません。🤣🤣🤣

いや、でも、本当、私の調べでは、Steamクライアントを通じてアプリを起動すると、このセキュリティチェックが発生しません🎉🎉🎉

たぶんですが、この場合、チェック対象がSteamクライアントになったからのではないかと思います。少なくとも、今まで公開したMACアプリの内容を多少編集しても、Steamでは普通に動いてます。公証済みのものの中身をいじっても、あら不思議、動いてます!🎉🎉🎉🎊🎊🎊

ちなみに、私は基本2012年に買ったMAC(High Sierra)でアプリをビルドしてから、データをWINDOWSに移動して、編集などはWINDOWS版と同時に行うので、いじったところだけMACとWINフォルダにコピペしてからWINDOWSパソコンでアップロードします。
なぜ再ビルドしない?と気になった方がいるかもしれませんが、いや、単純にめんどくさいです。アプリが少ないだけならまだしも、私の場合は多国語対応で、それぞれの言語でビルドが違います。

つまり、例えば『貴方の仮面の外し方』の場合、7か国語対応ですので、毎回7ゲームの再ビルド再アップしないといけない場合は……死んじゃいます。

問題はSteam以外で公開中のゲームですね。はい、やはりカタリナ対応のものはSteamにだけ公開します。他のストアにあるMACアプリは……ぼちぼち修正するつもりです。ユーザーが報告されたアプリを基準に……。

ではでは!

もし私の作品で気になるものがありましたら是非是非見てくださいね!

この記事が気に入ったらサポートをしてみませんか?