テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

iOS7でネイティブプラグインで開いたViewをスクロールしまくると稀にクラッシュする問題、及びInstrumentsが糞重くなる問題の対策について

これは4.2.2で出力したアプリをiOS7で使用している時、Unityからネイティブプラグイン経由でUIView等を使用する際に、若干問題が発生しているらしい。

  • Instruments使用中にUIWebView等を開くと、やたら重くなる
  • 画面(例えばUIViewやUIWebView等)をひたすらスクロールしまくると稀にハングもしくはクラッシュする

クラッシュ発生時のスタックトレースを追うと、DisplayLinkで問題が発生していた。こんな時は、UnityAppController.mmのrepaintDisplayLinkメソッド内の以下の部分をコメント化すれば問題は回避出来るらしい。

- (void)repaintDisplayLink
{
/*
[_displayLink setPaused: YES];
{
static const CFStringRef kTrackingRunLoopMode = CFStringRef(UITrackingRunLoopMode);
while (CFRunLoopRunInMode(kTrackingRunLoopMode, kInputProcessingTime, TRUE) == kCFRunLoopRunHandledSource);

}
[_displayLink setPaused: NO];