Unity + iOS8 + Memory Warning + In App Purchase

2014年10月27日

iOS8 In App Purchase Memory Warningでアプリが落ちる。
原因はIn App Purchase時のアラートにより
applicationWillResignActiveとapplicationDidBecomeActiveが呼ばれるため。

普通のunityアプリなら問題ないが製作中のアプリは起動時にUnityを初期化後すぐに
停止するため発生。

具体的には
1.Unity初期化

1.[self startUnity:application];
2.[self stopUnity];
3.Custom View ControllerをRootViewに追加
4.In App Purchase
5.IAPのAlertView表示後applicationDidBecomeActiveが呼ばれるタイミングで
以下ソースコードが実行される。
if(_unityAppReady)
{
if(_didResignActive)
UnityPause(false);
}
6.UnityPause(false)の段階でmemory warningで落ちる。

対策:
Unityを確実に1回実行してから5のソースコードを走らせる。

Comments are closed.