0

デバッグが非常に難しい奇妙なバグがあります:

  • 多くのサブビーで複雑なUIView(具体的には)作成してから、これをビュー階層に追加しますUIScrollViewwillRotateToInterfaceOrientation
  • デバッグすると、すべてうまく機能します
  • 実行用にコンパイルして TestFlight 経由でインストールすると、クラッシュします。このクラッシュに関するデバイスのクラッシュ ログは見つかりませんでした。
  • ビューの作成は、本番ビルドではクラッシュを引き起こしません (試行錯誤によって検証されています)。アプリはスーパービューに追加された場合にのみクラッシュします。

詳細な状況は次のとおりです。アプリは Swift で記述されたキーボード拡張機能であり、事前に作成されたキーボードのポートレート バージョンとランドスケープ バージョンがあります。willRotateToInterfaceOrientation表示されているキーボード バージョンをスーパー ビューから削除し、代わりに他のバージョンを追加します。これは、デバッグ モードで正常に動作します。本番ビルドでは、横向きと縦向きの両方がうまく表示されます。ローテーション中に別のものに置き換えるだけで、クラッシュが発生します(常に)。

誰かが同様の状況に遭遇しましたか? 効果的にデバッグする方法、または何が原因であるかについてのアイデアはありますか?

4

1 に答える 1

0

これが私のアプリで何が起こっているかです。おそらく誰かがそれを役に立つと思うでしょう:

クラッシュは、階層に多くのビューを追加することによって発生します。おそらく、それはメモリなどに収まりません。

奇妙なことは、デバッグ モードでは発生しないことです。もう 1 つの奇妙な点は、700 個のビューを作成してもクラッシュは発生しませんが、それらの 700 個を階層から削除して別の 700 個を追加するとクラッシュが発生することです...

于 2015-04-05T18:52:48.123 に答える