web-dev-qa-db-ja.com

iOS Swift SIGABRTのデバッグ方法:「致命的なエラー:削除されたメソッドの呼び出し」をCocoaPodから?

SlideMenuControllerSwift を使用するアプリがあります。さまざまなパネルを表示する方法を確認するためにいくつかのコードを変更してから、変更をロールバックしました。

プロジェクトを実行すると、SIGABRTが初期化されているときに、コンソールにSlideMenuControllerSwiftfatal error: call of deleted methodが表示されます。他のエラーメッセージは表示されません。

  • プロジェクトのソース管理は、変更前とまったく同じ状態にあるように見えます。
  • 私は「クリーン」をしました
  • ポッドを再インストールしました。
  • Podsディレクトリを削除し、クリーンインストールを行いました
  • デバイスからアプリを削除し、再度実行しました
  • 別のフォルダに新しいチェックアウトを行いました
  • 更新されたcocoapodsgem
  • Self.addLeftGestures()を使用するように関数を変更しました

カカオポッドが「致命的なエラー:削除されたメソッドの呼び出し」をスローすることによって引き起こされる問題をデバッグするにはどうすればよいですか?

enter image description here

更新:そのポッド内の関数で何かが深刻に壊れているようです。init内で別の関数を呼び出すと、不正アクセス例外が発生します。

enter image description here

13
Alex Stone

私の場合、リリースビルド構成を使用するプロジェクトスキームを作成しました。

Edit Scheme

この構成では、プロジェクトビルド設定でこのリリースモードでのテストが許可されていない場合、カスタムブレークポイントまたはアプリのクラッシュを設定しても適切にデバッグできず、fatal error: call of deleted methodが提供されます。


解決:

testability」のプロジェクトビルド設定を確認してください。

Project Build Settings

テスト対象のビルド構成で「はい」になっていることを確認します。

私の場合、Releaseに対してtestabilityを一時的に有効にしましたはい

14
staticVoidMan