2012-03-07 25 views
1

私はWebサービスを呼び出すアプリケーションを持っています。エミュレータで正常に動作しますが、デバイス上でクラッシュします。私がクラッシュをデバッグするときは、Webサービスに初めてアクセスするときに発生します。アプリケーションがデバイス上でクラッシュしますが、シミュレータにはありません

3月7日午前15時58分52秒Justins - iPhoneの踏み台[15]:次は私が得る情報である私のアプリは、時間に

の起動に失敗した3月7日午前15時58分52秒Justins、iPhoneの踏み台[15]:MyAppの強制的なクラッシュレポート...

3月7日15:58:52ジャスティン - iPhone SpringBoard [15]:クラッシュレポートの完成。

3月7日15時58分52秒Justins-iPhoneのcom.apple.launchd [1](UIKitApplication:私のアプリ[0xc356] [112]):(UIKitApplicationは:私のアプリ[0xc356])終了しました:倒した:9

3月7日15時58分52秒Justins - iPhoneの踏み台[15]:アプリケーション '私のアプリは、' 信号9で異常終了しました:殺した:9

3月7日は15時58分52秒Justins-iPhone ReportCrash [113] :UIDを使用/var/mobile/Library/Logs/CrashReporter/MyApp_2012-03-07-155852_Justins-iPhone.plistに保存crashreport:0 GID:0、synthetic_euid:501 EGID:0

任意の助けをいただければ幸い、 何も思いつきません 何が起こっていますか。

答えて

1

あなたはAppDelegateでFinishedLaunchingでこのサービスへの呼び出しを行うと、それは、デバイス、アプリケーションを殺す長い〜17秒以上かかる場合。 Webサービスなどの

一般的に任意のIOバインドされたタスクは、バックグラウンドスレッドにオフロードする必要があります。

_client = new ServiceClient(); 
_client.DoSomethingCompleted += Handle_DoSomethingCompleted; 
_client.DoSomethingAsync(); 

ものと同じ制限がまたはシミュレータで適用してもしなくてもよいです。

+1

最近のバージョンのiOSシミュレータではこれ以上強制しないようです(以前の4.xリリースでは当てはまりましたが、変更されたときには思い出すことはできません)。 – poupou

1

メインスレッドでブロックタスクを実行しないでください。非同期スレッドまたは新しいスレッドを使用してください。問題は、最初のビューがレンダリングされる前にWebサービスをポーリングしていることです。これにより、アプリのタイムアウトが開始され、iosがプロセスを終了させます。

Mar 7 15:58:52 Justins-iPhone SpringBoard[15] : My App failed to launch in time

関連する問題