2011-11-07 8 views
4

Xcode 4.2でiOS5とiOS4.3 iPhoneシミュレータを使用してアプリケーションがクラッシュすると、スタックトレースに[FlurryAPI stopBackgroundTask]メソッドのBAD_ACCESS信号が表示されます。Flurry APIがiPhoneシミュレータをクラッシュする

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

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

何が起こっているのか、なぜこれが起こっているのか、さらに詳しい情報を得るにはどうすればよいですか?

enter image description here

+1

それは私たちが実行したときにフラリーは、その代理人のために作成されていることをスレッドに起こるものです(...と私の古いFlurryAPIがFlurryAnalyticsで呼び出す交換)最新のフラリーlibににアップグレードした後、まったく同じことを – avocade

+1

取得[FlurryAnalytics startSession:FLURRYAPIKEY]をコード内に挿入します。問題を引き起こしているコールがどこから来たのかをチェックする方法はまだ分かりません。 – yeforriak

+0

同じ問題があり、修正が見つかりませんでした。 Flurry 3.0.4にアップデートしても、4.3と5.0の両方のSimulatorで問題が発生します。 – DaGaMs

答えて

7

私はメインスレッド以外の実行されませんdidFinishLaunchingWithOptions

#if TARGET_IPHONE_SIMULATOR 
     [FlurryAnalytics setSessionReportsOnPauseEnabled:NO]; 
#endif 
+0

ありがとう!これは私のために働いた。 – ruyamonis346

1

あなたはゾンビを持っているように見えます - あなたはそれを解放した後、コードを使用している状況があります。保持カウントがゼロになると、システムはメモリを解放して再使用し、元の参照を変更します。今度は同じメモリへの2つの異なる参照があり、それぞれは別のオブジェクトがそこにあることを期待しています。あなたの場合、参考文献の1つが慌てている。

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

NSZombieを有効にしてデバッガで実行します。あなたが運が良ければ、それはあなたにオブジェクトとそれが解放された後に使われるポイントを与えるでしょう。

NSZombieを有効にする:メニュー 'Product'、 'Edit Scheme ...' 'Run'ページ、 'Diagnostics'タブ、 'Enable Zombie Objects'にチェックを入れてください。

+0

回答ありがとうございますが、NSZombies私に余分な情報を与えません:( – yeforriak

2

フラリー分析に以下を追加することでこの問題を回避働いてきました。バックグラウンドスレッドでクラッシュする可能性があります。

関連する問題