4

Xcode4.2でiOS5およびiOS4.3iPhoneシミュレーターを使用してアプリがクラッシュし、スタックトレースに[FlurryAPIstopBackgroundTask]メソッドのBAD_ACCESS信号が表示されます。

iOS4.3シミュレーターでは、アプリをバックグラウンドに送信したときにのみアプリがクラッシュしますが、iOS5では常にクラッシュします。BAD_ACCESSが発生しているスレッドを示すデバッグナビゲーターの写真を添付し​​ています。

一方、アプリは実際のデバイスを使用して正常に動作しています。

何が起こっているのか、なぜこれが起こっているのかについて、どのようにしてより多くの情報を得ることができるかについてのアイデアはありますか?

ここに画像の説明を入力してください

4

3 に答える 3

7

私はdidFinishLaunchingWithOptionsに以下を追加することでこの問題を回避しました

#if TARGET_IPHONE_SIMULATOR
        [FlurryAnalytics setSessionReportsOnPauseEnabled:NO];
#endif
于 2012-01-30T06:54:22.383 に答える
2

Flurryアナリティクスは、メインスレッド以外では実行されません。バックグラウンドスレッドでクラッシュする可能性があります。

于 2012-08-13T11:34:12.120 に答える
1

ゾンビがいるようです。リリース後にコードを使用している状況があります。保持カウントがゼロに達すると、システムはメモリの割り当てを解除して再利用し、元の参照を使用して変更を加えます。これで、同じメモリへの2つの異なる参照があり、それぞれが異なるオブジェクトが存在することを期待しています。あなたの場合、参照の1つは急いでいます。

デバイス/シミュレータの違いの理由は、2つのアーキテクチャが使用するメモリ割り当てスキームが異なるためです。シミュレータはメモリを非常に積極的に再利用しているようです。

NSZombieを有効にして、デバッガーで実行します。運が良ければ、割り当て解除後に使用されるオブジェクトとポイントが表示されます。

NSZombieを有効にする:メニュー「製品」、「スキームの編集...」「実行」ページ、「診断」タブ、「ゾンビオブジェクトを有効にする」にチェックマークを付けます。

于 2011-11-08T06:49:30.023 に答える