2011-03-04 7 views
0

Greetz、アプリケーションは時にリリースモード

私は、AppStoreに申請書を提出する準備ができていますが、問題は、私はリリースモードでそれを構築する際に、アプリケーションが立ち往生あるに立ち往生(私はリリースでそれを構築する必要がありますかモードを使用してappStoreに送信するのですか?)、サーバーから取得された最初のデータを読み込んでいる間にスタックしません。つまり、私が使用しているMBProgressHUDは、データがすでに取得されていても(データと画像を含むJSON文字列を取得していても)無期限に表示されます。

アプリケーションは完全にデバッグモードで動作しますが、リリースモードでは何らかの理由で完全にビルドされません。私は、プロジェクトでrm -rfビルドを行い、それを無駄にすることも試みました。私は結果をシミュレータとデバイスからアプリケーションを削除しようとしました。私は何か間違っているのですか、それともコードに関連していますか?多分プロビジョニング?

ありがとうございました!

リリースモードで実行中のログメッセージです。アプリケーションがクラッシュすることはありません。

[11603:5d03] Starting asynchronous request <ASIHTTPRequest: 0x682e800> 
[11603:7803] Request #1 will use connection #1 
[11603:7803] Request <ASIHTTPRequest: 0x682e800> received response headers 
[11603:7803] Got a keep-alive header, 
      will keep this connection open for 5.000000 seconds 
[11603:7803] Request <ASIHTTPRequest: 0x682e800> finished downloading 
      data (227370 bytes) 
[11603:7803] Request #1 finished using connection #1 
[11603:7803] Request finished: <ASIHTTPRequest: 0x682e800> 

実際、アプリケーションは要求を完了してデータを正常に取得しますが、MBProgressHUDはまだ停止しています。

答えて

0

明らかに、whileループの障害でした。その間は意図的に空だった。しかし、NSLogを内部に置くと、リリースモードは正常に機能します。非常に奇妙で不規則です。私はリリースではないはずだが、リリースは非常に面倒な設定を使用していると思う。

+1

これは不規則ではありません。リリースモードでは、コンパイラの最適化はオフになっています。 whileループは、外界に影響を及ぼすものを除いて、最適化することができます。 'NSLog()'を追加すると、ループが維持されなければなりません。もう一つの可能​​性は 'NSLog()'が正確なタイミングを変更することです。これはビルド設定の影響を受けます。 – mvds

+0

私は今理解しています。ご説明をいただき、ありがとうございます。私はそれを見つけ出すのが幸運だった。 – Joze

0

リリースモードのアプリケーションを再度テストします。クラッシュする可能性がありますか?単に実行のある時点で固執することがあります。あなたのログメッセージは何を言いますか?

+0

私は質問にログを掲載しました。私が見ているのは、アプリケーションが必要なデータを取得するためにアプリケーションを管理していますが、ローダーが単に画面に固執してすべてのユーザーのやりとりをブロックするだけです。これはデバッグモードでは発生しません。アプリケーションがクラッシュすることはありません。それはちょうど立ち往生する。 – Joze

関連する問題