Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> Cocos2d-x -> 【Cocos2d-x】アプリ終了時にプロセスが大量に立ち上がる不具合の対応

【Cocos2d-x】アプリ終了時にプロセスが大量に立ち上がる不具合の対応

Cocos2d-xでMacゲームを作り、AppStoreに審査をかけると、
なぜか、「お前のアプリは重いぞ」的な理由でリジェクトされました・・・。

というわけで、備忘録です。

Performance: Hardware Compatibility (macOS)


リジェクトされた理由は、ハードウェアに関する問題とのことで、アプリ終了時に、大量のプロセスが立ち上がってしまっておる、らしい。
以下、Appleから来たメッセージと、無理やりな和訳です。

Your app spawns processes that continue running after the user has quit the app.
お前のアプリは、ユーザーがアプリを終了したとしても、引き続き大量のプロセスを引き起こしている。
The app leaves the icon on Dock after quit.
アプリを終了した後、アプリはドック上のアイコンから去る。

・・・とのこと。
うーん、つまり、アプリを終了した時の終了処理が遅いのか??
その後、何度か動作確認を繰り返して、
ゲームをしばらく遊んだ後に、Dock上のアイコンからアプリを終了した時に限り、
少し終了の動作が遅いかもしれないな?というのがわかりました。

ちなみに、ESCキーを押したらゲーム終了、
という処理をゲーム上で行なっていますが、
その終了方法だと、普通に問題なく終了できます。

それで、調べてみると、AppDelegteの終了処理で、
サウンド関連を終了させている部分が怪しそう。

AppDelegate::~AppDelegate()
{
#if USE_AUDIO_ENGINE
// AudioEngine::end();
#elif USE_SIMPLE_AUDIO_ENGINE
// SimpleAudioEngine::end();
#endif
}

というわけで、AudioEngine::end();とSimpleAudioEngine::end();を、コメントアウトしてみましたが・・・、

これでいいの・・・かな??
気持ち、Dockからアプリを終了した時に、終了するタイミングが少し早まったような気がします。

一応、上記の処理が無くても、BGMは自動的に停止してくれてるっぽいですが、果たして、ガベージコレクションは自動で行なってくれているのだろうか・・・。

まあでも、この修正を行った後に、もう一度審査にかけたら、
無事に審査通過し、アプリが公開されました。

・・・これでいいの??(笑)

この記事の最終更新日:2017/12/06
最初に記事を書いた日:2017/12/06

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> Cocos2d-x -> 【Cocos2d-x】アプリ終了時にプロセスが大量に立ち上がる不具合の対応