デバッグが非常に難しい奇妙なバグがあります:
- 多くのサブビーで複雑な
UIView
(具体的には)作成してから、これをビュー階層に追加しますUIScrollView
willRotateToInterfaceOrientation
- デバッグすると、すべてうまく機能します
- 実行用にコンパイルして TestFlight 経由でインストールすると、クラッシュします。このクラッシュに関するデバイスのクラッシュ ログは見つかりませんでした。
- ビューの作成は、本番ビルドではクラッシュを引き起こしません (試行錯誤によって検証されています)。アプリはスーパービューに追加された場合にのみクラッシュします。
詳細な状況は次のとおりです。アプリは Swift で記述されたキーボード拡張機能であり、事前に作成されたキーボードのポートレート バージョンとランドスケープ バージョンがあります。willRotateToInterfaceOrientation
表示されているキーボード バージョンをスーパー ビューから削除し、代わりに他のバージョンを追加します。これは、デバッグ モードで正常に動作します。本番ビルドでは、横向きと縦向きの両方がうまく表示されます。ローテーション中に別のものに置き換えるだけで、クラッシュが発生します(常に)。
誰かが同様の状況に遭遇しましたか? 効果的にデバッグする方法、または何が原因であるかについてのアイデアはありますか?