私のプロジェクトにはいくつかのassert(condition, "message")
ステートメントがあります。
これらは、開発中に不変条件をチェックするために使用されます。プロダクション/リリースビルドでは無視されると思いました(この回答で述べたように)。ではない。代わりに、TestFlight テスト中にクラッシュを引き起こします。コメントすると、アプリはクラッシュしません。通常、何かが少しうまくいかないことがありますが、クラッシュすることはありません。
私のビルド設定で何かできますか?
私のすべてのアーカイブ スキームは、リリース構成を使用します。
アサートは、カスタム キーボード拡張機能から使用される Cocoa Touch Framework プロジェクトにあります。
すべてのプロジェクト (Cocoa Touch Framework、およびキーボード拡張ターゲットを含むメイン プロジェクト) のすべてのターゲットには、次のビルド設定があります。
Enable Foundation Assertions
Debug YES
Release NO
Disable Safety Checks NO
どうしたの?
編集:
Sulthan の回答は、デバッグ ビルドとリリース ビルドの両方でアサートをグローバルに無効にする方法を示しています。それは私が必要とするものではありません。期待どおりに動作させたい - アサートはデバッグで有効にする必要がありますが、リリース ビルドでは無効にする必要があります。
デフォルトでは、そのように動作します。また、私のメイン プロジェクトでもそのように動作します。ただし、そのメイン プロジェクトからリンクされている Framework プロジェクトにあるアサートでは機能しません (この質問の詳細)。なんで?修正方法は?