Asserts werden in der Produktion getroffen und verursachen Abstürze
Ich habe mehrereassert(condition, "message")
Anweisungen in meinem Projekt.
ie werden verwendet, um unveränderliche Bedingungen zu prüfewährend der Entwicklung. Ich dachte, sie würden bei der Erstellung von Produktionen / Releases ignoriert (wie in @ angegebendiese Antwort).Sie sind nicht Stattdessen verursachen sie Abstürze während des TestFlight-Tests. Wenn ich einen Kommentar hinterlasse, stürzt die App nicht ab. Normalerweise stimmt etwas nicht, aber es stürzt nicht ab.
Kann es etwas mit meinen Build-Einstellungen sein?
Alle meine Archivierungsschemata verwenden die Release-Konfiguration:
Die Zusicherungen befinden sich in einem Cocoa Touch Framework-Projekt, das von einer benutzerdefinierten Tastaturerweiterung verwendet wird.
Alle Ziele in allen Projekten (Cocoa Touch Framework und das Hauptprojekt mit dem Tastaturerweiterungsziel) haben folgende Build-Einstellungen:
Enable Foundation Assertions
Debug YES
Release NO
Disable Safety Checks NO
Was ist los
BEARBEITEN
Sulthan Antwort zeigt, wie Asserts global für Debug- und Relase-Builds deaktiviert werden. Das brauche ich nicht. Ich möchte, dass es wie erwartet funktioniert - Asserts sollten im Debug aktiviert, aber in Release-Builds deaktiviert sein.
Standardmäßig funktioniert es so - und es funktioniert auch so in meinem Hauptprojekt. Es funktioniert jedoch nicht für Asserts in Framework-Projekten, die mit diesem Hauptprojekt verknüpft sind (Details indiese Frag). Warum? Wie man es repariert