Facebook Connect ログインダイアログでアプリがクラッシュする
-
11-12-2019 - |
質問
現在のアプリで抱えている多くの問題の中で、これは最も厄介なものの 1 つです。
シミュレーターではログイン ダイアログは正常に機能しますが、デバイス上では単なる白いボックスがフリーズし、コンソールには次の内容が表示されます。
void SendDelegateMessage(NSInvocation*): delegate
(webView:resource:willSendRequest:redirectResponse:fromDataSource:)
failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode
これを調べましたが、まだ意味がわかりません。
切り替えてみたら
[self authorizeWithFBAppAuth:NO safariAuth:NO];
に
[self authorizeWithFBAppAuth:NO safariAuth:YES];
確認するためにSafariアプリに切り替わりますが、これによりどういうわけか私のアプリが次のようなエラーで強制終了されます ReturnNotPermittedKillClient
.
同様の問題を経験した人はいますか?前回のアプリでは、これらの問題はまったく発生せずに動作しましたが、私が見る限り、今回はすべて同じ方法で実行できました。ただし、このプロジェクトは他の人から継承されたものであるため、私が気づいていない根本的な原因がある可能性があります。
編集:同時に実行しようとするタスクが多すぎることによるメモリの問題に備えて、ログインリクエストをdidFinishLaunchingWithOptionsから他のすべてがすでにロードされているイントロ画面クラスのポイントに移動してみました。今回はエラー メッセージは表示されませんでしたが、ログイン ボックスはまだ白いままで、数秒後にアプリを閉じました。
編集2:どうやら単なるメモリエラーのようです。以前にリリースしたすべての変数を保持するように変更しました。これにより、3GS の問題が解決されました。ただし、私の iPad 1 では問題が解決しません。ちなみに変える時は shouldAutorotateToInterfaceOrientation
横向き右の使用から横向き右または横向き左の使用に変更すると、iPad を回転するとメモリ警告が表示され、その後同じクラッシュが発生します。どちらの場合も、メモリ警告以外のデバッグ エラー メッセージはなく、アプリはただ終了します。問題がどこにあるかを確認するためのブレークポイントなどはありません。
解決 2
問題は単純に記憶力にありました。画像やサウンドなどをロードする方法を変更した後、問題は解決しました。
他のヒント
Webビューを使用している場合は、最初にこれを行う必要があります b4 次のビューに移動します。.delegate = nil;
これはあなたが望むものかもしれません:ドキュメントの NSObject にはこれの他の分岐があります。
コード:[自己実行セレクター:withオブジェクト:後遅延:】